LCOV - code coverage report
Current view: top level - sparse/_csparsetools.cpython-312-x86_64-linux-gnu.so.p - _csparsetools.c (source / functions) Hit Total Coverage
Test: lcov.info Lines: 9904 23678 41.8 %
Date: 2024-12-03 10:07:04 Functions: 245 506 48.4 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* Generated by Cython 3.0.11 */
       2             : 
       3             : #ifndef PY_SSIZE_T_CLEAN
       4             : #define PY_SSIZE_T_CLEAN
       5             : #endif /* PY_SSIZE_T_CLEAN */
       6             : #if defined(CYTHON_LIMITED_API) && 0
       7             :   #ifndef Py_LIMITED_API
       8             :     #if CYTHON_LIMITED_API+0 > 0x03030000
       9             :       #define Py_LIMITED_API CYTHON_LIMITED_API
      10             :     #else
      11             :       #define Py_LIMITED_API 0x03030000
      12             :     #endif
      13             :   #endif
      14             : #endif
      15             : 
      16             : #include "Python.h"
      17             : #ifndef Py_PYTHON_H
      18             :     #error Python headers needed to compile C extensions, please install development version of Python.
      19             : #elif PY_VERSION_HEX < 0x02070000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
      20             :     #error Cython requires Python 2.7+ or Python 3.3+.
      21             : #else
      22             : #if defined(CYTHON_LIMITED_API) && CYTHON_LIMITED_API
      23             : #define __PYX_EXTRA_ABI_MODULE_NAME "limited"
      24             : #else
      25             : #define __PYX_EXTRA_ABI_MODULE_NAME ""
      26             : #endif
      27             : #define CYTHON_ABI "3_0_11" __PYX_EXTRA_ABI_MODULE_NAME
      28             : #define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI
      29             : #define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "."
      30             : #define CYTHON_HEX_VERSION 0x03000BF0
      31             : #define CYTHON_FUTURE_DIVISION 1
      32             : #include <stddef.h>
      33             : #ifndef offsetof
      34             :   #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
      35             : #endif
      36             : #if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS)
      37             :   #ifndef __stdcall
      38             :     #define __stdcall
      39             :   #endif
      40             :   #ifndef __cdecl
      41             :     #define __cdecl
      42             :   #endif
      43             :   #ifndef __fastcall
      44             :     #define __fastcall
      45             :   #endif
      46             : #endif
      47             : #ifndef DL_IMPORT
      48             :   #define DL_IMPORT(t) t
      49             : #endif
      50             : #ifndef DL_EXPORT
      51             :   #define DL_EXPORT(t) t
      52             : #endif
      53             : #define __PYX_COMMA ,
      54             : #ifndef HAVE_LONG_LONG
      55             :   #define HAVE_LONG_LONG
      56             : #endif
      57             : #ifndef PY_LONG_LONG
      58             :   #define PY_LONG_LONG LONG_LONG
      59             : #endif
      60             : #ifndef Py_HUGE_VAL
      61             :   #define Py_HUGE_VAL HUGE_VAL
      62             : #endif
      63             : #define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX
      64             : #if defined(GRAALVM_PYTHON)
      65             :   /* For very preliminary testing purposes. Most variables are set the same as PyPy.
      66             :      The existence of this section does not imply that anything works or is even tested */
      67             :   #define CYTHON_COMPILING_IN_PYPY 0
      68             :   #define CYTHON_COMPILING_IN_CPYTHON 0
      69             :   #define CYTHON_COMPILING_IN_LIMITED_API 0
      70             :   #define CYTHON_COMPILING_IN_GRAAL 1
      71             :   #define CYTHON_COMPILING_IN_NOGIL 0
      72             :   #undef CYTHON_USE_TYPE_SLOTS
      73             :   #define CYTHON_USE_TYPE_SLOTS 0
      74             :   #undef CYTHON_USE_TYPE_SPECS
      75             :   #define CYTHON_USE_TYPE_SPECS 0
      76             :   #undef CYTHON_USE_PYTYPE_LOOKUP
      77             :   #define CYTHON_USE_PYTYPE_LOOKUP 0
      78             :   #if PY_VERSION_HEX < 0x03050000
      79             :     #undef CYTHON_USE_ASYNC_SLOTS
      80             :     #define CYTHON_USE_ASYNC_SLOTS 0
      81             :   #elif !defined(CYTHON_USE_ASYNC_SLOTS)
      82             :     #define CYTHON_USE_ASYNC_SLOTS 1
      83             :   #endif
      84             :   #undef CYTHON_USE_PYLIST_INTERNALS
      85             :   #define CYTHON_USE_PYLIST_INTERNALS 0
      86             :   #undef CYTHON_USE_UNICODE_INTERNALS
      87             :   #define CYTHON_USE_UNICODE_INTERNALS 0
      88             :   #undef CYTHON_USE_UNICODE_WRITER
      89             :   #define CYTHON_USE_UNICODE_WRITER 0
      90             :   #undef CYTHON_USE_PYLONG_INTERNALS
      91             :   #define CYTHON_USE_PYLONG_INTERNALS 0
      92             :   #undef CYTHON_AVOID_BORROWED_REFS
      93             :   #define CYTHON_AVOID_BORROWED_REFS 1
      94             :   #undef CYTHON_ASSUME_SAFE_MACROS
      95             :   #define CYTHON_ASSUME_SAFE_MACROS 0
      96             :   #undef CYTHON_UNPACK_METHODS
      97             :   #define CYTHON_UNPACK_METHODS 0
      98             :   #undef CYTHON_FAST_THREAD_STATE
      99             :   #define CYTHON_FAST_THREAD_STATE 0
     100             :   #undef CYTHON_FAST_GIL
     101             :   #define CYTHON_FAST_GIL 0
     102             :   #undef CYTHON_METH_FASTCALL
     103             :   #define CYTHON_METH_FASTCALL 0
     104             :   #undef CYTHON_FAST_PYCALL
     105             :   #define CYTHON_FAST_PYCALL 0
     106             :   #ifndef CYTHON_PEP487_INIT_SUBCLASS
     107             :     #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3)
     108             :   #endif
     109             :   #undef CYTHON_PEP489_MULTI_PHASE_INIT
     110             :   #define CYTHON_PEP489_MULTI_PHASE_INIT 1
     111             :   #undef CYTHON_USE_MODULE_STATE
     112             :   #define CYTHON_USE_MODULE_STATE 0
     113             :   #undef CYTHON_USE_TP_FINALIZE
     114             :   #define CYTHON_USE_TP_FINALIZE 0
     115             :   #undef CYTHON_USE_DICT_VERSIONS
     116             :   #define CYTHON_USE_DICT_VERSIONS 0
     117             :   #undef CYTHON_USE_EXC_INFO_STACK
     118             :   #define CYTHON_USE_EXC_INFO_STACK 0
     119             :   #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
     120             :     #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
     121             :   #endif
     122             :   #undef CYTHON_USE_FREELISTS
     123             :   #define CYTHON_USE_FREELISTS 0
     124             : #elif defined(PYPY_VERSION)
     125             :   #define CYTHON_COMPILING_IN_PYPY 1
     126             :   #define CYTHON_COMPILING_IN_CPYTHON 0
     127             :   #define CYTHON_COMPILING_IN_LIMITED_API 0
     128             :   #define CYTHON_COMPILING_IN_GRAAL 0
     129             :   #define CYTHON_COMPILING_IN_NOGIL 0
     130             :   #undef CYTHON_USE_TYPE_SLOTS
     131             :   #define CYTHON_USE_TYPE_SLOTS 0
     132             :   #ifndef CYTHON_USE_TYPE_SPECS
     133             :     #define CYTHON_USE_TYPE_SPECS 0
     134             :   #endif
     135             :   #undef CYTHON_USE_PYTYPE_LOOKUP
     136             :   #define CYTHON_USE_PYTYPE_LOOKUP 0
     137             :   #if PY_VERSION_HEX < 0x03050000
     138             :     #undef CYTHON_USE_ASYNC_SLOTS
     139             :     #define CYTHON_USE_ASYNC_SLOTS 0
     140             :   #elif !defined(CYTHON_USE_ASYNC_SLOTS)
     141             :     #define CYTHON_USE_ASYNC_SLOTS 1
     142             :   #endif
     143             :   #undef CYTHON_USE_PYLIST_INTERNALS
     144             :   #define CYTHON_USE_PYLIST_INTERNALS 0
     145             :   #undef CYTHON_USE_UNICODE_INTERNALS
     146             :   #define CYTHON_USE_UNICODE_INTERNALS 0
     147             :   #undef CYTHON_USE_UNICODE_WRITER
     148             :   #define CYTHON_USE_UNICODE_WRITER 0
     149             :   #undef CYTHON_USE_PYLONG_INTERNALS
     150             :   #define CYTHON_USE_PYLONG_INTERNALS 0
     151             :   #undef CYTHON_AVOID_BORROWED_REFS
     152             :   #define CYTHON_AVOID_BORROWED_REFS 1
     153             :   #undef CYTHON_ASSUME_SAFE_MACROS
     154             :   #define CYTHON_ASSUME_SAFE_MACROS 0
     155             :   #undef CYTHON_UNPACK_METHODS
     156             :   #define CYTHON_UNPACK_METHODS 0
     157             :   #undef CYTHON_FAST_THREAD_STATE
     158             :   #define CYTHON_FAST_THREAD_STATE 0
     159             :   #undef CYTHON_FAST_GIL
     160             :   #define CYTHON_FAST_GIL 0
     161             :   #undef CYTHON_METH_FASTCALL
     162             :   #define CYTHON_METH_FASTCALL 0
     163             :   #undef CYTHON_FAST_PYCALL
     164             :   #define CYTHON_FAST_PYCALL 0
     165             :   #ifndef CYTHON_PEP487_INIT_SUBCLASS
     166             :     #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3)
     167             :   #endif
     168             :   #if PY_VERSION_HEX < 0x03090000
     169             :     #undef CYTHON_PEP489_MULTI_PHASE_INIT
     170             :     #define CYTHON_PEP489_MULTI_PHASE_INIT 0
     171             :   #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)
     172             :     #define CYTHON_PEP489_MULTI_PHASE_INIT 1
     173             :   #endif
     174             :   #undef CYTHON_USE_MODULE_STATE
     175             :   #define CYTHON_USE_MODULE_STATE 0
     176             :   #undef CYTHON_USE_TP_FINALIZE
     177             :   #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1 && PYPY_VERSION_NUM >= 0x07030C00)
     178             :   #undef CYTHON_USE_DICT_VERSIONS
     179             :   #define CYTHON_USE_DICT_VERSIONS 0
     180             :   #undef CYTHON_USE_EXC_INFO_STACK
     181             :   #define CYTHON_USE_EXC_INFO_STACK 0
     182             :   #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
     183             :     #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
     184             :   #endif
     185             :   #undef CYTHON_USE_FREELISTS
     186             :   #define CYTHON_USE_FREELISTS 0
     187             : #elif defined(CYTHON_LIMITED_API)
     188             :   #ifdef Py_LIMITED_API
     189             :     #undef __PYX_LIMITED_VERSION_HEX
     190             :     #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API
     191             :   #endif
     192             :   #define CYTHON_COMPILING_IN_PYPY 0
     193             :   #define CYTHON_COMPILING_IN_CPYTHON 0
     194             :   #define CYTHON_COMPILING_IN_LIMITED_API 1
     195             :   #define CYTHON_COMPILING_IN_GRAAL 0
     196             :   #define CYTHON_COMPILING_IN_NOGIL 0
     197             :   #undef CYTHON_CLINE_IN_TRACEBACK
     198             :   #define CYTHON_CLINE_IN_TRACEBACK 0
     199             :   #undef CYTHON_USE_TYPE_SLOTS
     200             :   #define CYTHON_USE_TYPE_SLOTS 0
     201             :   #undef CYTHON_USE_TYPE_SPECS
     202             :   #define CYTHON_USE_TYPE_SPECS 1
     203             :   #undef CYTHON_USE_PYTYPE_LOOKUP
     204             :   #define CYTHON_USE_PYTYPE_LOOKUP 0
     205             :   #undef CYTHON_USE_ASYNC_SLOTS
     206             :   #define CYTHON_USE_ASYNC_SLOTS 0
     207             :   #undef CYTHON_USE_PYLIST_INTERNALS
     208             :   #define CYTHON_USE_PYLIST_INTERNALS 0
     209             :   #undef CYTHON_USE_UNICODE_INTERNALS
     210             :   #define CYTHON_USE_UNICODE_INTERNALS 0
     211             :   #ifndef CYTHON_USE_UNICODE_WRITER
     212             :     #define CYTHON_USE_UNICODE_WRITER 0
     213             :   #endif
     214             :   #undef CYTHON_USE_PYLONG_INTERNALS
     215             :   #define CYTHON_USE_PYLONG_INTERNALS 0
     216             :   #ifndef CYTHON_AVOID_BORROWED_REFS
     217             :     #define CYTHON_AVOID_BORROWED_REFS 0
     218             :   #endif
     219             :   #undef CYTHON_ASSUME_SAFE_MACROS
     220             :   #define CYTHON_ASSUME_SAFE_MACROS 0
     221             :   #undef CYTHON_UNPACK_METHODS
     222             :   #define CYTHON_UNPACK_METHODS 0
     223             :   #undef CYTHON_FAST_THREAD_STATE
     224             :   #define CYTHON_FAST_THREAD_STATE 0
     225             :   #undef CYTHON_FAST_GIL
     226             :   #define CYTHON_FAST_GIL 0
     227             :   #undef CYTHON_METH_FASTCALL
     228             :   #define CYTHON_METH_FASTCALL 0
     229             :   #undef CYTHON_FAST_PYCALL
     230             :   #define CYTHON_FAST_PYCALL 0
     231             :   #ifndef CYTHON_PEP487_INIT_SUBCLASS
     232             :     #define CYTHON_PEP487_INIT_SUBCLASS 1
     233             :   #endif
     234             :   #undef CYTHON_PEP489_MULTI_PHASE_INIT
     235             :   #define CYTHON_PEP489_MULTI_PHASE_INIT 0
     236             :   #undef CYTHON_USE_MODULE_STATE
     237             :   #define CYTHON_USE_MODULE_STATE 1
     238             :   #ifndef CYTHON_USE_TP_FINALIZE
     239             :     #define CYTHON_USE_TP_FINALIZE 0
     240             :   #endif
     241             :   #undef CYTHON_USE_DICT_VERSIONS
     242             :   #define CYTHON_USE_DICT_VERSIONS 0
     243             :   #undef CYTHON_USE_EXC_INFO_STACK
     244             :   #define CYTHON_USE_EXC_INFO_STACK 0
     245             :   #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
     246             :     #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
     247             :   #endif
     248             :   #undef CYTHON_USE_FREELISTS
     249             :   #define CYTHON_USE_FREELISTS 0
     250             : #elif defined(Py_GIL_DISABLED) || defined(Py_NOGIL)
     251             :   #define CYTHON_COMPILING_IN_PYPY 0
     252             :   #define CYTHON_COMPILING_IN_CPYTHON 0
     253             :   #define CYTHON_COMPILING_IN_LIMITED_API 0
     254             :   #define CYTHON_COMPILING_IN_GRAAL 0
     255             :   #define CYTHON_COMPILING_IN_NOGIL 1
     256             :   #ifndef CYTHON_USE_TYPE_SLOTS
     257             :     #define CYTHON_USE_TYPE_SLOTS 1
     258             :   #endif
     259             :   #ifndef CYTHON_USE_TYPE_SPECS
     260             :     #define CYTHON_USE_TYPE_SPECS 0
     261             :   #endif
     262             :   #undef CYTHON_USE_PYTYPE_LOOKUP
     263             :   #define CYTHON_USE_PYTYPE_LOOKUP 0
     264             :   #ifndef CYTHON_USE_ASYNC_SLOTS
     265             :     #define CYTHON_USE_ASYNC_SLOTS 1
     266             :   #endif
     267             :   #ifndef CYTHON_USE_PYLONG_INTERNALS
     268             :     #define CYTHON_USE_PYLONG_INTERNALS 0
     269             :   #endif
     270             :   #undef CYTHON_USE_PYLIST_INTERNALS
     271             :   #define CYTHON_USE_PYLIST_INTERNALS 0
     272             :   #ifndef CYTHON_USE_UNICODE_INTERNALS
     273             :     #define CYTHON_USE_UNICODE_INTERNALS 1
     274             :   #endif
     275             :   #undef CYTHON_USE_UNICODE_WRITER
     276             :   #define CYTHON_USE_UNICODE_WRITER 0
     277             :   #ifndef CYTHON_AVOID_BORROWED_REFS
     278             :     #define CYTHON_AVOID_BORROWED_REFS 0
     279             :   #endif
     280             :   #ifndef CYTHON_ASSUME_SAFE_MACROS
     281             :     #define CYTHON_ASSUME_SAFE_MACROS 1
     282             :   #endif
     283             :   #ifndef CYTHON_UNPACK_METHODS
     284             :     #define CYTHON_UNPACK_METHODS 1
     285             :   #endif
     286             :   #undef CYTHON_FAST_THREAD_STATE
     287             :   #define CYTHON_FAST_THREAD_STATE 0
     288             :   #undef CYTHON_FAST_GIL
     289             :   #define CYTHON_FAST_GIL 0
     290             :   #ifndef CYTHON_METH_FASTCALL
     291             :     #define CYTHON_METH_FASTCALL 1
     292             :   #endif
     293             :   #undef CYTHON_FAST_PYCALL
     294             :   #define CYTHON_FAST_PYCALL 0
     295             :   #ifndef CYTHON_PEP487_INIT_SUBCLASS
     296             :     #define CYTHON_PEP487_INIT_SUBCLASS 1
     297             :   #endif
     298             :   #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
     299             :     #define CYTHON_PEP489_MULTI_PHASE_INIT 1
     300             :   #endif
     301             :   #ifndef CYTHON_USE_MODULE_STATE
     302             :     #define CYTHON_USE_MODULE_STATE 0
     303             :   #endif
     304             :   #ifndef CYTHON_USE_TP_FINALIZE
     305             :     #define CYTHON_USE_TP_FINALIZE 1
     306             :   #endif
     307             :   #undef CYTHON_USE_DICT_VERSIONS
     308             :   #define CYTHON_USE_DICT_VERSIONS 0
     309             :   #undef CYTHON_USE_EXC_INFO_STACK
     310             :   #define CYTHON_USE_EXC_INFO_STACK 0
     311             :   #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
     312             :     #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
     313             :   #endif
     314             :   #ifndef CYTHON_USE_FREELISTS
     315             :     #define CYTHON_USE_FREELISTS 0
     316             :   #endif
     317             : #else
     318             :   #define CYTHON_COMPILING_IN_PYPY 0
     319             :   #define CYTHON_COMPILING_IN_CPYTHON 1
     320             :   #define CYTHON_COMPILING_IN_LIMITED_API 0
     321             :   #define CYTHON_COMPILING_IN_GRAAL 0
     322             :   #define CYTHON_COMPILING_IN_NOGIL 0
     323             :   #ifndef CYTHON_USE_TYPE_SLOTS
     324             :     #define CYTHON_USE_TYPE_SLOTS 1
     325             :   #endif
     326             :   #ifndef CYTHON_USE_TYPE_SPECS
     327             :     #define CYTHON_USE_TYPE_SPECS 0
     328             :   #endif
     329             :   #ifndef CYTHON_USE_PYTYPE_LOOKUP
     330             :     #define CYTHON_USE_PYTYPE_LOOKUP 1
     331             :   #endif
     332             :   #if PY_MAJOR_VERSION < 3
     333             :     #undef CYTHON_USE_ASYNC_SLOTS
     334             :     #define CYTHON_USE_ASYNC_SLOTS 0
     335             :   #elif !defined(CYTHON_USE_ASYNC_SLOTS)
     336             :     #define CYTHON_USE_ASYNC_SLOTS 1
     337             :   #endif
     338             :   #ifndef CYTHON_USE_PYLONG_INTERNALS
     339             :     #define CYTHON_USE_PYLONG_INTERNALS 1
     340             :   #endif
     341             :   #ifndef CYTHON_USE_PYLIST_INTERNALS
     342             :     #define CYTHON_USE_PYLIST_INTERNALS 1
     343             :   #endif
     344             :   #ifndef CYTHON_USE_UNICODE_INTERNALS
     345             :     #define CYTHON_USE_UNICODE_INTERNALS 1
     346             :   #endif
     347             :   #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
     348             :     #undef CYTHON_USE_UNICODE_WRITER
     349             :     #define CYTHON_USE_UNICODE_WRITER 0
     350             :   #elif !defined(CYTHON_USE_UNICODE_WRITER)
     351             :     #define CYTHON_USE_UNICODE_WRITER 1
     352             :   #endif
     353             :   #ifndef CYTHON_AVOID_BORROWED_REFS
     354             :     #define CYTHON_AVOID_BORROWED_REFS 0
     355             :   #endif
     356             :   #ifndef CYTHON_ASSUME_SAFE_MACROS
     357             :     #define CYTHON_ASSUME_SAFE_MACROS 1
     358             :   #endif
     359             :   #ifndef CYTHON_UNPACK_METHODS
     360             :     #define CYTHON_UNPACK_METHODS 1
     361             :   #endif
     362             :   #ifndef CYTHON_FAST_THREAD_STATE
     363             :     #define CYTHON_FAST_THREAD_STATE 1
     364             :   #endif
     365             :   #ifndef CYTHON_FAST_GIL
     366             :     #define CYTHON_FAST_GIL (PY_MAJOR_VERSION < 3 || PY_VERSION_HEX >= 0x03060000 && PY_VERSION_HEX < 0x030C00A6)
     367             :   #endif
     368             :   #ifndef CYTHON_METH_FASTCALL
     369             :     #define CYTHON_METH_FASTCALL (PY_VERSION_HEX >= 0x030700A1)
     370             :   #endif
     371             :   #ifndef CYTHON_FAST_PYCALL
     372             :     #define CYTHON_FAST_PYCALL 1
     373             :   #endif
     374             :   #ifndef CYTHON_PEP487_INIT_SUBCLASS
     375             :     #define CYTHON_PEP487_INIT_SUBCLASS 1
     376             :   #endif
     377             :   #if PY_VERSION_HEX < 0x03050000
     378             :     #undef CYTHON_PEP489_MULTI_PHASE_INIT
     379             :     #define CYTHON_PEP489_MULTI_PHASE_INIT 0
     380             :   #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)
     381             :     #define CYTHON_PEP489_MULTI_PHASE_INIT 1
     382             :   #endif
     383             :   #ifndef CYTHON_USE_MODULE_STATE
     384             :     #define CYTHON_USE_MODULE_STATE 0
     385             :   #endif
     386             :   #if PY_VERSION_HEX < 0x030400a1
     387             :     #undef CYTHON_USE_TP_FINALIZE
     388             :     #define CYTHON_USE_TP_FINALIZE 0
     389             :   #elif !defined(CYTHON_USE_TP_FINALIZE)
     390             :     #define CYTHON_USE_TP_FINALIZE 1
     391             :   #endif
     392             :   #if PY_VERSION_HEX < 0x030600B1
     393             :     #undef CYTHON_USE_DICT_VERSIONS
     394             :     #define CYTHON_USE_DICT_VERSIONS 0
     395             :   #elif !defined(CYTHON_USE_DICT_VERSIONS)
     396             :     #define CYTHON_USE_DICT_VERSIONS  (PY_VERSION_HEX < 0x030C00A5)
     397             :   #endif
     398             :   #if PY_VERSION_HEX < 0x030700A3
     399             :     #undef CYTHON_USE_EXC_INFO_STACK
     400             :     #define CYTHON_USE_EXC_INFO_STACK 0
     401             :   #elif !defined(CYTHON_USE_EXC_INFO_STACK)
     402             :     #define CYTHON_USE_EXC_INFO_STACK 1
     403             :   #endif
     404             :   #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
     405             :     #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
     406             :   #endif
     407             :   #ifndef CYTHON_USE_FREELISTS
     408             :     #define CYTHON_USE_FREELISTS 1
     409             :   #endif
     410             : #endif
     411             : #if !defined(CYTHON_FAST_PYCCALL)
     412             : #define CYTHON_FAST_PYCCALL  (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
     413             : #endif
     414             : #if !defined(CYTHON_VECTORCALL)
     415             : #define CYTHON_VECTORCALL  (CYTHON_FAST_PYCCALL && PY_VERSION_HEX >= 0x030800B1)
     416             : #endif
     417             : #define CYTHON_BACKPORT_VECTORCALL (CYTHON_METH_FASTCALL && PY_VERSION_HEX < 0x030800B1)
     418             : #if CYTHON_USE_PYLONG_INTERNALS
     419             :   #if PY_MAJOR_VERSION < 3
     420             :     #include "longintrepr.h"
     421             :   #endif
     422             :   #undef SHIFT
     423             :   #undef BASE
     424             :   #undef MASK
     425             :   #ifdef SIZEOF_VOID_P
     426             :     enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
     427             :   #endif
     428             : #endif
     429             : #ifndef __has_attribute
     430             :   #define __has_attribute(x) 0
     431             : #endif
     432             : #ifndef __has_cpp_attribute
     433             :   #define __has_cpp_attribute(x) 0
     434             : #endif
     435             : #ifndef CYTHON_RESTRICT
     436             :   #if defined(__GNUC__)
     437             :     #define CYTHON_RESTRICT __restrict__
     438             :   #elif defined(_MSC_VER) && _MSC_VER >= 1400
     439             :     #define CYTHON_RESTRICT __restrict
     440             :   #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
     441             :     #define CYTHON_RESTRICT restrict
     442             :   #else
     443             :     #define CYTHON_RESTRICT
     444             :   #endif
     445             : #endif
     446             : #ifndef CYTHON_UNUSED
     447             :   #if defined(__cplusplus)
     448             :     /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17
     449             :      * but leads to warnings with -pedantic, since it is a C++17 feature */
     450             :     #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
     451             :       #if __has_cpp_attribute(maybe_unused)
     452             :         #define CYTHON_UNUSED [[maybe_unused]]
     453             :       #endif
     454             :     #endif
     455             :   #endif
     456             : #endif
     457             : #ifndef CYTHON_UNUSED
     458             : # if defined(__GNUC__)
     459             : #   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
     460             : #     define CYTHON_UNUSED __attribute__ ((__unused__))
     461             : #   else
     462             : #     define CYTHON_UNUSED
     463             : #   endif
     464             : # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
     465             : #   define CYTHON_UNUSED __attribute__ ((__unused__))
     466             : # else
     467             : #   define CYTHON_UNUSED
     468             : # endif
     469             : #endif
     470             : #ifndef CYTHON_UNUSED_VAR
     471             : #  if defined(__cplusplus)
     472             :      template<class T> void CYTHON_UNUSED_VAR( const T& ) { }
     473             : #  else
     474             : #    define CYTHON_UNUSED_VAR(x) (void)(x)
     475             : #  endif
     476             : #endif
     477             : #ifndef CYTHON_MAYBE_UNUSED_VAR
     478             :   #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x)
     479             : #endif
     480             : #ifndef CYTHON_NCP_UNUSED
     481             : # if CYTHON_COMPILING_IN_CPYTHON
     482             : #  define CYTHON_NCP_UNUSED
     483             : # else
     484             : #  define CYTHON_NCP_UNUSED CYTHON_UNUSED
     485             : # endif
     486             : #endif
     487             : #ifndef CYTHON_USE_CPP_STD_MOVE
     488             :   #if defined(__cplusplus) && (\
     489             :     __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600))
     490             :     #define CYTHON_USE_CPP_STD_MOVE 1
     491             :   #else
     492             :     #define CYTHON_USE_CPP_STD_MOVE 0
     493             :   #endif
     494             : #endif
     495             : #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
     496             : #ifdef _MSC_VER
     497             :     #ifndef _MSC_STDINT_H_
     498             :         #if _MSC_VER < 1300
     499             :             typedef unsigned char     uint8_t;
     500             :             typedef unsigned short    uint16_t;
     501             :             typedef unsigned int      uint32_t;
     502             :         #else
     503             :             typedef unsigned __int8   uint8_t;
     504             :             typedef unsigned __int16  uint16_t;
     505             :             typedef unsigned __int32  uint32_t;
     506             :         #endif
     507             :     #endif
     508             :     #if _MSC_VER < 1300
     509             :         #ifdef _WIN64
     510             :             typedef unsigned long long  __pyx_uintptr_t;
     511             :         #else
     512             :             typedef unsigned int        __pyx_uintptr_t;
     513             :         #endif
     514             :     #else
     515             :         #ifdef _WIN64
     516             :             typedef unsigned __int64    __pyx_uintptr_t;
     517             :         #else
     518             :             typedef unsigned __int32    __pyx_uintptr_t;
     519             :         #endif
     520             :     #endif
     521             : #else
     522             :     #include <stdint.h>
     523             :     typedef uintptr_t  __pyx_uintptr_t;
     524             : #endif
     525             : #ifndef CYTHON_FALLTHROUGH
     526             :   #if defined(__cplusplus)
     527             :     /* for clang __has_cpp_attribute(fallthrough) is true even before C++17
     528             :      * but leads to warnings with -pedantic, since it is a C++17 feature */
     529             :     #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
     530             :       #if __has_cpp_attribute(fallthrough)
     531             :         #define CYTHON_FALLTHROUGH [[fallthrough]]
     532             :       #endif
     533             :     #endif
     534             :     #ifndef CYTHON_FALLTHROUGH
     535             :       #if __has_cpp_attribute(clang::fallthrough)
     536             :         #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
     537             :       #elif __has_cpp_attribute(gnu::fallthrough)
     538             :         #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
     539             :       #endif
     540             :     #endif
     541             :   #endif
     542             :   #ifndef CYTHON_FALLTHROUGH
     543             :     #if __has_attribute(fallthrough)
     544             :       #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
     545             :     #else
     546             :       #define CYTHON_FALLTHROUGH
     547             :     #endif
     548             :   #endif
     549             :   #if defined(__clang__) && defined(__apple_build_version__)
     550             :     #if __apple_build_version__ < 7000000
     551             :       #undef  CYTHON_FALLTHROUGH
     552             :       #define CYTHON_FALLTHROUGH
     553             :     #endif
     554             :   #endif
     555             : #endif
     556             : #ifdef __cplusplus
     557             :   template <typename T>
     558             :   struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);};
     559             :   #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL<type>::value)
     560             : #else
     561             :   #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0)
     562             : #endif
     563             : #if CYTHON_COMPILING_IN_PYPY == 1
     564             :   #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x030A0000)
     565             : #else
     566             :   #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000)
     567             : #endif
     568             : #define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer))
     569             : 
     570             : #ifndef CYTHON_INLINE
     571             :   #if defined(__clang__)
     572             :     #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
     573             :   #elif defined(__GNUC__)
     574             :     #define CYTHON_INLINE __inline__
     575             :   #elif defined(_MSC_VER)
     576             :     #define CYTHON_INLINE __inline
     577             :   #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
     578             :     #define CYTHON_INLINE inline
     579             :   #else
     580             :     #define CYTHON_INLINE
     581             :   #endif
     582             : #endif
     583             : 
     584             : #define __PYX_BUILD_PY_SSIZE_T "n"
     585             : #define CYTHON_FORMAT_SSIZE_T "z"
     586             : #if PY_MAJOR_VERSION < 3
     587             :   #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
     588             :   #define __Pyx_DefaultClassType PyClass_Type
     589             :   #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
     590             :           PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
     591             : #else
     592             :   #define __Pyx_BUILTIN_MODULE_NAME "builtins"
     593             :   #define __Pyx_DefaultClassType PyType_Type
     594             : #if CYTHON_COMPILING_IN_LIMITED_API
     595             :     static CYTHON_INLINE PyObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f,
     596             :                                                     PyObject *code, PyObject *c, PyObject* n, PyObject *v,
     597             :                                                     PyObject *fv, PyObject *cell, PyObject* fn,
     598             :                                                     PyObject *name, int fline, PyObject *lnos) {
     599             :         PyObject *exception_table = NULL;
     600             :         PyObject *types_module=NULL, *code_type=NULL, *result=NULL;
     601             :         #if __PYX_LIMITED_VERSION_HEX < 0x030B0000
     602             :         PyObject *version_info;
     603             :         PyObject *py_minor_version = NULL;
     604             :         #endif
     605             :         long minor_version = 0;
     606             :         PyObject *type, *value, *traceback;
     607             :         PyErr_Fetch(&type, &value, &traceback);
     608             :         #if __PYX_LIMITED_VERSION_HEX >= 0x030B0000
     609             :         minor_version = 11;
     610             :         #else
     611             :         if (!(version_info = PySys_GetObject("version_info"))) goto end;
     612             :         if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end;
     613             :         minor_version = PyLong_AsLong(py_minor_version);
     614             :         Py_DECREF(py_minor_version);
     615             :         if (minor_version == -1 && PyErr_Occurred()) goto end;
     616             :         #endif
     617             :         if (!(types_module = PyImport_ImportModule("types"))) goto end;
     618             :         if (!(code_type = PyObject_GetAttrString(types_module, "CodeType"))) goto end;
     619             :         if (minor_version <= 7) {
     620             :             (void)p;
     621             :             result = PyObject_CallFunction(code_type, "iiiiiOOOOOOiOO", a, k, l, s, f, code,
     622             :                           c, n, v, fn, name, fline, lnos, fv, cell);
     623             :         } else if (minor_version <= 10) {
     624             :             result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOiOO", a,p, k, l, s, f, code,
     625             :                           c, n, v, fn, name, fline, lnos, fv, cell);
     626             :         } else {
     627             :             if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end;
     628             :             result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOOiOO", a,p, k, l, s, f, code,
     629             :                           c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell);
     630             :         }
     631             :     end:
     632             :         Py_XDECREF(code_type);
     633             :         Py_XDECREF(exception_table);
     634             :         Py_XDECREF(types_module);
     635             :         if (type) {
     636             :             PyErr_Restore(type, value, traceback);
     637             :         }
     638             :         return result;
     639             :     }
     640             :     #ifndef CO_OPTIMIZED
     641             :     #define CO_OPTIMIZED 0x0001
     642             :     #endif
     643             :     #ifndef CO_NEWLOCALS
     644             :     #define CO_NEWLOCALS 0x0002
     645             :     #endif
     646             :     #ifndef CO_VARARGS
     647             :     #define CO_VARARGS 0x0004
     648             :     #endif
     649             :     #ifndef CO_VARKEYWORDS
     650             :     #define CO_VARKEYWORDS 0x0008
     651             :     #endif
     652             :     #ifndef CO_ASYNC_GENERATOR
     653             :     #define CO_ASYNC_GENERATOR 0x0200
     654             :     #endif
     655             :     #ifndef CO_GENERATOR
     656             :     #define CO_GENERATOR 0x0020
     657             :     #endif
     658             :     #ifndef CO_COROUTINE
     659             :     #define CO_COROUTINE 0x0080
     660             :     #endif
     661             : #elif PY_VERSION_HEX >= 0x030B0000
     662         171 :   static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f,
     663             :                                                     PyObject *code, PyObject *c, PyObject* n, PyObject *v,
     664             :                                                     PyObject *fv, PyObject *cell, PyObject* fn,
     665             :                                                     PyObject *name, int fline, PyObject *lnos) {
     666         171 :     PyCodeObject *result;
     667         171 :     PyObject *empty_bytes = PyBytes_FromStringAndSize("", 0);
     668         171 :     if (!empty_bytes) return NULL;
     669         171 :     result =
     670             :       #if PY_VERSION_HEX >= 0x030C0000
     671         171 :         PyUnstable_Code_NewWithPosOnlyArgs
     672             :       #else
     673             :         PyCode_NewWithPosOnlyArgs
     674             :       #endif
     675             :         (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, empty_bytes);
     676         171 :     Py_DECREF(empty_bytes);
     677             :     return result;
     678             :   }
     679             : #elif PY_VERSION_HEX >= 0x030800B2 && !CYTHON_COMPILING_IN_PYPY
     680             :   #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
     681             :           PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
     682             : #else
     683             :   #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
     684             :           PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
     685             : #endif
     686             : #endif
     687             : #if PY_VERSION_HEX >= 0x030900A4 || defined(Py_IS_TYPE)
     688             :   #define __Pyx_IS_TYPE(ob, type) Py_IS_TYPE(ob, type)
     689             : #else
     690             :   #define __Pyx_IS_TYPE(ob, type) (((const PyObject*)ob)->ob_type == (type))
     691             : #endif
     692             : #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is)
     693             :   #define __Pyx_Py_Is(x, y)  Py_Is(x, y)
     694             : #else
     695             :   #define __Pyx_Py_Is(x, y) ((x) == (y))
     696             : #endif
     697             : #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone)
     698             :   #define __Pyx_Py_IsNone(ob) Py_IsNone(ob)
     699             : #else
     700             :   #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None)
     701             : #endif
     702             : #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue)
     703             :   #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob)
     704             : #else
     705             :   #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True)
     706             : #endif
     707             : #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse)
     708             :   #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob)
     709             : #else
     710             :   #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False)
     711             : #endif
     712             : #define __Pyx_NoneAsNull(obj)  (__Pyx_Py_IsNone(obj) ? NULL : (obj))
     713             : #if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY
     714             :   #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o)
     715             : #else
     716             :   #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o)
     717             : #endif
     718             : #ifndef CO_COROUTINE
     719             :   #define CO_COROUTINE 0x80
     720             : #endif
     721             : #ifndef CO_ASYNC_GENERATOR
     722             :   #define CO_ASYNC_GENERATOR 0x200
     723             : #endif
     724             : #ifndef Py_TPFLAGS_CHECKTYPES
     725             :   #define Py_TPFLAGS_CHECKTYPES 0
     726             : #endif
     727             : #ifndef Py_TPFLAGS_HAVE_INDEX
     728             :   #define Py_TPFLAGS_HAVE_INDEX 0
     729             : #endif
     730             : #ifndef Py_TPFLAGS_HAVE_NEWBUFFER
     731             :   #define Py_TPFLAGS_HAVE_NEWBUFFER 0
     732             : #endif
     733             : #ifndef Py_TPFLAGS_HAVE_FINALIZE
     734             :   #define Py_TPFLAGS_HAVE_FINALIZE 0
     735             : #endif
     736             : #ifndef Py_TPFLAGS_SEQUENCE
     737             :   #define Py_TPFLAGS_SEQUENCE 0
     738             : #endif
     739             : #ifndef Py_TPFLAGS_MAPPING
     740             :   #define Py_TPFLAGS_MAPPING 0
     741             : #endif
     742             : #ifndef METH_STACKLESS
     743             :   #define METH_STACKLESS 0
     744             : #endif
     745             : #if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL)
     746             :   #ifndef METH_FASTCALL
     747             :      #define METH_FASTCALL 0x80
     748             :   #endif
     749             :   typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
     750             :   typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
     751             :                                                           Py_ssize_t nargs, PyObject *kwnames);
     752             : #else
     753             :   #if PY_VERSION_HEX >= 0x030d00A4
     754             :   #  define __Pyx_PyCFunctionFast PyCFunctionFast
     755             :   #  define __Pyx_PyCFunctionFastWithKeywords PyCFunctionFastWithKeywords
     756             :   #else
     757             :   #  define __Pyx_PyCFunctionFast _PyCFunctionFast
     758             :   #  define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
     759             :   #endif
     760             : #endif
     761             : #if CYTHON_METH_FASTCALL
     762             :   #define __Pyx_METH_FASTCALL METH_FASTCALL
     763             :   #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast
     764             :   #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords
     765             : #else
     766             :   #define __Pyx_METH_FASTCALL METH_VARARGS
     767             :   #define __Pyx_PyCFunction_FastCall PyCFunction
     768             :   #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords
     769             : #endif
     770             : #if CYTHON_VECTORCALL
     771             :   #define __pyx_vectorcallfunc vectorcallfunc
     772             :   #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  PY_VECTORCALL_ARGUMENTS_OFFSET
     773             :   #define __Pyx_PyVectorcall_NARGS(n)  PyVectorcall_NARGS((size_t)(n))
     774             : #elif CYTHON_BACKPORT_VECTORCALL
     775             :   typedef PyObject *(*__pyx_vectorcallfunc)(PyObject *callable, PyObject *const *args,
     776             :                                             size_t nargsf, PyObject *kwnames);
     777             :   #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  ((size_t)1 << (8 * sizeof(size_t) - 1))
     778             :   #define __Pyx_PyVectorcall_NARGS(n)  ((Py_ssize_t)(((size_t)(n)) & ~__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET))
     779             : #else
     780             :   #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  0
     781             :   #define __Pyx_PyVectorcall_NARGS(n)  ((Py_ssize_t)(n))
     782             : #endif
     783             : #if PY_MAJOR_VERSION >= 0x030900B1
     784             : #define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_CheckExact(func)
     785             : #else
     786             : #define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_Check(func)
     787             : #endif
     788             : #define __Pyx_CyOrPyCFunction_Check(func)  PyCFunction_Check(func)
     789             : #if CYTHON_COMPILING_IN_CPYTHON
     790             : #define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  (((PyCFunctionObject*)(func))->m_ml->ml_meth)
     791             : #elif !CYTHON_COMPILING_IN_LIMITED_API
     792             : #define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  PyCFunction_GET_FUNCTION(func)
     793             : #endif
     794             : #if CYTHON_COMPILING_IN_CPYTHON
     795             : #define __Pyx_CyOrPyCFunction_GET_FLAGS(func)  (((PyCFunctionObject*)(func))->m_ml->ml_flags)
     796           0 : static CYTHON_INLINE PyObject* __Pyx_CyOrPyCFunction_GET_SELF(PyObject *func) {
     797           0 :     return (__Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_STATIC) ? NULL : ((PyCFunctionObject*)func)->m_self;
     798             : }
     799             : #endif
     800             : static CYTHON_INLINE int __Pyx__IsSameCFunction(PyObject *func, void *cfunc) {
     801             : #if CYTHON_COMPILING_IN_LIMITED_API
     802             :     return PyCFunction_Check(func) && PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
     803             : #else
     804             :     return PyCFunction_Check(func) && PyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
     805             : #endif
     806             : }
     807             : #define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCFunction(func, cfunc)
     808             : #if __PYX_LIMITED_VERSION_HEX < 0x030900B1
     809             :   #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  ((void)m, PyType_FromSpecWithBases(s, b))
     810             :   typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *);
     811             : #else
     812             :   #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  PyType_FromModuleAndSpec(m, s, b)
     813             :   #define __Pyx_PyCMethod  PyCMethod
     814             : #endif
     815             : #ifndef METH_METHOD
     816             :   #define METH_METHOD 0x200
     817             : #endif
     818             : #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
     819             :   #define PyObject_Malloc(s)   PyMem_Malloc(s)
     820             :   #define PyObject_Free(p)     PyMem_Free(p)
     821             :   #define PyObject_Realloc(p)  PyMem_Realloc(p)
     822             : #endif
     823             : #if CYTHON_COMPILING_IN_LIMITED_API
     824             :   #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
     825             :   #define __Pyx_PyFrame_SetLineNumber(frame, lineno)
     826             : #else
     827             :   #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
     828             :   #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
     829             : #endif
     830             : #if CYTHON_COMPILING_IN_LIMITED_API
     831             :   #define __Pyx_PyThreadState_Current PyThreadState_Get()
     832             : #elif !CYTHON_FAST_THREAD_STATE
     833             :   #define __Pyx_PyThreadState_Current PyThreadState_GET()
     834             : #elif PY_VERSION_HEX >= 0x030d00A1
     835             :   #define __Pyx_PyThreadState_Current PyThreadState_GetUnchecked()
     836             : #elif PY_VERSION_HEX >= 0x03060000
     837             :   #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
     838             : #elif PY_VERSION_HEX >= 0x03000000
     839             :   #define __Pyx_PyThreadState_Current PyThreadState_GET()
     840             : #else
     841             :   #define __Pyx_PyThreadState_Current _PyThreadState_Current
     842             : #endif
     843             : #if CYTHON_COMPILING_IN_LIMITED_API
     844             : static CYTHON_INLINE void *__Pyx_PyModule_GetState(PyObject *op)
     845             : {
     846             :     void *result;
     847             :     result = PyModule_GetState(op);
     848             :     if (!result)
     849             :         Py_FatalError("Couldn't find the module state");
     850             :     return result;
     851             : }
     852             : #endif
     853             : #define __Pyx_PyObject_GetSlot(obj, name, func_ctype)  __Pyx_PyType_GetSlot(Py_TYPE(obj), name, func_ctype)
     854             : #if CYTHON_COMPILING_IN_LIMITED_API
     855             :   #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((func_ctype) PyType_GetSlot((type), Py_##name))
     856             : #else
     857             :   #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((type)->name)
     858             : #endif
     859             : #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT)
     860             : #include "pythread.h"
     861             : #define Py_tss_NEEDS_INIT 0
     862             : typedef int Py_tss_t;
     863             : static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) {
     864             :   *key = PyThread_create_key();
     865             :   return 0;
     866             : }
     867             : static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) {
     868             :   Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t));
     869             :   *key = Py_tss_NEEDS_INIT;
     870             :   return key;
     871             : }
     872             : static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) {
     873             :   PyObject_Free(key);
     874             : }
     875             : static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) {
     876             :   return *key != Py_tss_NEEDS_INIT;
     877             : }
     878             : static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) {
     879             :   PyThread_delete_key(*key);
     880             :   *key = Py_tss_NEEDS_INIT;
     881             : }
     882             : static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) {
     883             :   return PyThread_set_key_value(*key, value);
     884             : }
     885             : static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
     886             :   return PyThread_get_key_value(*key);
     887             : }
     888             : #endif
     889             : #if PY_MAJOR_VERSION < 3
     890             :     #if CYTHON_COMPILING_IN_PYPY
     891             :         #if PYPY_VERSION_NUM < 0x07030600
     892             :             #if defined(__cplusplus) && __cplusplus >= 201402L
     893             :                 [[deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")]]
     894             :             #elif defined(__GNUC__) || defined(__clang__)
     895             :                 __attribute__ ((__deprecated__("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")))
     896             :             #elif defined(_MSC_VER)
     897             :                 __declspec(deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6"))
     898             :             #endif
     899             :             static CYTHON_INLINE int PyGILState_Check(void) {
     900             :                 return 0;
     901             :             }
     902             :         #else  // PYPY_VERSION_NUM < 0x07030600
     903             :         #endif  // PYPY_VERSION_NUM < 0x07030600
     904             :     #else
     905             :         static CYTHON_INLINE int PyGILState_Check(void) {
     906             :             PyThreadState * tstate = _PyThreadState_Current;
     907             :             return tstate && (tstate == PyGILState_GetThisThreadState());
     908             :         }
     909             :     #endif
     910             : #endif
     911             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000 || defined(_PyDict_NewPresized)
     912             : #define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
     913             : #else
     914             : #define __Pyx_PyDict_NewPresized(n)  PyDict_New()
     915             : #endif
     916             : #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
     917             :   #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
     918             :   #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
     919             : #else
     920             :   #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
     921             :   #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
     922             : #endif
     923             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX > 0x030600B4 && PY_VERSION_HEX < 0x030d0000 && CYTHON_USE_UNICODE_INTERNALS
     924             : #define __Pyx_PyDict_GetItemStrWithError(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
     925        2758 : static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) {
     926        2758 :     PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name);
     927        2758 :     if (res == NULL) PyErr_Clear();
     928        2758 :     return res;
     929             : }
     930             : #elif PY_MAJOR_VERSION >= 3 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000)
     931             : #define __Pyx_PyDict_GetItemStrWithError  PyDict_GetItemWithError
     932             : #define __Pyx_PyDict_GetItemStr           PyDict_GetItem
     933             : #else
     934             : static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) {
     935             : #if CYTHON_COMPILING_IN_PYPY
     936             :     return PyDict_GetItem(dict, name);
     937             : #else
     938             :     PyDictEntry *ep;
     939             :     PyDictObject *mp = (PyDictObject*) dict;
     940             :     long hash = ((PyStringObject *) name)->ob_shash;
     941             :     assert(hash != -1);
     942             :     ep = (mp->ma_lookup)(mp, name, hash);
     943             :     if (ep == NULL) {
     944             :         return NULL;
     945             :     }
     946             :     return ep->me_value;
     947             : #endif
     948             : }
     949             : #define __Pyx_PyDict_GetItemStr           PyDict_GetItem
     950             : #endif
     951             : #if CYTHON_USE_TYPE_SLOTS
     952             :   #define __Pyx_PyType_GetFlags(tp)   (((PyTypeObject *)tp)->tp_flags)
     953             :   #define __Pyx_PyType_HasFeature(type, feature)  ((__Pyx_PyType_GetFlags(type) & (feature)) != 0)
     954             :   #define __Pyx_PyObject_GetIterNextFunc(obj)  (Py_TYPE(obj)->tp_iternext)
     955             : #else
     956             :   #define __Pyx_PyType_GetFlags(tp)   (PyType_GetFlags((PyTypeObject *)tp))
     957             :   #define __Pyx_PyType_HasFeature(type, feature)  PyType_HasFeature(type, feature)
     958             :   #define __Pyx_PyObject_GetIterNextFunc(obj)  PyIter_Next
     959             : #endif
     960             : #if CYTHON_COMPILING_IN_LIMITED_API
     961             :   #define __Pyx_SetItemOnTypeDict(tp, k, v) PyObject_GenericSetAttr((PyObject*)tp, k, v)
     962             : #else
     963             :   #define __Pyx_SetItemOnTypeDict(tp, k, v) PyDict_SetItem(tp->tp_dict, k, v)
     964             : #endif
     965             : #if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX >= 0x03080000
     966             : #define __Pyx_PyHeapTypeObject_GC_Del(obj)  {\
     967             :     PyTypeObject *type = Py_TYPE((PyObject*)obj);\
     968             :     assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\
     969             :     PyObject_GC_Del(obj);\
     970             :     Py_DECREF(type);\
     971             : }
     972             : #else
     973             : #define __Pyx_PyHeapTypeObject_GC_Del(obj)  PyObject_GC_Del(obj)
     974             : #endif
     975             : #if CYTHON_COMPILING_IN_LIMITED_API
     976             :   #define CYTHON_PEP393_ENABLED 1
     977             :   #define __Pyx_PyUnicode_READY(op)       (0)
     978             :   #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GetLength(u)
     979             :   #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i)
     980             :   #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((void)u, 1114111U)
     981             :   #define __Pyx_PyUnicode_KIND(u)         ((void)u, (0))
     982             :   #define __Pyx_PyUnicode_DATA(u)         ((void*)u)
     983             :   #define __Pyx_PyUnicode_READ(k, d, i)   ((void)k, PyUnicode_ReadChar((PyObject*)(d), i))
     984             :   #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GetLength(u))
     985             : #elif PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
     986             :   #define CYTHON_PEP393_ENABLED 1
     987             :   #if PY_VERSION_HEX >= 0x030C0000
     988             :     #define __Pyx_PyUnicode_READY(op)       (0)
     989             :   #else
     990             :     #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
     991             :                                                 0 : _PyUnicode_Ready((PyObject *)(op)))
     992             :   #endif
     993             :   #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
     994             :   #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
     995             :   #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
     996             :   #define __Pyx_PyUnicode_KIND(u)         ((int)PyUnicode_KIND(u))
     997             :   #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
     998             :   #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
     999             :   #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, (Py_UCS4) ch)
    1000             :   #if PY_VERSION_HEX >= 0x030C0000
    1001             :     #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
    1002             :   #else
    1003             :     #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
    1004             :     #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
    1005             :     #else
    1006             :     #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
    1007             :     #endif
    1008             :   #endif
    1009             : #else
    1010             :   #define CYTHON_PEP393_ENABLED 0
    1011             :   #define PyUnicode_1BYTE_KIND  1
    1012             :   #define PyUnicode_2BYTE_KIND  2
    1013             :   #define PyUnicode_4BYTE_KIND  4
    1014             :   #define __Pyx_PyUnicode_READY(op)       (0)
    1015             :   #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
    1016             :   #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
    1017             :   #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((sizeof(Py_UNICODE) == 2) ? 65535U : 1114111U)
    1018             :   #define __Pyx_PyUnicode_KIND(u)         ((int)sizeof(Py_UNICODE))
    1019             :   #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
    1020             :   #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
    1021             :   #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  (((void)(k)), ((Py_UNICODE*)d)[i] = (Py_UNICODE) ch)
    1022             :   #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_SIZE(u))
    1023             : #endif
    1024             : #if CYTHON_COMPILING_IN_PYPY
    1025             :   #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
    1026             :   #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
    1027             : #else
    1028             :   #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
    1029             :   #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
    1030             :       PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
    1031             : #endif
    1032             : #if CYTHON_COMPILING_IN_PYPY
    1033             :   #if !defined(PyUnicode_DecodeUnicodeEscape)
    1034             :     #define PyUnicode_DecodeUnicodeEscape(s, size, errors)  PyUnicode_Decode(s, size, "unicode_escape", errors)
    1035             :   #endif
    1036             :   #if !defined(PyUnicode_Contains) || (PY_MAJOR_VERSION == 2 && PYPY_VERSION_NUM < 0x07030500)
    1037             :     #undef PyUnicode_Contains
    1038             :     #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
    1039             :   #endif
    1040             :   #if !defined(PyByteArray_Check)
    1041             :     #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
    1042             :   #endif
    1043             :   #if !defined(PyObject_Format)
    1044             :     #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
    1045             :   #endif
    1046             : #endif
    1047             : #define __Pyx_PyString_FormatSafe(a, b)   ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
    1048             : #define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
    1049             : #if PY_MAJOR_VERSION >= 3
    1050             :   #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
    1051             : #else
    1052             :   #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
    1053             : #endif
    1054             : #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
    1055             :   #define PyObject_ASCII(o)            PyObject_Repr(o)
    1056             : #endif
    1057             : #if PY_MAJOR_VERSION >= 3
    1058             :   #define PyBaseString_Type            PyUnicode_Type
    1059             :   #define PyStringObject               PyUnicodeObject
    1060             :   #define PyString_Type                PyUnicode_Type
    1061             :   #define PyString_Check               PyUnicode_Check
    1062             :   #define PyString_CheckExact          PyUnicode_CheckExact
    1063             : #ifndef PyObject_Unicode
    1064             :   #define PyObject_Unicode             PyObject_Str
    1065             : #endif
    1066             : #endif
    1067             : #if PY_MAJOR_VERSION >= 3
    1068             :   #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
    1069             :   #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
    1070             : #else
    1071             :   #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
    1072             :   #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
    1073             : #endif
    1074             : #if CYTHON_COMPILING_IN_CPYTHON
    1075             :   #define __Pyx_PySequence_ListKeepNew(obj)\
    1076             :     (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj))
    1077             : #else
    1078             :   #define __Pyx_PySequence_ListKeepNew(obj)  PySequence_List(obj)
    1079             : #endif
    1080             : #ifndef PySet_CheckExact
    1081             :   #define PySet_CheckExact(obj)        __Pyx_IS_TYPE(obj, &PySet_Type)
    1082             : #endif
    1083             : #if PY_VERSION_HEX >= 0x030900A4
    1084             :   #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
    1085             :   #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
    1086             : #else
    1087             :   #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
    1088             :   #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
    1089             : #endif
    1090             : #if CYTHON_ASSUME_SAFE_MACROS
    1091             :   #define __Pyx_PySequence_ITEM(o, i) PySequence_ITEM(o, i)
    1092             :   #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
    1093             :   #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0))
    1094             :   #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0))
    1095             :   #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o)
    1096             :   #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o)
    1097             :   #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o)
    1098             :   #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o)
    1099             :   #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o)
    1100             : #else
    1101             :   #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i)
    1102             :   #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
    1103             :   #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v)
    1104             :   #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v)
    1105             :   #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o)
    1106             :   #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o)
    1107             :   #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o)
    1108             :   #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o)
    1109             :   #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o)
    1110             : #endif
    1111             : #if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
    1112             :   #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)
    1113             : #else
    1114          12 :   static CYTHON_INLINE PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
    1115          12 :       PyObject *module = PyImport_AddModule(name);
    1116          12 :       Py_XINCREF(module);
    1117          12 :       return module;
    1118             :   }
    1119             : #endif
    1120             : #if PY_MAJOR_VERSION >= 3
    1121             :   #define PyIntObject                  PyLongObject
    1122             :   #define PyInt_Type                   PyLong_Type
    1123             :   #define PyInt_Check(op)              PyLong_Check(op)
    1124             :   #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
    1125             :   #define __Pyx_Py3Int_Check(op)       PyLong_Check(op)
    1126             :   #define __Pyx_Py3Int_CheckExact(op)  PyLong_CheckExact(op)
    1127             :   #define PyInt_FromString             PyLong_FromString
    1128             :   #define PyInt_FromUnicode            PyLong_FromUnicode
    1129             :   #define PyInt_FromLong               PyLong_FromLong
    1130             :   #define PyInt_FromSize_t             PyLong_FromSize_t
    1131             :   #define PyInt_FromSsize_t            PyLong_FromSsize_t
    1132             :   #define PyInt_AsLong                 PyLong_AsLong
    1133             :   #define PyInt_AS_LONG                PyLong_AS_LONG
    1134             :   #define PyInt_AsSsize_t              PyLong_AsSsize_t
    1135             :   #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
    1136             :   #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
    1137             :   #define PyNumber_Int                 PyNumber_Long
    1138             : #else
    1139             :   #define __Pyx_Py3Int_Check(op)       (PyLong_Check(op) || PyInt_Check(op))
    1140             :   #define __Pyx_Py3Int_CheckExact(op)  (PyLong_CheckExact(op) || PyInt_CheckExact(op))
    1141             : #endif
    1142             : #if PY_MAJOR_VERSION >= 3
    1143             :   #define PyBoolObject                 PyLongObject
    1144             : #endif
    1145             : #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
    1146             :   #ifndef PyUnicode_InternFromString
    1147             :     #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
    1148             :   #endif
    1149             : #endif
    1150             : #if PY_VERSION_HEX < 0x030200A4
    1151             :   typedef long Py_hash_t;
    1152             :   #define __Pyx_PyInt_FromHash_t PyInt_FromLong
    1153             :   #define __Pyx_PyInt_AsHash_t   __Pyx_PyIndex_AsHash_t
    1154             : #else
    1155             :   #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
    1156             :   #define __Pyx_PyInt_AsHash_t   __Pyx_PyIndex_AsSsize_t
    1157             : #endif
    1158             : #if CYTHON_USE_ASYNC_SLOTS
    1159             :   #if PY_VERSION_HEX >= 0x030500B1
    1160             :     #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
    1161             :     #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
    1162             :   #else
    1163             :     #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
    1164             :   #endif
    1165             : #else
    1166             :   #define __Pyx_PyType_AsAsync(obj) NULL
    1167             : #endif
    1168             : #ifndef __Pyx_PyAsyncMethodsStruct
    1169             :     typedef struct {
    1170             :         unaryfunc am_await;
    1171             :         unaryfunc am_aiter;
    1172             :         unaryfunc am_anext;
    1173             :     } __Pyx_PyAsyncMethodsStruct;
    1174             : #endif
    1175             : 
    1176             : #if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)
    1177             :   #if !defined(_USE_MATH_DEFINES)
    1178             :     #define _USE_MATH_DEFINES
    1179             :   #endif
    1180             : #endif
    1181             : #include <math.h>
    1182             : #ifdef NAN
    1183             : #define __PYX_NAN() ((float) NAN)
    1184             : #else
    1185             : static CYTHON_INLINE float __PYX_NAN() {
    1186             :   float value;
    1187             :   memset(&value, 0xFF, sizeof(value));
    1188             :   return value;
    1189             : }
    1190             : #endif
    1191             : #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
    1192             : #define __Pyx_truncl trunc
    1193             : #else
    1194             : #define __Pyx_truncl truncl
    1195             : #endif
    1196             : 
    1197             : #define __PYX_MARK_ERR_POS(f_index, lineno) \
    1198             :     { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__;  (void)__pyx_clineno; }
    1199             : #define __PYX_ERR(f_index, lineno, Ln_error) \
    1200             :     { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }
    1201             : 
    1202             : #ifdef CYTHON_EXTERN_C
    1203             :     #undef __PYX_EXTERN_C
    1204             :     #define __PYX_EXTERN_C CYTHON_EXTERN_C
    1205             : #elif defined(__PYX_EXTERN_C)
    1206             :     #ifdef _MSC_VER
    1207             :     #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.")
    1208             :     #else
    1209             :     #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.
    1210             :     #endif
    1211             : #else
    1212             :   #ifdef __cplusplus
    1213             :     #define __PYX_EXTERN_C extern "C"
    1214             :   #else
    1215             :     #define __PYX_EXTERN_C extern
    1216             :   #endif
    1217             : #endif
    1218             : 
    1219             : #define __PYX_HAVE___csparsetools
    1220             : #define __PYX_HAVE_API___csparsetools
    1221             : /* Early includes */
    1222             : #include <string.h>
    1223             : #include <stdio.h>
    1224             : 
    1225             :     /* Using NumPy API declarations from "numpy/__init__.cython-30.pxd" */
    1226             :     
    1227             : #include "numpy/arrayobject.h"
    1228             : #include "numpy/ndarrayobject.h"
    1229             : #include "numpy/ndarraytypes.h"
    1230             : #include "numpy/arrayscalars.h"
    1231             : #include "numpy/ufuncobject.h"
    1232             : #include "pythread.h"
    1233             : #include <stdlib.h>
    1234             : #ifdef _OPENMP
    1235             : #include <omp.h>
    1236             : #endif /* _OPENMP */
    1237             : 
    1238             : #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
    1239             : #define CYTHON_WITHOUT_ASSERTIONS
    1240             : #endif
    1241             : 
    1242             : typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
    1243             :                 const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
    1244             : 
    1245             : #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
    1246             : #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
    1247             : #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
    1248             : #define __PYX_DEFAULT_STRING_ENCODING ""
    1249             : #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
    1250             : #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
    1251             : #define __Pyx_uchar_cast(c) ((unsigned char)c)
    1252             : #define __Pyx_long_cast(x) ((long)x)
    1253             : #define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
    1254             :     (sizeof(type) < sizeof(Py_ssize_t))  ||\
    1255             :     (sizeof(type) > sizeof(Py_ssize_t) &&\
    1256             :           likely(v < (type)PY_SSIZE_T_MAX ||\
    1257             :                  v == (type)PY_SSIZE_T_MAX)  &&\
    1258             :           (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
    1259             :                                 v == (type)PY_SSIZE_T_MIN)))  ||\
    1260             :     (sizeof(type) == sizeof(Py_ssize_t) &&\
    1261             :           (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
    1262             :                                v == (type)PY_SSIZE_T_MAX)))  )
    1263      531645 : static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
    1264      531645 :     return (size_t) i < (size_t) limit;
    1265             : }
    1266             : #if defined (__cplusplus) && __cplusplus >= 201103L
    1267             :     #include <cstdlib>
    1268             :     #define __Pyx_sst_abs(value) std::abs(value)
    1269             : #elif SIZEOF_INT >= SIZEOF_SIZE_T
    1270             :     #define __Pyx_sst_abs(value) abs(value)
    1271             : #elif SIZEOF_LONG >= SIZEOF_SIZE_T
    1272             :     #define __Pyx_sst_abs(value) labs(value)
    1273             : #elif defined (_MSC_VER)
    1274             :     #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
    1275             : #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    1276             :     #define __Pyx_sst_abs(value) llabs(value)
    1277             : #elif defined (__GNUC__)
    1278             :     #define __Pyx_sst_abs(value) __builtin_llabs(value)
    1279             : #else
    1280             :     #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
    1281             : #endif
    1282             : static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s);
    1283             : static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
    1284             : static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
    1285             : static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char*);
    1286             : #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
    1287             : #define __Pyx_PyBytes_FromString        PyBytes_FromString
    1288             : #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
    1289             : static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
    1290             : #if PY_MAJOR_VERSION < 3
    1291             :     #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
    1292             :     #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
    1293             : #else
    1294             :     #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
    1295             :     #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
    1296             : #endif
    1297             : #define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))
    1298             : #define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))
    1299             : #define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))
    1300             : #define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))
    1301             : #define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))
    1302             : #define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))
    1303             : #define __Pyx_PyObject_AsWritableString(s)    ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
    1304             : #define __Pyx_PyObject_AsWritableSString(s)    ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
    1305             : #define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
    1306             : #define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))
    1307             : #define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))
    1308             : #define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
    1309             : #define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
    1310             : #define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
    1311             : #define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
    1312             : #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
    1313             : #define __Pyx_PyUnicode_FromOrdinal(o)       PyUnicode_FromOrdinal((int)o)
    1314             : #define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
    1315             : #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
    1316             : #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
    1317             : static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
    1318             : static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
    1319             : static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
    1320             : static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
    1321             : #define __Pyx_PySequence_Tuple(obj)\
    1322             :     (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
    1323             : static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
    1324             : static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
    1325             : static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
    1326             : #if CYTHON_ASSUME_SAFE_MACROS
    1327             : #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
    1328             : #else
    1329             : #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
    1330             : #endif
    1331             : #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
    1332             : #if PY_MAJOR_VERSION >= 3
    1333             : #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
    1334             : #else
    1335             : #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
    1336             : #endif
    1337             : #if CYTHON_USE_PYLONG_INTERNALS
    1338             :   #if PY_VERSION_HEX >= 0x030C00A7
    1339             :   #ifndef _PyLong_SIGN_MASK
    1340             :     #define _PyLong_SIGN_MASK 3
    1341             :   #endif
    1342             :   #ifndef _PyLong_NON_SIZE_BITS
    1343             :     #define _PyLong_NON_SIZE_BITS 3
    1344             :   #endif
    1345             :   #define __Pyx_PyLong_Sign(x)  (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK)
    1346             :   #define __Pyx_PyLong_IsNeg(x)  ((__Pyx_PyLong_Sign(x) & 2) != 0)
    1347             :   #define __Pyx_PyLong_IsNonNeg(x)  (!__Pyx_PyLong_IsNeg(x))
    1348             :   #define __Pyx_PyLong_IsZero(x)  (__Pyx_PyLong_Sign(x) & 1)
    1349             :   #define __Pyx_PyLong_IsPos(x)  (__Pyx_PyLong_Sign(x) == 0)
    1350             :   #define __Pyx_PyLong_CompactValueUnsigned(x)  (__Pyx_PyLong_Digits(x)[0])
    1351             :   #define __Pyx_PyLong_DigitCount(x)  ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS))
    1352             :   #define __Pyx_PyLong_SignedDigitCount(x)\
    1353             :         ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x))
    1354             :   #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue)
    1355             :     #define __Pyx_PyLong_IsCompact(x)     PyUnstable_Long_IsCompact((PyLongObject*) x)
    1356             :     #define __Pyx_PyLong_CompactValue(x)  PyUnstable_Long_CompactValue((PyLongObject*) x)
    1357             :   #else
    1358             :     #define __Pyx_PyLong_IsCompact(x)     (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS))
    1359             :     #define __Pyx_PyLong_CompactValue(x)  ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0])
    1360             :   #endif
    1361             :   typedef Py_ssize_t  __Pyx_compact_pylong;
    1362             :   typedef size_t  __Pyx_compact_upylong;
    1363             :   #else
    1364             :   #define __Pyx_PyLong_IsNeg(x)  (Py_SIZE(x) < 0)
    1365             :   #define __Pyx_PyLong_IsNonNeg(x)  (Py_SIZE(x) >= 0)
    1366             :   #define __Pyx_PyLong_IsZero(x)  (Py_SIZE(x) == 0)
    1367             :   #define __Pyx_PyLong_IsPos(x)  (Py_SIZE(x) > 0)
    1368             :   #define __Pyx_PyLong_CompactValueUnsigned(x)  ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0])
    1369             :   #define __Pyx_PyLong_DigitCount(x)  __Pyx_sst_abs(Py_SIZE(x))
    1370             :   #define __Pyx_PyLong_SignedDigitCount(x)  Py_SIZE(x)
    1371             :   #define __Pyx_PyLong_IsCompact(x)  (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1)
    1372             :   #define __Pyx_PyLong_CompactValue(x)\
    1373             :         ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0]))
    1374             :   typedef sdigit  __Pyx_compact_pylong;
    1375             :   typedef digit  __Pyx_compact_upylong;
    1376             :   #endif
    1377             :   #if PY_VERSION_HEX >= 0x030C00A5
    1378             :   #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->long_value.ob_digit)
    1379             :   #else
    1380             :   #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->ob_digit)
    1381             :   #endif
    1382             : #endif
    1383             : #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    1384             : #include <string.h>
    1385             : static int __Pyx_sys_getdefaultencoding_not_ascii;
    1386             : static int __Pyx_init_sys_getdefaultencoding_params(void) {
    1387             :     PyObject* sys;
    1388             :     PyObject* default_encoding = NULL;
    1389             :     PyObject* ascii_chars_u = NULL;
    1390             :     PyObject* ascii_chars_b = NULL;
    1391             :     const char* default_encoding_c;
    1392             :     sys = PyImport_ImportModule("sys");
    1393             :     if (!sys) goto bad;
    1394             :     default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
    1395             :     Py_DECREF(sys);
    1396             :     if (!default_encoding) goto bad;
    1397             :     default_encoding_c = PyBytes_AsString(default_encoding);
    1398             :     if (!default_encoding_c) goto bad;
    1399             :     if (strcmp(default_encoding_c, "ascii") == 0) {
    1400             :         __Pyx_sys_getdefaultencoding_not_ascii = 0;
    1401             :     } else {
    1402             :         char ascii_chars[128];
    1403             :         int c;
    1404             :         for (c = 0; c < 128; c++) {
    1405             :             ascii_chars[c] = (char) c;
    1406             :         }
    1407             :         __Pyx_sys_getdefaultencoding_not_ascii = 1;
    1408             :         ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
    1409             :         if (!ascii_chars_u) goto bad;
    1410             :         ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
    1411             :         if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
    1412             :             PyErr_Format(
    1413             :                 PyExc_ValueError,
    1414             :                 "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
    1415             :                 default_encoding_c);
    1416             :             goto bad;
    1417             :         }
    1418             :         Py_DECREF(ascii_chars_u);
    1419             :         Py_DECREF(ascii_chars_b);
    1420             :     }
    1421             :     Py_DECREF(default_encoding);
    1422             :     return 0;
    1423             : bad:
    1424             :     Py_XDECREF(default_encoding);
    1425             :     Py_XDECREF(ascii_chars_u);
    1426             :     Py_XDECREF(ascii_chars_b);
    1427             :     return -1;
    1428             : }
    1429             : #endif
    1430             : #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
    1431             : #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
    1432             : #else
    1433             : #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
    1434             : #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
    1435             : #include <string.h>
    1436             : static char* __PYX_DEFAULT_STRING_ENCODING;
    1437             : static int __Pyx_init_sys_getdefaultencoding_params(void) {
    1438             :     PyObject* sys;
    1439             :     PyObject* default_encoding = NULL;
    1440             :     char* default_encoding_c;
    1441             :     sys = PyImport_ImportModule("sys");
    1442             :     if (!sys) goto bad;
    1443             :     default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
    1444             :     Py_DECREF(sys);
    1445             :     if (!default_encoding) goto bad;
    1446             :     default_encoding_c = PyBytes_AsString(default_encoding);
    1447             :     if (!default_encoding_c) goto bad;
    1448             :     __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1);
    1449             :     if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
    1450             :     strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
    1451             :     Py_DECREF(default_encoding);
    1452             :     return 0;
    1453             : bad:
    1454             :     Py_XDECREF(default_encoding);
    1455             :     return -1;
    1456             : }
    1457             : #endif
    1458             : #endif
    1459             : 
    1460             : 
    1461             : /* Test for GCC > 2.95 */
    1462             : #if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
    1463             :   #define likely(x)   __builtin_expect(!!(x), 1)
    1464             :   #define unlikely(x) __builtin_expect(!!(x), 0)
    1465             : #else /* !__GNUC__ or GCC < 2.95 */
    1466             :   #define likely(x)   (x)
    1467             :   #define unlikely(x) (x)
    1468             : #endif /* __GNUC__ */
    1469             : static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }
    1470             : 
    1471             : #if !CYTHON_USE_MODULE_STATE
    1472             : static PyObject *__pyx_m = NULL;
    1473             : #endif
    1474             : static int __pyx_lineno;
    1475             : static int __pyx_clineno = 0;
    1476             : static const char * __pyx_cfilenm = __FILE__;
    1477             : static const char *__pyx_filename;
    1478             : 
    1479             : /* Header.proto */
    1480             : #if !defined(CYTHON_CCOMPLEX)
    1481             :   #if defined(__cplusplus)
    1482             :     #define CYTHON_CCOMPLEX 1
    1483             :   #elif (defined(_Complex_I) && !defined(_MSC_VER)) || ((defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) && !defined(__STDC_NO_COMPLEX__) && !defined(_MSC_VER))
    1484             :     #define CYTHON_CCOMPLEX 1
    1485             :   #else
    1486             :     #define CYTHON_CCOMPLEX 0
    1487             :   #endif
    1488             : #endif
    1489             : #if CYTHON_CCOMPLEX
    1490             :   #ifdef __cplusplus
    1491             :     #include <complex>
    1492             :   #else
    1493             :     #include <complex.h>
    1494             :   #endif
    1495             : #endif
    1496             : #if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__)
    1497             :   #undef _Complex_I
    1498             :   #define _Complex_I 1.0fj
    1499             : #endif
    1500             : 
    1501             : /* #### Code section: filename_table ### */
    1502             : 
    1503             : static const char *__pyx_f[] = {
    1504             :   "scipy/sparse/_csparsetools.pyx",
    1505             :   "<stringsource>",
    1506             :   "__init__.cython-30.pxd",
    1507             :   "type.pxd",
    1508             : };
    1509             : /* #### Code section: utility_code_proto_before_types ### */
    1510             : /* ForceInitThreads.proto */
    1511             : #ifndef __PYX_FORCE_INIT_THREADS
    1512             :   #define __PYX_FORCE_INIT_THREADS 0
    1513             : #endif
    1514             : 
    1515             : /* NoFastGil.proto */
    1516             : #define __Pyx_PyGILState_Ensure PyGILState_Ensure
    1517             : #define __Pyx_PyGILState_Release PyGILState_Release
    1518             : #define __Pyx_FastGIL_Remember()
    1519             : #define __Pyx_FastGIL_Forget()
    1520             : #define __Pyx_FastGilFuncInit()
    1521             : 
    1522             : /* BufferFormatStructs.proto */
    1523             : struct __Pyx_StructField_;
    1524             : #define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0)
    1525             : typedef struct {
    1526             :   const char* name;
    1527             :   struct __Pyx_StructField_* fields;
    1528             :   size_t size;
    1529             :   size_t arraysize[8];
    1530             :   int ndim;
    1531             :   char typegroup;
    1532             :   char is_unsigned;
    1533             :   int flags;
    1534             : } __Pyx_TypeInfo;
    1535             : typedef struct __Pyx_StructField_ {
    1536             :   __Pyx_TypeInfo* type;
    1537             :   const char* name;
    1538             :   size_t offset;
    1539             : } __Pyx_StructField;
    1540             : typedef struct {
    1541             :   __Pyx_StructField* field;
    1542             :   size_t parent_offset;
    1543             : } __Pyx_BufFmt_StackElem;
    1544             : typedef struct {
    1545             :   __Pyx_StructField root;
    1546             :   __Pyx_BufFmt_StackElem* head;
    1547             :   size_t fmt_offset;
    1548             :   size_t new_count, enc_count;
    1549             :   size_t struct_alignment;
    1550             :   int is_complex;
    1551             :   char enc_type;
    1552             :   char new_packmode;
    1553             :   char enc_packmode;
    1554             :   char is_valid_array;
    1555             : } __Pyx_BufFmt_Context;
    1556             : 
    1557             : /* Atomics.proto */
    1558             : #include <pythread.h>
    1559             : #ifndef CYTHON_ATOMICS
    1560             :     #define CYTHON_ATOMICS 1
    1561             : #endif
    1562             : #define __PYX_CYTHON_ATOMICS_ENABLED() CYTHON_ATOMICS
    1563             : #define __pyx_atomic_int_type int
    1564             : #define __pyx_nonatomic_int_type int
    1565             : #if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
    1566             :                         (__STDC_VERSION__ >= 201112L) &&\
    1567             :                         !defined(__STDC_NO_ATOMICS__))
    1568             :     #include <stdatomic.h>
    1569             : #elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
    1570             :                     (__cplusplus >= 201103L) ||\
    1571             :                     (defined(_MSC_VER) && _MSC_VER >= 1700)))
    1572             :     #include <atomic>
    1573             : #endif
    1574             : #if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
    1575             :                         (__STDC_VERSION__ >= 201112L) &&\
    1576             :                         !defined(__STDC_NO_ATOMICS__) &&\
    1577             :                        ATOMIC_INT_LOCK_FREE == 2)
    1578             :     #undef __pyx_atomic_int_type
    1579             :     #define __pyx_atomic_int_type atomic_int
    1580             :     #define __pyx_atomic_incr_aligned(value) atomic_fetch_add_explicit(value, 1, memory_order_relaxed)
    1581             :     #define __pyx_atomic_decr_aligned(value) atomic_fetch_sub_explicit(value, 1, memory_order_acq_rel)
    1582             :     #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
    1583             :         #pragma message ("Using standard C atomics")
    1584             :     #elif defined(__PYX_DEBUG_ATOMICS)
    1585             :         #warning "Using standard C atomics"
    1586             :     #endif
    1587             : #elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
    1588             :                     (__cplusplus >= 201103L) ||\
    1589             : \
    1590             :                     (defined(_MSC_VER) && _MSC_VER >= 1700)) &&\
    1591             :                     ATOMIC_INT_LOCK_FREE == 2)
    1592             :     #undef __pyx_atomic_int_type
    1593             :     #define __pyx_atomic_int_type std::atomic_int
    1594             :     #define __pyx_atomic_incr_aligned(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_relaxed)
    1595             :     #define __pyx_atomic_decr_aligned(value) std::atomic_fetch_sub_explicit(value, 1, std::memory_order_acq_rel)
    1596             :     #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
    1597             :         #pragma message ("Using standard C++ atomics")
    1598             :     #elif defined(__PYX_DEBUG_ATOMICS)
    1599             :         #warning "Using standard C++ atomics"
    1600             :     #endif
    1601             : #elif CYTHON_ATOMICS && (__GNUC__ >= 5 || (__GNUC__ == 4 &&\
    1602             :                     (__GNUC_MINOR__ > 1 ||\
    1603             :                     (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ >= 2))))
    1604             :     #define __pyx_atomic_incr_aligned(value) __sync_fetch_and_add(value, 1)
    1605             :     #define __pyx_atomic_decr_aligned(value) __sync_fetch_and_sub(value, 1)
    1606             :     #ifdef __PYX_DEBUG_ATOMICS
    1607             :         #warning "Using GNU atomics"
    1608             :     #endif
    1609             : #elif CYTHON_ATOMICS && defined(_MSC_VER)
    1610             :     #include <intrin.h>
    1611             :     #undef __pyx_atomic_int_type
    1612             :     #define __pyx_atomic_int_type long
    1613             :     #undef __pyx_nonatomic_int_type
    1614             :     #define __pyx_nonatomic_int_type long
    1615             :     #pragma intrinsic (_InterlockedExchangeAdd)
    1616             :     #define __pyx_atomic_incr_aligned(value) _InterlockedExchangeAdd(value, 1)
    1617             :     #define __pyx_atomic_decr_aligned(value) _InterlockedExchangeAdd(value, -1)
    1618             :     #ifdef __PYX_DEBUG_ATOMICS
    1619             :         #pragma message ("Using MSVC atomics")
    1620             :     #endif
    1621             : #else
    1622             :     #undef CYTHON_ATOMICS
    1623             :     #define CYTHON_ATOMICS 0
    1624             :     #ifdef __PYX_DEBUG_ATOMICS
    1625             :         #warning "Not using atomics"
    1626             :     #endif
    1627             : #endif
    1628             : #if CYTHON_ATOMICS
    1629             :     #define __pyx_add_acquisition_count(memview)\
    1630             :              __pyx_atomic_incr_aligned(__pyx_get_slice_count_pointer(memview))
    1631             :     #define __pyx_sub_acquisition_count(memview)\
    1632             :             __pyx_atomic_decr_aligned(__pyx_get_slice_count_pointer(memview))
    1633             : #else
    1634             :     #define __pyx_add_acquisition_count(memview)\
    1635             :             __pyx_add_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock)
    1636             :     #define __pyx_sub_acquisition_count(memview)\
    1637             :             __pyx_sub_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock)
    1638             : #endif
    1639             : 
    1640             : /* MemviewSliceStruct.proto */
    1641             : struct __pyx_memoryview_obj;
    1642             : typedef struct {
    1643             :   struct __pyx_memoryview_obj *memview;
    1644             :   char *data;
    1645             :   Py_ssize_t shape[8];
    1646             :   Py_ssize_t strides[8];
    1647             :   Py_ssize_t suboffsets[8];
    1648             : } __Pyx_memviewslice;
    1649             : #define __Pyx_MemoryView_Len(m)  (m.shape[0])
    1650             : 
    1651             : /* #### Code section: numeric_typedefs ### */
    1652             : 
    1653             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":769
    1654             :  * # in Cython to enable them only on the right systems.
    1655             :  * 
    1656             :  * ctypedef npy_int8       int8_t             # <<<<<<<<<<<<<<
    1657             :  * ctypedef npy_int16      int16_t
    1658             :  * ctypedef npy_int32      int32_t
    1659             :  */
    1660             : typedef npy_int8 __pyx_t_5numpy_int8_t;
    1661             : 
    1662             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":770
    1663             :  * 
    1664             :  * ctypedef npy_int8       int8_t
    1665             :  * ctypedef npy_int16      int16_t             # <<<<<<<<<<<<<<
    1666             :  * ctypedef npy_int32      int32_t
    1667             :  * ctypedef npy_int64      int64_t
    1668             :  */
    1669             : typedef npy_int16 __pyx_t_5numpy_int16_t;
    1670             : 
    1671             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":771
    1672             :  * ctypedef npy_int8       int8_t
    1673             :  * ctypedef npy_int16      int16_t
    1674             :  * ctypedef npy_int32      int32_t             # <<<<<<<<<<<<<<
    1675             :  * ctypedef npy_int64      int64_t
    1676             :  * #ctypedef npy_int96      int96_t
    1677             :  */
    1678             : typedef npy_int32 __pyx_t_5numpy_int32_t;
    1679             : 
    1680             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":772
    1681             :  * ctypedef npy_int16      int16_t
    1682             :  * ctypedef npy_int32      int32_t
    1683             :  * ctypedef npy_int64      int64_t             # <<<<<<<<<<<<<<
    1684             :  * #ctypedef npy_int96      int96_t
    1685             :  * #ctypedef npy_int128     int128_t
    1686             :  */
    1687             : typedef npy_int64 __pyx_t_5numpy_int64_t;
    1688             : 
    1689             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":776
    1690             :  * #ctypedef npy_int128     int128_t
    1691             :  * 
    1692             :  * ctypedef npy_uint8      uint8_t             # <<<<<<<<<<<<<<
    1693             :  * ctypedef npy_uint16     uint16_t
    1694             :  * ctypedef npy_uint32     uint32_t
    1695             :  */
    1696             : typedef npy_uint8 __pyx_t_5numpy_uint8_t;
    1697             : 
    1698             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":777
    1699             :  * 
    1700             :  * ctypedef npy_uint8      uint8_t
    1701             :  * ctypedef npy_uint16     uint16_t             # <<<<<<<<<<<<<<
    1702             :  * ctypedef npy_uint32     uint32_t
    1703             :  * ctypedef npy_uint64     uint64_t
    1704             :  */
    1705             : typedef npy_uint16 __pyx_t_5numpy_uint16_t;
    1706             : 
    1707             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":778
    1708             :  * ctypedef npy_uint8      uint8_t
    1709             :  * ctypedef npy_uint16     uint16_t
    1710             :  * ctypedef npy_uint32     uint32_t             # <<<<<<<<<<<<<<
    1711             :  * ctypedef npy_uint64     uint64_t
    1712             :  * #ctypedef npy_uint96     uint96_t
    1713             :  */
    1714             : typedef npy_uint32 __pyx_t_5numpy_uint32_t;
    1715             : 
    1716             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":779
    1717             :  * ctypedef npy_uint16     uint16_t
    1718             :  * ctypedef npy_uint32     uint32_t
    1719             :  * ctypedef npy_uint64     uint64_t             # <<<<<<<<<<<<<<
    1720             :  * #ctypedef npy_uint96     uint96_t
    1721             :  * #ctypedef npy_uint128    uint128_t
    1722             :  */
    1723             : typedef npy_uint64 __pyx_t_5numpy_uint64_t;
    1724             : 
    1725             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":783
    1726             :  * #ctypedef npy_uint128    uint128_t
    1727             :  * 
    1728             :  * ctypedef npy_float32    float32_t             # <<<<<<<<<<<<<<
    1729             :  * ctypedef npy_float64    float64_t
    1730             :  * #ctypedef npy_float80    float80_t
    1731             :  */
    1732             : typedef npy_float32 __pyx_t_5numpy_float32_t;
    1733             : 
    1734             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":784
    1735             :  * 
    1736             :  * ctypedef npy_float32    float32_t
    1737             :  * ctypedef npy_float64    float64_t             # <<<<<<<<<<<<<<
    1738             :  * #ctypedef npy_float80    float80_t
    1739             :  * #ctypedef npy_float128   float128_t
    1740             :  */
    1741             : typedef npy_float64 __pyx_t_5numpy_float64_t;
    1742             : 
    1743             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":791
    1744             :  * ctypedef double complex complex128_t
    1745             :  * 
    1746             :  * ctypedef npy_longlong   longlong_t             # <<<<<<<<<<<<<<
    1747             :  * ctypedef npy_ulonglong  ulonglong_t
    1748             :  * 
    1749             :  */
    1750             : typedef npy_longlong __pyx_t_5numpy_longlong_t;
    1751             : 
    1752             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":792
    1753             :  * 
    1754             :  * ctypedef npy_longlong   longlong_t
    1755             :  * ctypedef npy_ulonglong  ulonglong_t             # <<<<<<<<<<<<<<
    1756             :  * 
    1757             :  * ctypedef npy_intp       intp_t
    1758             :  */
    1759             : typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
    1760             : 
    1761             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":794
    1762             :  * ctypedef npy_ulonglong  ulonglong_t
    1763             :  * 
    1764             :  * ctypedef npy_intp       intp_t             # <<<<<<<<<<<<<<
    1765             :  * ctypedef npy_uintp      uintp_t
    1766             :  * 
    1767             :  */
    1768             : typedef npy_intp __pyx_t_5numpy_intp_t;
    1769             : 
    1770             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":795
    1771             :  * 
    1772             :  * ctypedef npy_intp       intp_t
    1773             :  * ctypedef npy_uintp      uintp_t             # <<<<<<<<<<<<<<
    1774             :  * 
    1775             :  * ctypedef npy_double     float_t
    1776             :  */
    1777             : typedef npy_uintp __pyx_t_5numpy_uintp_t;
    1778             : 
    1779             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":797
    1780             :  * ctypedef npy_uintp      uintp_t
    1781             :  * 
    1782             :  * ctypedef npy_double     float_t             # <<<<<<<<<<<<<<
    1783             :  * ctypedef npy_double     double_t
    1784             :  * ctypedef npy_longdouble longdouble_t
    1785             :  */
    1786             : typedef npy_double __pyx_t_5numpy_float_t;
    1787             : 
    1788             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":798
    1789             :  * 
    1790             :  * ctypedef npy_double     float_t
    1791             :  * ctypedef npy_double     double_t             # <<<<<<<<<<<<<<
    1792             :  * ctypedef npy_longdouble longdouble_t
    1793             :  * 
    1794             :  */
    1795             : typedef npy_double __pyx_t_5numpy_double_t;
    1796             : 
    1797             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":799
    1798             :  * ctypedef npy_double     float_t
    1799             :  * ctypedef npy_double     double_t
    1800             :  * ctypedef npy_longdouble longdouble_t             # <<<<<<<<<<<<<<
    1801             :  * 
    1802             :  * ctypedef float complex       cfloat_t
    1803             :  */
    1804             : typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
    1805             : /* #### Code section: complex_type_declarations ### */
    1806             : /* Declarations.proto */
    1807             : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
    1808             :   #ifdef __cplusplus
    1809             :     typedef ::std::complex< float > __pyx_t_float_complex;
    1810             :   #else
    1811             :     typedef float _Complex __pyx_t_float_complex;
    1812             :   #endif
    1813             : #else
    1814             :     typedef struct { float real, imag; } __pyx_t_float_complex;
    1815             : #endif
    1816             : static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float);
    1817             : 
    1818             : /* Declarations.proto */
    1819             : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
    1820             :   #ifdef __cplusplus
    1821             :     typedef ::std::complex< double > __pyx_t_double_complex;
    1822             :   #else
    1823             :     typedef double _Complex __pyx_t_double_complex;
    1824             :   #endif
    1825             : #else
    1826             :     typedef struct { double real, imag; } __pyx_t_double_complex;
    1827             : #endif
    1828             : static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double);
    1829             : 
    1830             : /* Declarations.proto */
    1831             : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
    1832             :   #ifdef __cplusplus
    1833             :     typedef ::std::complex< long double > __pyx_t_long_double_complex;
    1834             :   #else
    1835             :     typedef long double _Complex __pyx_t_long_double_complex;
    1836             :   #endif
    1837             : #else
    1838             :     typedef struct { long double real, imag; } __pyx_t_long_double_complex;
    1839             : #endif
    1840             : static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double, long double);
    1841             : 
    1842             : /* #### Code section: type_declarations ### */
    1843             : 
    1844             : /*--- Type declarations ---*/
    1845             : struct __pyx_array_obj;
    1846             : struct __pyx_MemviewEnum_obj;
    1847             : struct __pyx_memoryview_obj;
    1848             : struct __pyx_memoryviewslice_obj;
    1849             : 
    1850             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1095
    1851             :  * 
    1852             :  * # Iterator API added in v1.6
    1853             :  * ctypedef int (*NpyIter_IterNextFunc)(NpyIter* it) noexcept nogil             # <<<<<<<<<<<<<<
    1854             :  * ctypedef void (*NpyIter_GetMultiIndexFunc)(NpyIter* it, npy_intp* outcoords) noexcept nogil
    1855             :  * 
    1856             :  */
    1857             : typedef int (*__pyx_t_5numpy_NpyIter_IterNextFunc)(NpyIter *);
    1858             : 
    1859             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1096
    1860             :  * # Iterator API added in v1.6
    1861             :  * ctypedef int (*NpyIter_IterNextFunc)(NpyIter* it) noexcept nogil
    1862             :  * ctypedef void (*NpyIter_GetMultiIndexFunc)(NpyIter* it, npy_intp* outcoords) noexcept nogil             # <<<<<<<<<<<<<<
    1863             :  * 
    1864             :  * cdef extern from "numpy/arrayobject.h":
    1865             :  */
    1866             : typedef void (*__pyx_t_5numpy_NpyIter_GetMultiIndexFunc)(NpyIter *, npy_intp *);
    1867             : struct __pyx_defaults;
    1868             : typedef struct __pyx_defaults __pyx_defaults;
    1869             : struct __pyx_defaults1;
    1870             : typedef struct __pyx_defaults1 __pyx_defaults1;
    1871             : struct __pyx_defaults {
    1872             :   PyObject *__pyx_arg__fused_sigindex;
    1873             : };
    1874             : struct __pyx_defaults1 {
    1875             :   PyObject *__pyx_arg__fused_sigindex;
    1876             : };
    1877             : 
    1878             : /* "View.MemoryView":114
    1879             :  * @cython.collection_type("sequence")
    1880             :  * @cname("__pyx_array")
    1881             :  * cdef class array:             # <<<<<<<<<<<<<<
    1882             :  * 
    1883             :  *     cdef:
    1884             :  */
    1885             : struct __pyx_array_obj {
    1886             :   PyObject_HEAD
    1887             :   struct __pyx_vtabstruct_array *__pyx_vtab;
    1888             :   char *data;
    1889             :   Py_ssize_t len;
    1890             :   char *format;
    1891             :   int ndim;
    1892             :   Py_ssize_t *_shape;
    1893             :   Py_ssize_t *_strides;
    1894             :   Py_ssize_t itemsize;
    1895             :   PyObject *mode;
    1896             :   PyObject *_format;
    1897             :   void (*callback_free_data)(void *);
    1898             :   int free_data;
    1899             :   int dtype_is_object;
    1900             : };
    1901             : 
    1902             : 
    1903             : /* "View.MemoryView":302
    1904             :  * 
    1905             :  * @cname('__pyx_MemviewEnum')
    1906             :  * cdef class Enum(object):             # <<<<<<<<<<<<<<
    1907             :  *     cdef object name
    1908             :  *     def __init__(self, name):
    1909             :  */
    1910             : struct __pyx_MemviewEnum_obj {
    1911             :   PyObject_HEAD
    1912             :   PyObject *name;
    1913             : };
    1914             : 
    1915             : 
    1916             : /* "View.MemoryView":337
    1917             :  * 
    1918             :  * @cname('__pyx_memoryview')
    1919             :  * cdef class memoryview:             # <<<<<<<<<<<<<<
    1920             :  * 
    1921             :  *     cdef object obj
    1922             :  */
    1923             : struct __pyx_memoryview_obj {
    1924             :   PyObject_HEAD
    1925             :   struct __pyx_vtabstruct_memoryview *__pyx_vtab;
    1926             :   PyObject *obj;
    1927             :   PyObject *_size;
    1928             :   PyObject *_array_interface;
    1929             :   PyThread_type_lock lock;
    1930             :   __pyx_atomic_int_type acquisition_count;
    1931             :   Py_buffer view;
    1932             :   int flags;
    1933             :   int dtype_is_object;
    1934             :   __Pyx_TypeInfo *typeinfo;
    1935             : };
    1936             : 
    1937             : 
    1938             : /* "View.MemoryView":952
    1939             :  * @cython.collection_type("sequence")
    1940             :  * @cname('__pyx_memoryviewslice')
    1941             :  * cdef class _memoryviewslice(memoryview):             # <<<<<<<<<<<<<<
    1942             :  *     "Internal class for passing memoryview slices to Python"
    1943             :  * 
    1944             :  */
    1945             : struct __pyx_memoryviewslice_obj {
    1946             :   struct __pyx_memoryview_obj __pyx_base;
    1947             :   __Pyx_memviewslice from_slice;
    1948             :   PyObject *from_object;
    1949             :   PyObject *(*to_object_func)(char *);
    1950             :   int (*to_dtype_func)(char *, PyObject *);
    1951             : };
    1952             : 
    1953             : 
    1954             : 
    1955             : /* "View.MemoryView":114
    1956             :  * @cython.collection_type("sequence")
    1957             :  * @cname("__pyx_array")
    1958             :  * cdef class array:             # <<<<<<<<<<<<<<
    1959             :  * 
    1960             :  *     cdef:
    1961             :  */
    1962             : 
    1963             : struct __pyx_vtabstruct_array {
    1964             :   PyObject *(*get_memview)(struct __pyx_array_obj *);
    1965             : };
    1966             : static struct __pyx_vtabstruct_array *__pyx_vtabptr_array;
    1967             : 
    1968             : 
    1969             : /* "View.MemoryView":337
    1970             :  * 
    1971             :  * @cname('__pyx_memoryview')
    1972             :  * cdef class memoryview:             # <<<<<<<<<<<<<<
    1973             :  * 
    1974             :  *     cdef object obj
    1975             :  */
    1976             : 
    1977             : struct __pyx_vtabstruct_memoryview {
    1978             :   char *(*get_item_pointer)(struct __pyx_memoryview_obj *, PyObject *);
    1979             :   PyObject *(*is_slice)(struct __pyx_memoryview_obj *, PyObject *);
    1980             :   PyObject *(*setitem_slice_assignment)(struct __pyx_memoryview_obj *, PyObject *, PyObject *);
    1981             :   PyObject *(*setitem_slice_assign_scalar)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *);
    1982             :   PyObject *(*setitem_indexed)(struct __pyx_memoryview_obj *, PyObject *, PyObject *);
    1983             :   PyObject *(*convert_item_to_object)(struct __pyx_memoryview_obj *, char *);
    1984             :   PyObject *(*assign_item_from_object)(struct __pyx_memoryview_obj *, char *, PyObject *);
    1985             :   PyObject *(*_get_base)(struct __pyx_memoryview_obj *);
    1986             : };
    1987             : static struct __pyx_vtabstruct_memoryview *__pyx_vtabptr_memoryview;
    1988             : 
    1989             : 
    1990             : /* "View.MemoryView":952
    1991             :  * @cython.collection_type("sequence")
    1992             :  * @cname('__pyx_memoryviewslice')
    1993             :  * cdef class _memoryviewslice(memoryview):             # <<<<<<<<<<<<<<
    1994             :  *     "Internal class for passing memoryview slices to Python"
    1995             :  * 
    1996             :  */
    1997             : 
    1998             : struct __pyx_vtabstruct__memoryviewslice {
    1999             :   struct __pyx_vtabstruct_memoryview __pyx_base;
    2000             : };
    2001             : static struct __pyx_vtabstruct__memoryviewslice *__pyx_vtabptr__memoryviewslice;
    2002             : /* #### Code section: utility_code_proto ### */
    2003             : 
    2004             : /* --- Runtime support code (head) --- */
    2005             : /* Refnanny.proto */
    2006             : #ifndef CYTHON_REFNANNY
    2007             :   #define CYTHON_REFNANNY 0
    2008             : #endif
    2009             : #if CYTHON_REFNANNY
    2010             :   typedef struct {
    2011             :     void (*INCREF)(void*, PyObject*, Py_ssize_t);
    2012             :     void (*DECREF)(void*, PyObject*, Py_ssize_t);
    2013             :     void (*GOTREF)(void*, PyObject*, Py_ssize_t);
    2014             :     void (*GIVEREF)(void*, PyObject*, Py_ssize_t);
    2015             :     void* (*SetupContext)(const char*, Py_ssize_t, const char*);
    2016             :     void (*FinishContext)(void**);
    2017             :   } __Pyx_RefNannyAPIStruct;
    2018             :   static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
    2019             :   static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
    2020             :   #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
    2021             : #ifdef WITH_THREAD
    2022             :   #define __Pyx_RefNannySetupContext(name, acquire_gil)\
    2023             :           if (acquire_gil) {\
    2024             :               PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
    2025             :               __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
    2026             :               PyGILState_Release(__pyx_gilstate_save);\
    2027             :           } else {\
    2028             :               __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
    2029             :           }
    2030             :   #define __Pyx_RefNannyFinishContextNogil() {\
    2031             :               PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
    2032             :               __Pyx_RefNannyFinishContext();\
    2033             :               PyGILState_Release(__pyx_gilstate_save);\
    2034             :           }
    2035             : #else
    2036             :   #define __Pyx_RefNannySetupContext(name, acquire_gil)\
    2037             :           __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__))
    2038             :   #define __Pyx_RefNannyFinishContextNogil() __Pyx_RefNannyFinishContext()
    2039             : #endif
    2040             :   #define __Pyx_RefNannyFinishContextNogil() {\
    2041             :               PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
    2042             :               __Pyx_RefNannyFinishContext();\
    2043             :               PyGILState_Release(__pyx_gilstate_save);\
    2044             :           }
    2045             :   #define __Pyx_RefNannyFinishContext()\
    2046             :           __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
    2047             :   #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
    2048             :   #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
    2049             :   #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
    2050             :   #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
    2051             :   #define __Pyx_XINCREF(r)  do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0)
    2052             :   #define __Pyx_XDECREF(r)  do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0)
    2053             :   #define __Pyx_XGOTREF(r)  do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0)
    2054             :   #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0)
    2055             : #else
    2056             :   #define __Pyx_RefNannyDeclarations
    2057             :   #define __Pyx_RefNannySetupContext(name, acquire_gil)
    2058             :   #define __Pyx_RefNannyFinishContextNogil()
    2059             :   #define __Pyx_RefNannyFinishContext()
    2060             :   #define __Pyx_INCREF(r) Py_INCREF(r)
    2061             :   #define __Pyx_DECREF(r) Py_DECREF(r)
    2062             :   #define __Pyx_GOTREF(r)
    2063             :   #define __Pyx_GIVEREF(r)
    2064             :   #define __Pyx_XINCREF(r) Py_XINCREF(r)
    2065             :   #define __Pyx_XDECREF(r) Py_XDECREF(r)
    2066             :   #define __Pyx_XGOTREF(r)
    2067             :   #define __Pyx_XGIVEREF(r)
    2068             : #endif
    2069             : #define __Pyx_Py_XDECREF_SET(r, v) do {\
    2070             :         PyObject *tmp = (PyObject *) r;\
    2071             :         r = v; Py_XDECREF(tmp);\
    2072             :     } while (0)
    2073             : #define __Pyx_XDECREF_SET(r, v) do {\
    2074             :         PyObject *tmp = (PyObject *) r;\
    2075             :         r = v; __Pyx_XDECREF(tmp);\
    2076             :     } while (0)
    2077             : #define __Pyx_DECREF_SET(r, v) do {\
    2078             :         PyObject *tmp = (PyObject *) r;\
    2079             :         r = v; __Pyx_DECREF(tmp);\
    2080             :     } while (0)
    2081             : #define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
    2082             : #define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
    2083             : 
    2084             : /* PyErrExceptionMatches.proto */
    2085             : #if CYTHON_FAST_THREAD_STATE
    2086             : #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
    2087             : static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
    2088             : #else
    2089             : #define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
    2090             : #endif
    2091             : 
    2092             : /* PyThreadStateGet.proto */
    2093             : #if CYTHON_FAST_THREAD_STATE
    2094             : #define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
    2095             : #define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
    2096             : #if PY_VERSION_HEX >= 0x030C00A6
    2097             : #define __Pyx_PyErr_Occurred()  (__pyx_tstate->current_exception != NULL)
    2098             : #define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL)
    2099             : #else
    2100             : #define __Pyx_PyErr_Occurred()  (__pyx_tstate->curexc_type != NULL)
    2101             : #define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->curexc_type)
    2102             : #endif
    2103             : #else
    2104             : #define __Pyx_PyThreadState_declare
    2105             : #define __Pyx_PyThreadState_assign
    2106             : #define __Pyx_PyErr_Occurred()  (PyErr_Occurred() != NULL)
    2107             : #define __Pyx_PyErr_CurrentExceptionType()  PyErr_Occurred()
    2108             : #endif
    2109             : 
    2110             : /* PyErrFetchRestore.proto */
    2111             : #if CYTHON_FAST_THREAD_STATE
    2112             : #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
    2113             : #define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
    2114             : #define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
    2115             : #define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
    2116             : #define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
    2117             : static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
    2118             : static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
    2119             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6
    2120             : #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
    2121             : #else
    2122             : #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
    2123             : #endif
    2124             : #else
    2125             : #define __Pyx_PyErr_Clear() PyErr_Clear()
    2126             : #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
    2127             : #define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
    2128             : #define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
    2129             : #define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)
    2130             : #define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)
    2131             : #define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
    2132             : #define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
    2133             : #endif
    2134             : 
    2135             : /* PyObjectGetAttrStr.proto */
    2136             : #if CYTHON_USE_TYPE_SLOTS
    2137             : static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
    2138             : #else
    2139             : #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
    2140             : #endif
    2141             : 
    2142             : /* PyObjectGetAttrStrNoError.proto */
    2143             : static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);
    2144             : 
    2145             : /* GetBuiltinName.proto */
    2146             : static PyObject *__Pyx_GetBuiltinName(PyObject *name);
    2147             : 
    2148             : /* TupleAndListFromArray.proto */
    2149             : #if CYTHON_COMPILING_IN_CPYTHON
    2150             : static CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n);
    2151             : static CYTHON_INLINE PyObject* __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n);
    2152             : #endif
    2153             : 
    2154             : /* IncludeStringH.proto */
    2155             : #include <string.h>
    2156             : 
    2157             : /* BytesEquals.proto */
    2158             : static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);
    2159             : 
    2160             : /* UnicodeEquals.proto */
    2161             : static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);
    2162             : 
    2163             : /* fastcall.proto */
    2164             : #if CYTHON_AVOID_BORROWED_REFS
    2165             :     #define __Pyx_Arg_VARARGS(args, i) PySequence_GetItem(args, i)
    2166             : #elif CYTHON_ASSUME_SAFE_MACROS
    2167             :     #define __Pyx_Arg_VARARGS(args, i) PyTuple_GET_ITEM(args, i)
    2168             : #else
    2169             :     #define __Pyx_Arg_VARARGS(args, i) PyTuple_GetItem(args, i)
    2170             : #endif
    2171             : #if CYTHON_AVOID_BORROWED_REFS
    2172             :     #define __Pyx_Arg_NewRef_VARARGS(arg) __Pyx_NewRef(arg)
    2173             :     #define __Pyx_Arg_XDECREF_VARARGS(arg) Py_XDECREF(arg)
    2174             : #else
    2175             :     #define __Pyx_Arg_NewRef_VARARGS(arg) arg
    2176             :     #define __Pyx_Arg_XDECREF_VARARGS(arg)
    2177             : #endif
    2178             : #define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds)
    2179             : #define __Pyx_KwValues_VARARGS(args, nargs) NULL
    2180             : #define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s)
    2181             : #define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw)
    2182             : #if CYTHON_METH_FASTCALL
    2183             :     #define __Pyx_Arg_FASTCALL(args, i) args[i]
    2184             :     #define __Pyx_NumKwargs_FASTCALL(kwds) PyTuple_GET_SIZE(kwds)
    2185             :     #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs))
    2186             :     static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s);
    2187             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
    2188             :     CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues);
    2189             :   #else
    2190             :     #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw)
    2191             :   #endif
    2192             :     #define __Pyx_Arg_NewRef_FASTCALL(arg) arg  /* no-op, __Pyx_Arg_FASTCALL is direct and this needs
    2193             :                                                    to have the same reference counting */
    2194             :     #define __Pyx_Arg_XDECREF_FASTCALL(arg)
    2195             : #else
    2196             :     #define __Pyx_Arg_FASTCALL __Pyx_Arg_VARARGS
    2197             :     #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS
    2198             :     #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS
    2199             :     #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS
    2200             :     #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS
    2201             :     #define __Pyx_Arg_NewRef_FASTCALL(arg) __Pyx_Arg_NewRef_VARARGS(arg)
    2202             :     #define __Pyx_Arg_XDECREF_FASTCALL(arg) __Pyx_Arg_XDECREF_VARARGS(arg)
    2203             : #endif
    2204             : #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    2205             : #define __Pyx_ArgsSlice_VARARGS(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_VARARGS(args, start), stop - start)
    2206             : #define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_FASTCALL(args, start), stop - start)
    2207             : #else
    2208             : #define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop)
    2209             : #define __Pyx_ArgsSlice_FASTCALL(args, start, stop) PyTuple_GetSlice(args, start, stop)
    2210             : #endif
    2211             : 
    2212             : /* RaiseArgTupleInvalid.proto */
    2213             : static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
    2214             :     Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
    2215             : 
    2216             : /* RaiseDoubleKeywords.proto */
    2217             : static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);
    2218             : 
    2219             : /* ParseKeywords.proto */
    2220             : static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject *const *kwvalues,
    2221             :     PyObject **argnames[],
    2222             :     PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,
    2223             :     const char* function_name);
    2224             : 
    2225             : /* ArgTypeTest.proto */
    2226             : #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
    2227             :     ((likely(__Pyx_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None)))) ? 1 :\
    2228             :         __Pyx__ArgTypeTest(obj, type, name, exact))
    2229             : static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);
    2230             : 
    2231             : /* RaiseException.proto */
    2232             : static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);
    2233             : 
    2234             : /* PyFunctionFastCall.proto */
    2235             : #if CYTHON_FAST_PYCALL
    2236             : #if !CYTHON_VECTORCALL
    2237             : #define __Pyx_PyFunction_FastCall(func, args, nargs)\
    2238             :     __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
    2239             : static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
    2240             : #endif
    2241             : #define __Pyx_BUILD_ASSERT_EXPR(cond)\
    2242             :     (sizeof(char [1 - 2*!(cond)]) - 1)
    2243             : #ifndef Py_MEMBER_SIZE
    2244             : #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
    2245             : #endif
    2246             : #if !CYTHON_VECTORCALL
    2247             : #if PY_VERSION_HEX >= 0x03080000
    2248             :   #include "frameobject.h"
    2249             : #if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API
    2250             :   #ifndef Py_BUILD_CORE
    2251             :     #define Py_BUILD_CORE 1
    2252             :   #endif
    2253             :   #include "internal/pycore_frame.h"
    2254             : #endif
    2255             :   #define __Pxy_PyFrame_Initialize_Offsets()
    2256             :   #define __Pyx_PyFrame_GetLocalsplus(frame)  ((frame)->f_localsplus)
    2257             : #else
    2258             :   static size_t __pyx_pyframe_localsplus_offset = 0;
    2259             :   #include "frameobject.h"
    2260             :   #define __Pxy_PyFrame_Initialize_Offsets()\
    2261             :     ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
    2262             :      (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
    2263             :   #define __Pyx_PyFrame_GetLocalsplus(frame)\
    2264             :     (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
    2265             : #endif
    2266             : #endif
    2267             : #endif
    2268             : 
    2269             : /* PyObjectCall.proto */
    2270             : #if CYTHON_COMPILING_IN_CPYTHON
    2271             : static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
    2272             : #else
    2273             : #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
    2274             : #endif
    2275             : 
    2276             : /* PyObjectCallMethO.proto */
    2277             : #if CYTHON_COMPILING_IN_CPYTHON
    2278             : static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
    2279             : #endif
    2280             : 
    2281             : /* PyObjectFastCall.proto */
    2282             : #define __Pyx_PyObject_FastCall(func, args, nargs)  __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL)
    2283             : static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs);
    2284             : 
    2285             : /* RaiseUnexpectedTypeError.proto */
    2286             : static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj);
    2287             : 
    2288             : /* GCCDiagnostics.proto */
    2289             : #if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
    2290             : #define __Pyx_HAS_GCC_DIAGNOSTIC
    2291             : #endif
    2292             : 
    2293             : /* BuildPyUnicode.proto */
    2294             : static PyObject* __Pyx_PyUnicode_BuildFromAscii(Py_ssize_t ulength, char* chars, int clength,
    2295             :                                                 int prepend_sign, char padding_char);
    2296             : 
    2297             : /* CIntToPyUnicode.proto */
    2298             : static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char, char format_char);
    2299             : 
    2300             : /* CIntToPyUnicode.proto */
    2301             : static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char, char format_char);
    2302             : 
    2303             : /* JoinPyUnicode.proto */
    2304             : static PyObject* __Pyx_PyUnicode_Join(PyObject* value_tuple, Py_ssize_t value_count, Py_ssize_t result_ulength,
    2305             :                                       Py_UCS4 max_char);
    2306             : 
    2307             : /* StrEquals.proto */
    2308             : #if PY_MAJOR_VERSION >= 3
    2309             : #define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals
    2310             : #else
    2311             : #define __Pyx_PyString_Equals __Pyx_PyBytes_Equals
    2312             : #endif
    2313             : 
    2314             : /* PyObjectFormatSimple.proto */
    2315             : #if CYTHON_COMPILING_IN_PYPY
    2316             :     #define __Pyx_PyObject_FormatSimple(s, f) (\
    2317             :         likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
    2318             :         PyObject_Format(s, f))
    2319             : #elif PY_MAJOR_VERSION < 3
    2320             :     #define __Pyx_PyObject_FormatSimple(s, f) (\
    2321             :         likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
    2322             :         likely(PyString_CheckExact(s)) ? PyUnicode_FromEncodedObject(s, NULL, "strict") :\
    2323             :         PyObject_Format(s, f))
    2324             : #elif CYTHON_USE_TYPE_SLOTS
    2325             :     #define __Pyx_PyObject_FormatSimple(s, f) (\
    2326             :         likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
    2327             :         likely(PyLong_CheckExact(s)) ? PyLong_Type.tp_repr(s) :\
    2328             :         likely(PyFloat_CheckExact(s)) ? PyFloat_Type.tp_repr(s) :\
    2329             :         PyObject_Format(s, f))
    2330             : #else
    2331             :     #define __Pyx_PyObject_FormatSimple(s, f) (\
    2332             :         likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
    2333             :         PyObject_Format(s, f))
    2334             : #endif
    2335             : 
    2336             : CYTHON_UNUSED static int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
    2337             : static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *); /*proto*/
    2338             : /* GetAttr.proto */
    2339             : static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *);
    2340             : 
    2341             : /* GetItemInt.proto */
    2342             : #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    2343             :     (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    2344             :     __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
    2345             :     (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
    2346             :                __Pyx_GetItemInt_Generic(o, to_py_func(i))))
    2347             : #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    2348             :     (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    2349             :     __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    2350             :     (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
    2351             : static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
    2352             :                                                               int wraparound, int boundscheck);
    2353             : #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    2354             :     (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    2355             :     __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    2356             :     (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
    2357             : static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
    2358             :                                                               int wraparound, int boundscheck);
    2359             : static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
    2360             : static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
    2361             :                                                      int is_list, int wraparound, int boundscheck);
    2362             : 
    2363             : /* PyObjectCallOneArg.proto */
    2364             : static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);
    2365             : 
    2366             : /* ObjectGetItem.proto */
    2367             : #if CYTHON_USE_TYPE_SLOTS
    2368             : static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key);
    2369             : #else
    2370             : #define __Pyx_PyObject_GetItem(obj, key)  PyObject_GetItem(obj, key)
    2371             : #endif
    2372             : 
    2373             : /* KeywordStringCheck.proto */
    2374             : static int __Pyx_CheckKeywordStrings(PyObject *kw, const char* function_name, int kw_allowed);
    2375             : 
    2376             : /* DivInt[Py_ssize_t].proto */
    2377             : static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t, Py_ssize_t);
    2378             : 
    2379             : /* UnaryNegOverflows.proto */
    2380             : #define __Pyx_UNARY_NEG_WOULD_OVERFLOW(x)\
    2381             :         (((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x)))
    2382             : 
    2383             : /* GetAttr3.proto */
    2384             : static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);
    2385             : 
    2386             : /* PyDictVersioning.proto */
    2387             : #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
    2388             : #define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)
    2389             : #define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
    2390             : #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
    2391             :     (version_var) = __PYX_GET_DICT_VERSION(dict);\
    2392             :     (cache_var) = (value);
    2393             : #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
    2394             :     static PY_UINT64_T __pyx_dict_version = 0;\
    2395             :     static PyObject *__pyx_dict_cached_value = NULL;\
    2396             :     if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
    2397             :         (VAR) = __pyx_dict_cached_value;\
    2398             :     } else {\
    2399             :         (VAR) = __pyx_dict_cached_value = (LOOKUP);\
    2400             :         __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
    2401             :     }\
    2402             : }
    2403             : static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
    2404             : static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
    2405             : static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
    2406             : #else
    2407             : #define __PYX_GET_DICT_VERSION(dict)  (0)
    2408             : #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
    2409             : #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);
    2410             : #endif
    2411             : 
    2412             : /* GetModuleGlobalName.proto */
    2413             : #if CYTHON_USE_DICT_VERSIONS
    2414             : #define __Pyx_GetModuleGlobalName(var, name)  do {\
    2415             :     static PY_UINT64_T __pyx_dict_version = 0;\
    2416             :     static PyObject *__pyx_dict_cached_value = NULL;\
    2417             :     (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
    2418             :         (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
    2419             :         __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
    2420             : } while(0)
    2421             : #define __Pyx_GetModuleGlobalNameUncached(var, name)  do {\
    2422             :     PY_UINT64_T __pyx_dict_version;\
    2423             :     PyObject *__pyx_dict_cached_value;\
    2424             :     (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
    2425             : } while(0)
    2426             : static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
    2427             : #else
    2428             : #define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
    2429             : #define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
    2430             : static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
    2431             : #endif
    2432             : 
    2433             : /* AssertionsEnabled.proto */
    2434             : #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
    2435             :   #define __Pyx_init_assertions_enabled()  (0)
    2436             :   #define __pyx_assertions_enabled()  (1)
    2437             : #elif CYTHON_COMPILING_IN_LIMITED_API  ||  (CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030C0000)
    2438             :   static int __pyx_assertions_enabled_flag;
    2439             :   #define __pyx_assertions_enabled() (__pyx_assertions_enabled_flag)
    2440           3 :   static int __Pyx_init_assertions_enabled(void) {
    2441           3 :     PyObject *builtins, *debug, *debug_str;
    2442           3 :     int flag;
    2443           3 :     builtins = PyEval_GetBuiltins();
    2444           3 :     if (!builtins) goto bad;
    2445           3 :     debug_str = PyUnicode_FromStringAndSize("__debug__", 9);
    2446           3 :     if (!debug_str) goto bad;
    2447           3 :     debug = PyObject_GetItem(builtins, debug_str);
    2448           3 :     Py_DECREF(debug_str);
    2449           3 :     if (!debug) goto bad;
    2450           3 :     flag = PyObject_IsTrue(debug);
    2451           3 :     Py_DECREF(debug);
    2452           3 :     if (flag == -1) goto bad;
    2453           3 :     __pyx_assertions_enabled_flag = flag;
    2454           3 :     return 0;
    2455           0 :   bad:
    2456           0 :     __pyx_assertions_enabled_flag = 1;
    2457           0 :     return -1;
    2458             :   }
    2459             : #else
    2460             :   #define __Pyx_init_assertions_enabled()  (0)
    2461             :   #define __pyx_assertions_enabled()  (!Py_OptimizeFlag)
    2462             : #endif
    2463             : 
    2464             : /* RaiseTooManyValuesToUnpack.proto */
    2465             : static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
    2466             : 
    2467             : /* RaiseNeedMoreValuesToUnpack.proto */
    2468             : static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
    2469             : 
    2470             : /* RaiseNoneIterError.proto */
    2471             : static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);
    2472             : 
    2473             : /* ExtTypeTest.proto */
    2474             : static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);
    2475             : 
    2476             : /* GetTopmostException.proto */
    2477             : #if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
    2478             : static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
    2479             : #endif
    2480             : 
    2481             : /* SaveResetException.proto */
    2482             : #if CYTHON_FAST_THREAD_STATE
    2483             : #define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
    2484             : static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
    2485             : #define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
    2486             : static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
    2487             : #else
    2488             : #define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
    2489             : #define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
    2490             : #endif
    2491             : 
    2492             : /* GetException.proto */
    2493             : #if CYTHON_FAST_THREAD_STATE
    2494             : #define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)
    2495             : static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
    2496             : #else
    2497             : static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
    2498             : #endif
    2499             : 
    2500             : /* SwapException.proto */
    2501             : #if CYTHON_FAST_THREAD_STATE
    2502             : #define __Pyx_ExceptionSwap(type, value, tb)  __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb)
    2503             : static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
    2504             : #else
    2505             : static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
    2506             : #endif
    2507             : 
    2508             : /* Import.proto */
    2509             : static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);
    2510             : 
    2511             : /* ImportDottedModule.proto */
    2512             : static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple);
    2513             : #if PY_MAJOR_VERSION >= 3
    2514             : static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *name, PyObject *parts_tuple);
    2515             : #endif
    2516             : 
    2517             : /* FastTypeChecks.proto */
    2518             : #if CYTHON_COMPILING_IN_CPYTHON
    2519             : #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
    2520             : #define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2)
    2521             : static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
    2522             : static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b);
    2523             : static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
    2524             : static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
    2525             : #else
    2526             : #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
    2527             : #define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2))
    2528             : #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
    2529             : #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
    2530             : #endif
    2531             : #define __Pyx_PyErr_ExceptionMatches2(err1, err2)  __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2)
    2532             : #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
    2533             : 
    2534             : CYTHON_UNUSED static int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
    2535             : /* ListCompAppend.proto */
    2536             : #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
    2537           0 : static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
    2538           0 :     PyListObject* L = (PyListObject*) list;
    2539           0 :     Py_ssize_t len = Py_SIZE(list);
    2540           0 :     if (likely(L->allocated > len)) {
    2541           0 :         Py_INCREF(x);
    2542             :         #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
    2543             :         L->ob_item[len] = x;
    2544             :         #else
    2545           0 :         PyList_SET_ITEM(list, len, x);
    2546             :         #endif
    2547           0 :         __Pyx_SET_SIZE(list, len + 1);
    2548           0 :         return 0;
    2549             :     }
    2550           0 :     return PyList_Append(list, x);
    2551             : }
    2552             : #else
    2553             : #define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
    2554             : #endif
    2555             : 
    2556             : /* PySequenceMultiply.proto */
    2557             : #define __Pyx_PySequence_Multiply_Left(mul, seq)  __Pyx_PySequence_Multiply(seq, mul)
    2558             : static CYTHON_INLINE PyObject* __Pyx_PySequence_Multiply(PyObject *seq, Py_ssize_t mul);
    2559             : 
    2560             : /* SetItemInt.proto */
    2561             : #define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    2562             :     (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    2563             :     __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\
    2564             :     (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\
    2565             :                __Pyx_SetItemInt_Generic(o, to_py_func(i), v)))
    2566             : static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v);
    2567             : static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v,
    2568             :                                                int is_list, int wraparound, int boundscheck);
    2569             : 
    2570             : /* RaiseUnboundLocalError.proto */
    2571             : static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);
    2572             : 
    2573             : /* DivInt[long].proto */
    2574             : static CYTHON_INLINE long __Pyx_div_long(long, long);
    2575             : 
    2576             : /* PySequenceContains.proto */
    2577         525 : static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
    2578        1050 :     int result = PySequence_Contains(seq, item);
    2579         525 :     return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
    2580             : }
    2581             : 
    2582             : /* ImportFrom.proto */
    2583             : static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);
    2584             : 
    2585             : /* HasAttr.proto */
    2586             : static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);
    2587             : 
    2588             : /* PyObjectFormatAndDecref.proto */
    2589             : static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f);
    2590             : static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f);
    2591             : 
    2592             : /* BufferIndexError.proto */
    2593             : static void __Pyx_RaiseBufferIndexError(int axis);
    2594             : 
    2595             : /* PyIntCompare.proto */
    2596             : static CYTHON_INLINE int __Pyx_PyInt_BoolEqObjC(PyObject *op1, PyObject *op2, long intval, long inplace);
    2597             : 
    2598             : /* DelItemInt.proto */
    2599             : #define __Pyx_DelItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    2600             :     (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    2601             :     __Pyx_DelItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound) :\
    2602             :     (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\
    2603             :                __Pyx_DelItem_Generic(o, to_py_func(i))))
    2604             : static int __Pyx_DelItem_Generic(PyObject *o, PyObject *j);
    2605             : static CYTHON_INLINE int __Pyx_DelItemInt_Fast(PyObject *o, Py_ssize_t i,
    2606             :                                                int is_list, int wraparound);
    2607             : 
    2608             : /* ListAppend.proto */
    2609             : #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
    2610      257827 : static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
    2611      257827 :     PyListObject* L = (PyListObject*) list;
    2612      257827 :     Py_ssize_t len = Py_SIZE(list);
    2613      257827 :     if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
    2614       16234 :         Py_INCREF(x);
    2615             :         #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
    2616             :         L->ob_item[len] = x;
    2617             :         #else
    2618       16234 :         PyList_SET_ITEM(list, len, x);
    2619             :         #endif
    2620       16234 :         __Pyx_SET_SIZE(list, len + 1);
    2621       16234 :         return 0;
    2622             :     }
    2623      241593 :     return PyList_Append(list, x);
    2624             : }
    2625             : #else
    2626             : #define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
    2627             : #endif
    2628             : 
    2629             : /* DictGetItem.proto */
    2630             : #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
    2631             : static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
    2632             : #define __Pyx_PyObject_Dict_GetItem(obj, name)\
    2633             :     (likely(PyDict_CheckExact(obj)) ?\
    2634             :      __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
    2635             : #else
    2636             : #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
    2637             : #define __Pyx_PyObject_Dict_GetItem(obj, name)  PyObject_GetItem(obj, name)
    2638             : #endif
    2639             : 
    2640             : /* IsLittleEndian.proto */
    2641             : static CYTHON_INLINE int __Pyx_Is_Little_Endian(void);
    2642             : 
    2643             : /* BufferFormatCheck.proto */
    2644             : static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts);
    2645             : static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
    2646             :                               __Pyx_BufFmt_StackElem* stack,
    2647             :                               __Pyx_TypeInfo* type);
    2648             : 
    2649             : /* BufferGetAndValidate.proto */
    2650             : #define __Pyx_GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack)\
    2651             :     ((obj == Py_None || obj == NULL) ?\
    2652             :     (__Pyx_ZeroBuffer(buf), 0) :\
    2653             :     __Pyx__GetBufferAndValidate(buf, obj, dtype, flags, nd, cast, stack))
    2654             : static int  __Pyx__GetBufferAndValidate(Py_buffer* buf, PyObject* obj,
    2655             :     __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack);
    2656             : static void __Pyx_ZeroBuffer(Py_buffer* buf);
    2657             : static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info);
    2658             : static Py_ssize_t __Pyx_minusones[] = { -1, -1, -1, -1, -1, -1, -1, -1 };
    2659             : static Py_ssize_t __Pyx_zeros[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
    2660             : 
    2661             : #define __Pyx_BufPtrStrided1d(type, buf, i0, s0) (type)((char*)buf + i0 * s0)
    2662             : /* PyDictContains.proto */
    2663           0 : static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) {
    2664           0 :     int result = PyDict_Contains(dict, item);
    2665           0 :     return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
    2666             : }
    2667             : 
    2668             : /* UnicodeAsUCS4.proto */
    2669             : static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject*);
    2670             : 
    2671             : /* object_ord.proto */
    2672             : #if PY_MAJOR_VERSION >= 3
    2673             : #define __Pyx_PyObject_Ord(c)\
    2674             :     (likely(PyUnicode_Check(c)) ? (long)__Pyx_PyUnicode_AsPy_UCS4(c) : __Pyx__PyObject_Ord(c))
    2675             : #else
    2676             : #define __Pyx_PyObject_Ord(c) __Pyx__PyObject_Ord(c)
    2677             : #endif
    2678             : static long __Pyx__PyObject_Ord(PyObject* c);
    2679             : 
    2680             : /* memoryview_get_from_buffer.proto */
    2681             : #if !CYTHON_COMPILING_IN_LIMITED_API || CYTHON_LIMITED_API >= 0x030b0000
    2682             : #define __Pyx_PyMemoryView_Get_itemsize(o) PyMemoryView_GET_BUFFER(o)->itemsize
    2683             : #else
    2684             :  // can't get format like this unfortunately. It's unicode via getattr
    2685             : static Py_ssize_t __Pyx_PyMemoryView_Get_itemsize(PyObject *obj);
    2686             : #endif
    2687             : 
    2688             : /* memoryview_get_from_buffer.proto */
    2689             : #if !CYTHON_COMPILING_IN_LIMITED_API || CYTHON_LIMITED_API >= 0x030b0000
    2690             : #define __Pyx_PyMemoryView_Get_ndim(o) PyMemoryView_GET_BUFFER(o)->ndim
    2691             : #else
    2692             :  // can't get format like this unfortunately. It's unicode via getattr
    2693             : static int __Pyx_PyMemoryView_Get_ndim(PyObject *obj);
    2694             : #endif
    2695             : 
    2696             : /* IterFinish.proto */
    2697             : static CYTHON_INLINE int __Pyx_IterFinish(void);
    2698             : 
    2699             : /* PyObjectCallNoArg.proto */
    2700             : static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
    2701             : 
    2702             : /* PyObjectGetMethod.proto */
    2703             : static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);
    2704             : 
    2705             : /* PyObjectCallMethod0.proto */
    2706             : static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);
    2707             : 
    2708             : /* UnpackItemEndCheck.proto */
    2709             : static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);
    2710             : 
    2711             : /* UnpackTupleError.proto */
    2712             : static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index);
    2713             : 
    2714             : /* UnpackTuple2.proto */
    2715             : #define __Pyx_unpack_tuple2(tuple, value1, value2, is_tuple, has_known_size, decref_tuple)\
    2716             :     (likely(is_tuple || PyTuple_Check(tuple)) ?\
    2717             :         (likely(has_known_size || PyTuple_GET_SIZE(tuple) == 2) ?\
    2718             :             __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple) :\
    2719             :             (__Pyx_UnpackTupleError(tuple, 2), -1)) :\
    2720             :         __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple))
    2721             : static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
    2722             :     PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple);
    2723             : static int __Pyx_unpack_tuple2_generic(
    2724             :     PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple);
    2725             : 
    2726             : /* dict_iter.proto */
    2727             : static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name,
    2728             :                                                    Py_ssize_t* p_orig_length, int* p_is_dict);
    2729             : static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos,
    2730             :                                               PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict);
    2731             : 
    2732             : /* ListExtend.proto */
    2733           0 : static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) {
    2734             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
    2735           0 :     PyObject* none = _PyList_Extend((PyListObject*)L, v);
    2736           0 :     if (unlikely(!none))
    2737             :         return -1;
    2738           0 :     Py_DECREF(none);
    2739             :     return 0;
    2740             : #else
    2741             :     return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v);
    2742             : #endif
    2743             : }
    2744             : 
    2745             : /* py_dict_values.proto */
    2746             : static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d);
    2747             : 
    2748             : /* UnpackUnboundCMethod.proto */
    2749             : typedef struct {
    2750             :     PyObject *type;
    2751             :     PyObject **method_name;
    2752             :     PyCFunction func;
    2753             :     PyObject *method;
    2754             :     int flag;
    2755             : } __Pyx_CachedCFunction;
    2756             : 
    2757             : /* CallUnboundCMethod0.proto */
    2758             : static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
    2759             : #if CYTHON_COMPILING_IN_CPYTHON
    2760             : #define __Pyx_CallUnboundCMethod0(cfunc, self)\
    2761             :     (likely((cfunc)->func) ?\
    2762             :         (likely((cfunc)->flag == METH_NOARGS) ?  (*((cfunc)->func))(self, NULL) :\
    2763             :          (PY_VERSION_HEX >= 0x030600B1 && likely((cfunc)->flag == METH_FASTCALL) ?\
    2764             :             (PY_VERSION_HEX >= 0x030700A0 ?\
    2765             :                 (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0) :\
    2766             :                 (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL)) :\
    2767             :           (PY_VERSION_HEX >= 0x030700A0 && (cfunc)->flag == (METH_FASTCALL | METH_KEYWORDS) ?\
    2768             :             (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL) :\
    2769             :             (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ?  ((*(PyCFunctionWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\
    2770             :                ((cfunc)->flag == METH_VARARGS ?  (*((cfunc)->func))(self, __pyx_empty_tuple) :\
    2771             :                __Pyx__CallUnboundCMethod0(cfunc, self)))))) :\
    2772             :         __Pyx__CallUnboundCMethod0(cfunc, self))
    2773             : #else
    2774             : #define __Pyx_CallUnboundCMethod0(cfunc, self)  __Pyx__CallUnboundCMethod0(cfunc, self)
    2775             : #endif
    2776             : 
    2777             : /* dict_getitem_default.proto */
    2778             : static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value);
    2779             : 
    2780             : /* CallUnboundCMethod1.proto */
    2781             : static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg);
    2782             : #if CYTHON_COMPILING_IN_CPYTHON
    2783             : static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg);
    2784             : #else
    2785             : #define __Pyx_CallUnboundCMethod1(cfunc, self, arg)  __Pyx__CallUnboundCMethod1(cfunc, self, arg)
    2786             : #endif
    2787             : 
    2788             : /* CallUnboundCMethod2.proto */
    2789             : static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2);
    2790             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030600B1
    2791             : static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2);
    2792             : #else
    2793             : #define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2)  __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2)
    2794             : #endif
    2795             : 
    2796             : /* ModInt[npy_intp].proto */
    2797             : static CYTHON_INLINE npy_intp __Pyx_mod_npy_intp(npy_intp, npy_intp);
    2798             : 
    2799             : /* DivInt[npy_intp].proto */
    2800             : static CYTHON_INLINE npy_intp __Pyx_div_npy_intp(npy_intp, npy_intp);
    2801             : 
    2802             : /* PyUnicodeContains.proto */
    2803         609 : static CYTHON_INLINE int __Pyx_PyUnicode_ContainsTF(PyObject* substring, PyObject* text, int eq) {
    2804        1218 :     int result = PyUnicode_Contains(text, substring);
    2805         609 :     return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
    2806             : }
    2807             : 
    2808             : /* PyObject_GenericGetAttrNoDict.proto */
    2809             : #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
    2810             : static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name);
    2811             : #else
    2812             : #define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr
    2813             : #endif
    2814             : 
    2815             : /* PyObject_GenericGetAttr.proto */
    2816             : #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
    2817             : static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name);
    2818             : #else
    2819             : #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr
    2820             : #endif
    2821             : 
    2822             : /* IncludeStructmemberH.proto */
    2823             : #include <structmember.h>
    2824             : 
    2825             : /* FixUpExtensionType.proto */
    2826             : #if CYTHON_USE_TYPE_SPECS
    2827             : static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type);
    2828             : #endif
    2829             : 
    2830             : /* ValidateBasesTuple.proto */
    2831             : #if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
    2832             : static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases);
    2833             : #endif
    2834             : 
    2835             : /* PyType_Ready.proto */
    2836             : CYTHON_UNUSED static int __Pyx_PyType_Ready(PyTypeObject *t);
    2837             : 
    2838             : /* SetVTable.proto */
    2839             : static int __Pyx_SetVtable(PyTypeObject* typeptr , void* vtable);
    2840             : 
    2841             : /* GetVTable.proto */
    2842             : static void* __Pyx_GetVtable(PyTypeObject *type);
    2843             : 
    2844             : /* MergeVTables.proto */
    2845             : #if !CYTHON_COMPILING_IN_LIMITED_API
    2846             : static int __Pyx_MergeVtables(PyTypeObject *type);
    2847             : #endif
    2848             : 
    2849             : /* SetupReduce.proto */
    2850             : #if !CYTHON_COMPILING_IN_LIMITED_API
    2851             : static int __Pyx_setup_reduce(PyObject* type_obj);
    2852             : #endif
    2853             : 
    2854             : /* TypeImport.proto */
    2855             : #ifndef __PYX_HAVE_RT_ImportType_proto_3_0_11
    2856             : #define __PYX_HAVE_RT_ImportType_proto_3_0_11
    2857             : #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
    2858             : #include <stdalign.h>
    2859             : #endif
    2860             : #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L
    2861             : #define __PYX_GET_STRUCT_ALIGNMENT_3_0_11(s) alignof(s)
    2862             : #else
    2863             : #define __PYX_GET_STRUCT_ALIGNMENT_3_0_11(s) sizeof(void*)
    2864             : #endif
    2865             : enum __Pyx_ImportType_CheckSize_3_0_11 {
    2866             :    __Pyx_ImportType_CheckSize_Error_3_0_11 = 0,
    2867             :    __Pyx_ImportType_CheckSize_Warn_3_0_11 = 1,
    2868             :    __Pyx_ImportType_CheckSize_Ignore_3_0_11 = 2
    2869             : };
    2870             : static PyTypeObject *__Pyx_ImportType_3_0_11(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_0_11 check_size);
    2871             : #endif
    2872             : 
    2873             : /* FetchSharedCythonModule.proto */
    2874             : static PyObject *__Pyx_FetchSharedCythonABIModule(void);
    2875             : 
    2876             : /* FetchCommonType.proto */
    2877             : #if !CYTHON_USE_TYPE_SPECS
    2878             : static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);
    2879             : #else
    2880             : static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases);
    2881             : #endif
    2882             : 
    2883             : /* PyMethodNew.proto */
    2884             : #if CYTHON_COMPILING_IN_LIMITED_API
    2885             : static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
    2886             :     PyObject *typesModule=NULL, *methodType=NULL, *result=NULL;
    2887             :     CYTHON_UNUSED_VAR(typ);
    2888             :     if (!self)
    2889             :         return __Pyx_NewRef(func);
    2890             :     typesModule = PyImport_ImportModule("types");
    2891             :     if (!typesModule) return NULL;
    2892             :     methodType = PyObject_GetAttrString(typesModule, "MethodType");
    2893             :     Py_DECREF(typesModule);
    2894             :     if (!methodType) return NULL;
    2895             :     result = PyObject_CallFunctionObjArgs(methodType, func, self, NULL);
    2896             :     Py_DECREF(methodType);
    2897             :     return result;
    2898             : }
    2899             : #elif PY_MAJOR_VERSION >= 3
    2900           0 : static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
    2901           0 :     CYTHON_UNUSED_VAR(typ);
    2902           0 :     if (!self)
    2903           0 :         return __Pyx_NewRef(func);
    2904           0 :     return PyMethod_New(func, self);
    2905             : }
    2906             : #else
    2907             :     #define __Pyx_PyMethod_New PyMethod_New
    2908             : #endif
    2909             : 
    2910             : /* PyVectorcallFastCallDict.proto */
    2911             : #if CYTHON_METH_FASTCALL
    2912             : static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw);
    2913             : #endif
    2914             : 
    2915             : /* CythonFunctionShared.proto */
    2916             : #define __Pyx_CyFunction_USED
    2917             : #define __Pyx_CYFUNCTION_STATICMETHOD  0x01
    2918             : #define __Pyx_CYFUNCTION_CLASSMETHOD   0x02
    2919             : #define __Pyx_CYFUNCTION_CCLASS        0x04
    2920             : #define __Pyx_CYFUNCTION_COROUTINE     0x08
    2921             : #define __Pyx_CyFunction_GetClosure(f)\
    2922             :     (((__pyx_CyFunctionObject *) (f))->func_closure)
    2923             : #if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    2924             :   #define __Pyx_CyFunction_GetClassObj(f)\
    2925             :       (((__pyx_CyFunctionObject *) (f))->func_classobj)
    2926             : #else
    2927             :   #define __Pyx_CyFunction_GetClassObj(f)\
    2928             :       ((PyObject*) ((PyCMethodObject *) (f))->mm_class)
    2929             : #endif
    2930             : #define __Pyx_CyFunction_SetClassObj(f, classobj)\
    2931             :     __Pyx__CyFunction_SetClassObj((__pyx_CyFunctionObject *) (f), (classobj))
    2932             : #define __Pyx_CyFunction_Defaults(type, f)\
    2933             :     ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
    2934             : #define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
    2935             :     ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
    2936             : typedef struct {
    2937             : #if CYTHON_COMPILING_IN_LIMITED_API
    2938             :     PyObject_HEAD
    2939             :     PyObject *func;
    2940             : #elif PY_VERSION_HEX < 0x030900B1
    2941             :     PyCFunctionObject func;
    2942             : #else
    2943             :     PyCMethodObject func;
    2944             : #endif
    2945             : #if CYTHON_BACKPORT_VECTORCALL
    2946             :     __pyx_vectorcallfunc func_vectorcall;
    2947             : #endif
    2948             : #if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
    2949             :     PyObject *func_weakreflist;
    2950             : #endif
    2951             :     PyObject *func_dict;
    2952             :     PyObject *func_name;
    2953             :     PyObject *func_qualname;
    2954             :     PyObject *func_doc;
    2955             :     PyObject *func_globals;
    2956             :     PyObject *func_code;
    2957             :     PyObject *func_closure;
    2958             : #if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    2959             :     PyObject *func_classobj;
    2960             : #endif
    2961             :     void *defaults;
    2962             :     int defaults_pyobjects;
    2963             :     size_t defaults_size;
    2964             :     int flags;
    2965             :     PyObject *defaults_tuple;
    2966             :     PyObject *defaults_kwdict;
    2967             :     PyObject *(*defaults_getter)(PyObject *);
    2968             :     PyObject *func_annotations;
    2969             :     PyObject *func_is_coroutine;
    2970             : } __pyx_CyFunctionObject;
    2971             : #undef __Pyx_CyOrPyCFunction_Check
    2972             : #define __Pyx_CyFunction_Check(obj)  __Pyx_TypeCheck(obj, __pyx_CyFunctionType)
    2973             : #define __Pyx_CyOrPyCFunction_Check(obj)  __Pyx_TypeCheck2(obj, __pyx_CyFunctionType, &PyCFunction_Type)
    2974             : #define __Pyx_CyFunction_CheckExact(obj)  __Pyx_IS_TYPE(obj, __pyx_CyFunctionType)
    2975             : static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc);
    2976             : #undef __Pyx_IsSameCFunction
    2977             : #define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCyOrCFunction(func, cfunc)
    2978             : static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
    2979             :                                       int flags, PyObject* qualname,
    2980             :                                       PyObject *closure,
    2981             :                                       PyObject *module, PyObject *globals,
    2982             :                                       PyObject* code);
    2983             : static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj);
    2984             : static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m,
    2985             :                                                          size_t size,
    2986             :                                                          int pyobjects);
    2987             : static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
    2988             :                                                             PyObject *tuple);
    2989             : static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
    2990             :                                                              PyObject *dict);
    2991             : static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
    2992             :                                                               PyObject *dict);
    2993             : static int __pyx_CyFunction_init(PyObject *module);
    2994             : #if CYTHON_METH_FASTCALL
    2995             : static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
    2996             : static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
    2997             : static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
    2998             : static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
    2999             : #if CYTHON_BACKPORT_VECTORCALL
    3000             : #define __Pyx_CyFunction_func_vectorcall(f) (((__pyx_CyFunctionObject*)f)->func_vectorcall)
    3001             : #else
    3002             : #define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall)
    3003             : #endif
    3004             : #endif
    3005             : 
    3006             : /* CythonFunction.proto */
    3007             : static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
    3008             :                                       int flags, PyObject* qualname,
    3009             :                                       PyObject *closure,
    3010             :                                       PyObject *module, PyObject *globals,
    3011             :                                       PyObject* code);
    3012             : 
    3013             : /* FusedFunction.proto */
    3014             : typedef struct {
    3015             :     __pyx_CyFunctionObject func;
    3016             :     PyObject *__signatures__;
    3017             :     PyObject *self;
    3018             : } __pyx_FusedFunctionObject;
    3019             : static PyObject *__pyx_FusedFunction_New(PyMethodDef *ml, int flags,
    3020             :                                          PyObject *qualname, PyObject *closure,
    3021             :                                          PyObject *module, PyObject *globals,
    3022             :                                          PyObject *code);
    3023             : static int __pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self);
    3024             : static int __pyx_FusedFunction_init(PyObject *module);
    3025             : #define __Pyx_FusedFunction_USED
    3026             : 
    3027             : /* CLineInTraceback.proto */
    3028             : #ifdef CYTHON_CLINE_IN_TRACEBACK
    3029             : #define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
    3030             : #else
    3031             : static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
    3032             : #endif
    3033             : 
    3034             : /* CodeObjectCache.proto */
    3035             : #if !CYTHON_COMPILING_IN_LIMITED_API
    3036             : typedef struct {
    3037             :     PyCodeObject* code_object;
    3038             :     int code_line;
    3039             : } __Pyx_CodeObjectCacheEntry;
    3040             : struct __Pyx_CodeObjectCache {
    3041             :     int count;
    3042             :     int max_count;
    3043             :     __Pyx_CodeObjectCacheEntry* entries;
    3044             : };
    3045             : static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
    3046             : static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
    3047             : static PyCodeObject *__pyx_find_code_object(int code_line);
    3048             : static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
    3049             : #endif
    3050             : 
    3051             : /* AddTraceback.proto */
    3052             : static void __Pyx_AddTraceback(const char *funcname, int c_line,
    3053             :                                int py_line, const char *filename);
    3054             : 
    3055             : #if PY_MAJOR_VERSION < 3
    3056             :     static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags);
    3057             :     static void __Pyx_ReleaseBuffer(Py_buffer *view);
    3058             : #else
    3059             :     #define __Pyx_GetBuffer PyObject_GetBuffer
    3060             :     #define __Pyx_ReleaseBuffer PyBuffer_Release
    3061             : #endif
    3062             : 
    3063             : 
    3064             : /* BufferStructDeclare.proto */
    3065             : typedef struct {
    3066             :   Py_ssize_t shape, strides, suboffsets;
    3067             : } __Pyx_Buf_DimInfo;
    3068             : typedef struct {
    3069             :   size_t refcount;
    3070             :   Py_buffer pybuffer;
    3071             : } __Pyx_Buffer;
    3072             : typedef struct {
    3073             :   __Pyx_Buffer *rcbuffer;
    3074             :   char *data;
    3075             :   __Pyx_Buf_DimInfo diminfo[8];
    3076             : } __Pyx_LocalBuf_ND;
    3077             : 
    3078             : /* MemviewSliceIsContig.proto */
    3079             : static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim);
    3080             : 
    3081             : /* OverlappingSlices.proto */
    3082             : static int __pyx_slices_overlap(__Pyx_memviewslice *slice1,
    3083             :                                 __Pyx_memviewslice *slice2,
    3084             :                                 int ndim, size_t itemsize);
    3085             : 
    3086             : /* RealImag.proto */
    3087             : #if CYTHON_CCOMPLEX
    3088             :   #ifdef __cplusplus
    3089             :     #define __Pyx_CREAL(z) ((z).real())
    3090             :     #define __Pyx_CIMAG(z) ((z).imag())
    3091             :   #else
    3092             :     #define __Pyx_CREAL(z) (__real__(z))
    3093             :     #define __Pyx_CIMAG(z) (__imag__(z))
    3094             :   #endif
    3095             : #else
    3096             :     #define __Pyx_CREAL(z) ((z).real)
    3097             :     #define __Pyx_CIMAG(z) ((z).imag)
    3098             : #endif
    3099             : #if defined(__cplusplus) && CYTHON_CCOMPLEX\
    3100             :         && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103)
    3101             :     #define __Pyx_SET_CREAL(z,x) ((z).real(x))
    3102             :     #define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
    3103             : #else
    3104             :     #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)
    3105             :     #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)
    3106             : #endif
    3107             : 
    3108             : /* Arithmetic.proto */
    3109             : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
    3110             :     #define __Pyx_c_eq_float(a, b)   ((a)==(b))
    3111             :     #define __Pyx_c_sum_float(a, b)  ((a)+(b))
    3112             :     #define __Pyx_c_diff_float(a, b) ((a)-(b))
    3113             :     #define __Pyx_c_prod_float(a, b) ((a)*(b))
    3114             :     #define __Pyx_c_quot_float(a, b) ((a)/(b))
    3115             :     #define __Pyx_c_neg_float(a)     (-(a))
    3116             :   #ifdef __cplusplus
    3117             :     #define __Pyx_c_is_zero_float(z) ((z)==(float)0)
    3118             :     #define __Pyx_c_conj_float(z)    (::std::conj(z))
    3119             :     #if 1
    3120             :         #define __Pyx_c_abs_float(z)     (::std::abs(z))
    3121             :         #define __Pyx_c_pow_float(a, b)  (::std::pow(a, b))
    3122             :     #endif
    3123             :   #else
    3124             :     #define __Pyx_c_is_zero_float(z) ((z)==0)
    3125             :     #define __Pyx_c_conj_float(z)    (conjf(z))
    3126             :     #if 1
    3127             :         #define __Pyx_c_abs_float(z)     (cabsf(z))
    3128             :         #define __Pyx_c_pow_float(a, b)  (cpowf(a, b))
    3129             :     #endif
    3130             :  #endif
    3131             : #else
    3132             :     static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex);
    3133             :     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex);
    3134             :     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex);
    3135             :     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex);
    3136             :     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex);
    3137             :     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex);
    3138             :     static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex);
    3139             :     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex);
    3140             :     #if 1
    3141             :         static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex);
    3142             :         static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex);
    3143             :     #endif
    3144             : #endif
    3145             : 
    3146             : /* Arithmetic.proto */
    3147             : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
    3148             :     #define __Pyx_c_eq_double(a, b)   ((a)==(b))
    3149             :     #define __Pyx_c_sum_double(a, b)  ((a)+(b))
    3150             :     #define __Pyx_c_diff_double(a, b) ((a)-(b))
    3151             :     #define __Pyx_c_prod_double(a, b) ((a)*(b))
    3152             :     #define __Pyx_c_quot_double(a, b) ((a)/(b))
    3153             :     #define __Pyx_c_neg_double(a)     (-(a))
    3154             :   #ifdef __cplusplus
    3155             :     #define __Pyx_c_is_zero_double(z) ((z)==(double)0)
    3156             :     #define __Pyx_c_conj_double(z)    (::std::conj(z))
    3157             :     #if 1
    3158             :         #define __Pyx_c_abs_double(z)     (::std::abs(z))
    3159             :         #define __Pyx_c_pow_double(a, b)  (::std::pow(a, b))
    3160             :     #endif
    3161             :   #else
    3162             :     #define __Pyx_c_is_zero_double(z) ((z)==0)
    3163             :     #define __Pyx_c_conj_double(z)    (conj(z))
    3164             :     #if 1
    3165             :         #define __Pyx_c_abs_double(z)     (cabs(z))
    3166             :         #define __Pyx_c_pow_double(a, b)  (cpow(a, b))
    3167             :     #endif
    3168             :  #endif
    3169             : #else
    3170             :     static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex);
    3171             :     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex);
    3172             :     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex);
    3173             :     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex);
    3174             :     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex);
    3175             :     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex);
    3176             :     static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex);
    3177             :     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex);
    3178             :     #if 1
    3179             :         static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex);
    3180             :         static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex);
    3181             :     #endif
    3182             : #endif
    3183             : 
    3184             : /* Arithmetic.proto */
    3185             : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
    3186             :     #define __Pyx_c_eq_long__double(a, b)   ((a)==(b))
    3187             :     #define __Pyx_c_sum_long__double(a, b)  ((a)+(b))
    3188             :     #define __Pyx_c_diff_long__double(a, b) ((a)-(b))
    3189             :     #define __Pyx_c_prod_long__double(a, b) ((a)*(b))
    3190             :     #define __Pyx_c_quot_long__double(a, b) ((a)/(b))
    3191             :     #define __Pyx_c_neg_long__double(a)     (-(a))
    3192             :   #ifdef __cplusplus
    3193             :     #define __Pyx_c_is_zero_long__double(z) ((z)==(long double)0)
    3194             :     #define __Pyx_c_conj_long__double(z)    (::std::conj(z))
    3195             :     #if 1
    3196             :         #define __Pyx_c_abs_long__double(z)     (::std::abs(z))
    3197             :         #define __Pyx_c_pow_long__double(a, b)  (::std::pow(a, b))
    3198             :     #endif
    3199             :   #else
    3200             :     #define __Pyx_c_is_zero_long__double(z) ((z)==0)
    3201             :     #define __Pyx_c_conj_long__double(z)    (conjl(z))
    3202             :     #if 1
    3203             :         #define __Pyx_c_abs_long__double(z)     (cabsl(z))
    3204             :         #define __Pyx_c_pow_long__double(a, b)  (cpowl(a, b))
    3205             :     #endif
    3206             :  #endif
    3207             : #else
    3208             :     static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    3209             :     static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    3210             :     static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    3211             :     static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    3212             :     static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    3213             :     static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex);
    3214             :     static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex);
    3215             :     static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex);
    3216             :     #if 1
    3217             :         static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex);
    3218             :         static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    3219             :     #endif
    3220             : #endif
    3221             : 
    3222             : /* TypeInfoCompare.proto */
    3223             : static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b);
    3224             : 
    3225             : /* MemviewSliceValidateAndInit.proto */
    3226             : static int __Pyx_ValidateAndInit_memviewslice(
    3227             :                 int *axes_specs,
    3228             :                 int c_or_f_flag,
    3229             :                 int buf_flags,
    3230             :                 int ndim,
    3231             :                 __Pyx_TypeInfo *dtype,
    3232             :                 __Pyx_BufFmt_StackElem stack[],
    3233             :                 __Pyx_memviewslice *memviewslice,
    3234             :                 PyObject *original_obj);
    3235             : 
    3236             : /* ObjectToMemviewSlice.proto */
    3237             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_object(PyObject *, int writable_flag);
    3238             : 
    3239             : /* ObjectToMemviewSlice.proto */
    3240             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_double__const__(PyObject *, int writable_flag);
    3241             : 
    3242             : /* ObjectToMemviewSlice.proto */
    3243             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(PyObject *, int writable_flag);
    3244             : 
    3245             : /* ObjectToMemviewSlice.proto */
    3246             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(PyObject *, int writable_flag);
    3247             : 
    3248             : /* ObjectToMemviewSlice.proto */
    3249             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_bool(PyObject *, int writable_flag);
    3250             : 
    3251             : /* ObjectToMemviewSlice.proto */
    3252             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int8(PyObject *, int writable_flag);
    3253             : 
    3254             : /* ObjectToMemviewSlice.proto */
    3255             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_uint8(PyObject *, int writable_flag);
    3256             : 
    3257             : /* ObjectToMemviewSlice.proto */
    3258             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int16(PyObject *, int writable_flag);
    3259             : 
    3260             : /* ObjectToMemviewSlice.proto */
    3261             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_uint16(PyObject *, int writable_flag);
    3262             : 
    3263             : /* ObjectToMemviewSlice.proto */
    3264             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_uint32(PyObject *, int writable_flag);
    3265             : 
    3266             : /* ObjectToMemviewSlice.proto */
    3267             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_uint64(PyObject *, int writable_flag);
    3268             : 
    3269             : /* ObjectToMemviewSlice.proto */
    3270             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_float32(PyObject *, int writable_flag);
    3271             : 
    3272             : /* ObjectToMemviewSlice.proto */
    3273             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_float64(PyObject *, int writable_flag);
    3274             : 
    3275             : /* ObjectToMemviewSlice.proto */
    3276             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_long__double(PyObject *, int writable_flag);
    3277             : 
    3278             : /* ObjectToMemviewSlice.proto */
    3279             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds___pyx_t_float_complex(PyObject *, int writable_flag);
    3280             : 
    3281             : /* ObjectToMemviewSlice.proto */
    3282             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds___pyx_t_double_complex(PyObject *, int writable_flag);
    3283             : 
    3284             : /* ObjectToMemviewSlice.proto */
    3285             : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds___pyx_t_long_double_complex(PyObject *, int writable_flag);
    3286             : 
    3287             : /* MemviewObjectToObject.proto */
    3288             : static PyObject *__pyx_memview_get_object(const char *itemp);
    3289             : static int __pyx_memview_set_object(const char *itemp, PyObject *obj);
    3290             : 
    3291             : /* PyUCS4InUnicode.proto */
    3292             : static CYTHON_INLINE int __Pyx_UnicodeContainsUCS4(PyObject* unicode, Py_UCS4 character);
    3293             : 
    3294             : /* MemviewDtypeToObject.proto */
    3295             : static CYTHON_INLINE PyObject *__pyx_memview_get_double__const__(const char *itemp);
    3296             : 
    3297             : /* FromPy.proto */
    3298             : static __pyx_t_float_complex __Pyx_PyComplex_As___pyx_t_float_complex(PyObject*);
    3299             : 
    3300             : /* FromPy.proto */
    3301             : static __pyx_t_double_complex __Pyx_PyComplex_As___pyx_t_double_complex(PyObject*);
    3302             : 
    3303             : /* FromPy.proto */
    3304             : static __pyx_t_long_double_complex __Pyx_PyComplex_As___pyx_t_long_double_complex(PyObject*);
    3305             : 
    3306             : /* ToPy.proto */
    3307             : #define __pyx_PyComplex_FromComplex(z)\
    3308             :         PyComplex_FromDoubles((double)__Pyx_CREAL(z),\
    3309             :                               (double)__Pyx_CIMAG(z))
    3310             : 
    3311             : /* MemviewSliceCopyTemplate.proto */
    3312             : static __Pyx_memviewslice
    3313             : __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs,
    3314             :                                  const char *mode, int ndim,
    3315             :                                  size_t sizeof_dtype, int contig_flag,
    3316             :                                  int dtype_is_object);
    3317             : 
    3318             : /* MemviewSliceInit.proto */
    3319             : #define __Pyx_BUF_MAX_NDIMS %(BUF_MAX_NDIMS)d
    3320             : #define __Pyx_MEMVIEW_DIRECT   1
    3321             : #define __Pyx_MEMVIEW_PTR      2
    3322             : #define __Pyx_MEMVIEW_FULL     4
    3323             : #define __Pyx_MEMVIEW_CONTIG   8
    3324             : #define __Pyx_MEMVIEW_STRIDED  16
    3325             : #define __Pyx_MEMVIEW_FOLLOW   32
    3326             : #define __Pyx_IS_C_CONTIG 1
    3327             : #define __Pyx_IS_F_CONTIG 2
    3328             : static int __Pyx_init_memviewslice(
    3329             :                 struct __pyx_memoryview_obj *memview,
    3330             :                 int ndim,
    3331             :                 __Pyx_memviewslice *memviewslice,
    3332             :                 int memview_is_new_reference);
    3333             : static CYTHON_INLINE int __pyx_add_acquisition_count_locked(
    3334             :     __pyx_atomic_int_type *acquisition_count, PyThread_type_lock lock);
    3335             : static CYTHON_INLINE int __pyx_sub_acquisition_count_locked(
    3336             :     __pyx_atomic_int_type *acquisition_count, PyThread_type_lock lock);
    3337             : #define __pyx_get_slice_count_pointer(memview) (&memview->acquisition_count)
    3338             : #define __PYX_INC_MEMVIEW(slice, have_gil) __Pyx_INC_MEMVIEW(slice, have_gil, __LINE__)
    3339             : #define __PYX_XCLEAR_MEMVIEW(slice, have_gil) __Pyx_XCLEAR_MEMVIEW(slice, have_gil, __LINE__)
    3340             : static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *, int, int);
    3341             : static CYTHON_INLINE void __Pyx_XCLEAR_MEMVIEW(__Pyx_memviewslice *, int, int);
    3342             : 
    3343             : /* CIntFromPy.proto */
    3344             : static CYTHON_INLINE npy_intp __Pyx_PyInt_As_npy_intp(PyObject *);
    3345             : 
    3346             : /* CIntToPy.proto */
    3347             : static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_intp(npy_intp value);
    3348             : 
    3349             : /* CIntToPy.proto */
    3350             : static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
    3351             : 
    3352             : /* CIntToPy.proto */
    3353             : static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
    3354             : 
    3355             : /* CIntFromPy.proto */
    3356             : static CYTHON_INLINE npy_bool __Pyx_PyInt_As_npy_bool(PyObject *);
    3357             : 
    3358             : /* CIntFromPy.proto */
    3359             : static CYTHON_INLINE npy_int8 __Pyx_PyInt_As_npy_int8(PyObject *);
    3360             : 
    3361             : /* CIntFromPy.proto */
    3362             : static CYTHON_INLINE npy_uint8 __Pyx_PyInt_As_npy_uint8(PyObject *);
    3363             : 
    3364             : /* CIntFromPy.proto */
    3365             : static CYTHON_INLINE npy_int16 __Pyx_PyInt_As_npy_int16(PyObject *);
    3366             : 
    3367             : /* CIntFromPy.proto */
    3368             : static CYTHON_INLINE npy_uint16 __Pyx_PyInt_As_npy_uint16(PyObject *);
    3369             : 
    3370             : /* CIntFromPy.proto */
    3371             : static CYTHON_INLINE npy_int32 __Pyx_PyInt_As_npy_int32(PyObject *);
    3372             : 
    3373             : /* CIntFromPy.proto */
    3374             : static CYTHON_INLINE npy_uint32 __Pyx_PyInt_As_npy_uint32(PyObject *);
    3375             : 
    3376             : /* CIntFromPy.proto */
    3377             : static CYTHON_INLINE npy_int64 __Pyx_PyInt_As_npy_int64(PyObject *);
    3378             : 
    3379             : /* CIntFromPy.proto */
    3380             : static CYTHON_INLINE npy_uint64 __Pyx_PyInt_As_npy_uint64(PyObject *);
    3381             : 
    3382             : /* CIntToPy.proto */
    3383             : static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_bool(npy_bool value);
    3384             : 
    3385             : /* CIntToPy.proto */
    3386             : static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_int8(npy_int8 value);
    3387             : 
    3388             : /* CIntToPy.proto */
    3389             : static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_uint8(npy_uint8 value);
    3390             : 
    3391             : /* CIntToPy.proto */
    3392             : static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_int16(npy_int16 value);
    3393             : 
    3394             : /* CIntToPy.proto */
    3395             : static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_uint16(npy_uint16 value);
    3396             : 
    3397             : /* CIntToPy.proto */
    3398             : static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_int32(npy_int32 value);
    3399             : 
    3400             : /* CIntToPy.proto */
    3401             : static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_uint32(npy_uint32 value);
    3402             : 
    3403             : /* CIntToPy.proto */
    3404             : static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_int64(npy_int64 value);
    3405             : 
    3406             : /* CIntToPy.proto */
    3407             : static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_uint64(npy_uint64 value);
    3408             : 
    3409             : /* ImportNumPyArray.proto */
    3410             : static PyObject *__pyx_numpy_ndarray = NULL;
    3411             : static PyObject* __Pyx_ImportNumPyArrayTypeIfAvailable(void);
    3412             : 
    3413             : /* CIntFromPy.proto */
    3414             : static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
    3415             : 
    3416             : /* CIntFromPy.proto */
    3417             : static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
    3418             : 
    3419             : /* CIntFromPy.proto */
    3420             : static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *);
    3421             : 
    3422             : /* FormatTypeName.proto */
    3423             : #if CYTHON_COMPILING_IN_LIMITED_API
    3424             : typedef PyObject *__Pyx_TypeName;
    3425             : #define __Pyx_FMT_TYPENAME "%U"
    3426             : static __Pyx_TypeName __Pyx_PyType_GetName(PyTypeObject* tp);
    3427             : #define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj)
    3428             : #else
    3429             : typedef const char *__Pyx_TypeName;
    3430             : #define __Pyx_FMT_TYPENAME "%.200s"
    3431             : #define __Pyx_PyType_GetName(tp) ((tp)->tp_name)
    3432             : #define __Pyx_DECREF_TypeName(obj)
    3433             : #endif
    3434             : 
    3435             : /* CheckBinaryVersion.proto */
    3436             : static unsigned long __Pyx_get_runtime_version(void);
    3437             : static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer);
    3438             : 
    3439             : /* InitStrings.proto */
    3440             : static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
    3441             : 
    3442             : /* #### Code section: module_declarations ### */
    3443             : static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self); /* proto*/
    3444             : static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto*/
    3445             : static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj); /* proto*/
    3446             : static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src); /* proto*/
    3447             : static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value); /* proto*/
    3448             : static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto*/
    3449             : static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/
    3450             : static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/
    3451             : static PyObject *__pyx_memoryview__get_base(struct __pyx_memoryview_obj *__pyx_v_self); /* proto*/
    3452             : static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/
    3453             : static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/
    3454             : static PyObject *__pyx_memoryviewslice__get_base(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto*/
    3455             : static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize_itemsize(PyArray_Descr *__pyx_v_self); /* proto*/
    3456             : static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment_alignment(PyArray_Descr *__pyx_v_self); /* proto*/
    3457             : static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields_fields(PyArray_Descr *__pyx_v_self); /* proto*/
    3458             : static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names_names(PyArray_Descr *__pyx_v_self); /* proto*/
    3459             : static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray_subarray(PyArray_Descr *__pyx_v_self); /* proto*/
    3460             : static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags_flags(PyArray_Descr *__pyx_v_self); /* proto*/
    3461             : static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter_numiter(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
    3462             : static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size_size(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
    3463             : static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index_index(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
    3464             : static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd_nd(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
    3465             : static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions_dimensions(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
    3466             : static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters_iters(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
    3467             : static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject *__pyx_v_self); /* proto*/
    3468             : static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArrayObject *__pyx_v_self); /* proto*/
    3469             : static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx_v_self); /* proto*/
    3470             : static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObject *__pyx_v_self); /* proto*/
    3471             : static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayObject *__pyx_v_self); /* proto*/
    3472             : static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *__pyx_v_self); /* proto*/
    3473             : static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__pyx_v_self); /* proto*/
    3474             : 
    3475             : /* Module declarations from "cython.view" */
    3476             : 
    3477             : /* Module declarations from "cython.dataclasses" */
    3478             : 
    3479             : /* Module declarations from "cython" */
    3480             : 
    3481             : /* Module declarations from "libc.string" */
    3482             : 
    3483             : /* Module declarations from "libc.stdio" */
    3484             : 
    3485             : /* Module declarations from "__builtin__" */
    3486             : 
    3487             : /* Module declarations from "cpython.type" */
    3488             : 
    3489             : /* Module declarations from "cpython" */
    3490             : 
    3491             : /* Module declarations from "cpython.object" */
    3492             : 
    3493             : /* Module declarations from "cpython.ref" */
    3494             : 
    3495             : /* Module declarations from "numpy" */
    3496             : 
    3497             : /* Module declarations from "numpy" */
    3498             : static CYTHON_INLINE int __pyx_f_5numpy_import_array(void); /*proto*/
    3499             : 
    3500             : /* Module declarations from "_csparsetools" */
    3501             : static PyObject *__pyx_v_13_csparsetools__LIL_GET_LENGTHS_DISPATCH = 0;
    3502             : static PyObject *__pyx_v_13_csparsetools__LIL_FLATTEN_TO_ARRAY_DISPATCH = 0;
    3503             : static PyObject *__pyx_v_13_csparsetools__LIL_FANCY_GET_DISPATCH = 0;
    3504             : static PyObject *__pyx_v_13_csparsetools__LIL_FANCY_SET_DISPATCH = 0;
    3505             : static PyObject *__pyx_collections_abc_Sequence = 0;
    3506             : static PyObject *generic = 0;
    3507             : static PyObject *strided = 0;
    3508             : static PyObject *indirect = 0;
    3509             : static PyObject *contiguous = 0;
    3510             : static PyObject *indirect_contiguous = 0;
    3511             : static int __pyx_memoryview_thread_locks_used;
    3512             : static PyThread_type_lock __pyx_memoryview_thread_locks[8];
    3513             : static PyObject *__pyx_f_13_csparsetools_lil_get1(npy_intp, npy_intp, __Pyx_memviewslice, __Pyx_memviewslice, npy_intp, npy_intp, int __pyx_skip_dispatch); /*proto*/
    3514             : static int __pyx_f_13_csparsetools_lil_insert(npy_intp, npy_intp, __Pyx_memviewslice, __Pyx_memviewslice, npy_intp, npy_intp, PyObject *, int __pyx_skip_dispatch); /*proto*/
    3515             : static CYTHON_INLINE npy_intp __pyx_f_13_csparsetools_bisect_left(PyObject *, npy_intp); /*proto*/
    3516             : static CYTHON_INLINE npy_intp __pyx_f_13_csparsetools_bisect_right(PyObject *, npy_intp); /*proto*/
    3517             : static PyObject *__pyx_f_13_csparsetools__fill_dtype_map(PyObject *, PyObject *); /*proto*/
    3518             : static PyObject *__pyx_f_13_csparsetools__fill_dtype_map2(PyObject *); /*proto*/
    3519             : static int __pyx_array_allocate_buffer(struct __pyx_array_obj *); /*proto*/
    3520             : static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/
    3521             : static PyObject *__pyx_memoryview_new(PyObject *, int, int, __Pyx_TypeInfo *); /*proto*/
    3522             : static CYTHON_INLINE int __pyx_memoryview_check(PyObject *); /*proto*/
    3523             : static PyObject *_unellipsify(PyObject *, int); /*proto*/
    3524             : static int assert_direct_dimensions(Py_ssize_t *, int); /*proto*/
    3525             : static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *, PyObject *); /*proto*/
    3526             : static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int, int); /*proto*/
    3527             : static char *__pyx_pybuffer_index(Py_buffer *, char *, Py_ssize_t, Py_ssize_t); /*proto*/
    3528             : static int __pyx_memslice_transpose(__Pyx_memviewslice *); /*proto*/
    3529             : static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice, int, PyObject *(*)(char *), int (*)(char *, PyObject *), int); /*proto*/
    3530             : static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/
    3531             : static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/
    3532             : static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *); /*proto*/
    3533             : static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/
    3534             : static Py_ssize_t abs_py_ssize_t(Py_ssize_t); /*proto*/
    3535             : static char __pyx_get_best_slice_order(__Pyx_memviewslice *, int); /*proto*/
    3536             : static void _copy_strided_to_strided(char *, Py_ssize_t *, char *, Py_ssize_t *, Py_ssize_t *, Py_ssize_t *, int, size_t); /*proto*/
    3537             : static void copy_strided_to_strided(__Pyx_memviewslice *, __Pyx_memviewslice *, int, size_t); /*proto*/
    3538             : static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *, int); /*proto*/
    3539             : static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *, Py_ssize_t *, Py_ssize_t, int, char); /*proto*/
    3540             : static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *, __Pyx_memviewslice *, char, int); /*proto*/
    3541             : static int __pyx_memoryview_err_extents(int, Py_ssize_t, Py_ssize_t); /*proto*/
    3542             : static int __pyx_memoryview_err_dim(PyObject *, PyObject *, int); /*proto*/
    3543             : static int __pyx_memoryview_err(PyObject *, PyObject *); /*proto*/
    3544             : static int __pyx_memoryview_err_no_memory(void); /*proto*/
    3545             : static int __pyx_memoryview_copy_contents(__Pyx_memviewslice, __Pyx_memviewslice, int, int, int); /*proto*/
    3546             : static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *, int, int); /*proto*/
    3547             : static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *, int, int, int); /*proto*/
    3548             : static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/
    3549             : static void __pyx_memoryview_refcount_objects_in_slice(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/
    3550             : static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *, int, size_t, void *, int); /*proto*/
    3551             : static void __pyx_memoryview__slice_assign_scalar(char *, Py_ssize_t *, Py_ssize_t *, int, size_t, void *); /*proto*/
    3552             : static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *, PyObject *); /*proto*/
    3553             : /* #### Code section: typeinfo ### */
    3554             : static __Pyx_TypeInfo __Pyx_TypeInfo_nn_npy_int32 = { "npy_int32", NULL, sizeof(npy_int32), { 0 }, 0, __PYX_IS_UNSIGNED(npy_int32) ? 'U' : 'I', __PYX_IS_UNSIGNED(npy_int32), 0 };
    3555             : static __Pyx_TypeInfo __Pyx_TypeInfo_nn_npy_int64 = { "npy_int64", NULL, sizeof(npy_int64), { 0 }, 0, __PYX_IS_UNSIGNED(npy_int64) ? 'U' : 'I', __PYX_IS_UNSIGNED(npy_int64), 0 };
    3556             : static __Pyx_TypeInfo __Pyx_TypeInfo_nn_npy_bool = { "npy_bool", NULL, sizeof(npy_bool), { 0 }, 0, __PYX_IS_UNSIGNED(npy_bool) ? 'U' : 'I', __PYX_IS_UNSIGNED(npy_bool), 0 };
    3557             : static __Pyx_TypeInfo __Pyx_TypeInfo_nn_npy_int8 = { "npy_int8", NULL, sizeof(npy_int8), { 0 }, 0, __PYX_IS_UNSIGNED(npy_int8) ? 'U' : 'I', __PYX_IS_UNSIGNED(npy_int8), 0 };
    3558             : static __Pyx_TypeInfo __Pyx_TypeInfo_nn_npy_uint8 = { "npy_uint8", NULL, sizeof(npy_uint8), { 0 }, 0, __PYX_IS_UNSIGNED(npy_uint8) ? 'U' : 'I', __PYX_IS_UNSIGNED(npy_uint8), 0 };
    3559             : static __Pyx_TypeInfo __Pyx_TypeInfo_nn_npy_int16 = { "npy_int16", NULL, sizeof(npy_int16), { 0 }, 0, __PYX_IS_UNSIGNED(npy_int16) ? 'U' : 'I', __PYX_IS_UNSIGNED(npy_int16), 0 };
    3560             : static __Pyx_TypeInfo __Pyx_TypeInfo_nn_npy_uint16 = { "npy_uint16", NULL, sizeof(npy_uint16), { 0 }, 0, __PYX_IS_UNSIGNED(npy_uint16) ? 'U' : 'I', __PYX_IS_UNSIGNED(npy_uint16), 0 };
    3561             : static __Pyx_TypeInfo __Pyx_TypeInfo_nn_npy_uint32 = { "npy_uint32", NULL, sizeof(npy_uint32), { 0 }, 0, __PYX_IS_UNSIGNED(npy_uint32) ? 'U' : 'I', __PYX_IS_UNSIGNED(npy_uint32), 0 };
    3562             : static __Pyx_TypeInfo __Pyx_TypeInfo_nn_npy_uint64 = { "npy_uint64", NULL, sizeof(npy_uint64), { 0 }, 0, __PYX_IS_UNSIGNED(npy_uint64) ? 'U' : 'I', __PYX_IS_UNSIGNED(npy_uint64), 0 };
    3563             : static __Pyx_TypeInfo __Pyx_TypeInfo_nn_npy_float32 = { "npy_float32", NULL, sizeof(npy_float32), { 0 }, 0, 'R', 0, 0 };
    3564             : static __Pyx_TypeInfo __Pyx_TypeInfo_nn_npy_float64 = { "npy_float64", NULL, sizeof(npy_float64), { 0 }, 0, 'R', 0, 0 };
    3565             : static __Pyx_TypeInfo __Pyx_TypeInfo_long__double = { "long double", NULL, sizeof(long double), { 0 }, 0, 'R', 0, 0 };
    3566             : static __Pyx_TypeInfo __Pyx_TypeInfo___pyx_t_float_complex = { "float complex", NULL, sizeof(__pyx_t_float_complex), { 0 }, 0, 'C', 0, 0 };
    3567             : static __Pyx_TypeInfo __Pyx_TypeInfo___pyx_t_double_complex = { "double complex", NULL, sizeof(__pyx_t_double_complex), { 0 }, 0, 'C', 0, 0 };
    3568             : static __Pyx_TypeInfo __Pyx_TypeInfo___pyx_t_long_double_complex = { "long double complex", NULL, sizeof(__pyx_t_long_double_complex), { 0 }, 0, 'C', 0, 0 };
    3569             : static __Pyx_TypeInfo __Pyx_TypeInfo_object = { "const object", NULL, sizeof(PyObject *const ), { 0 }, 0, 'O', 0, 0 };
    3570             : static __Pyx_TypeInfo __Pyx_TypeInfo_double__const__ = { "const double", NULL, sizeof(double const ), { 0 }, 0, 'R', 0, 0 };
    3571             : /* #### Code section: before_global_var ### */
    3572             : #define __Pyx_MODULE_NAME "_csparsetools"
    3573             : extern int __pyx_module_is_main__csparsetools;
    3574             : int __pyx_module_is_main__csparsetools = 0;
    3575             : 
    3576             : /* Implementation of "_csparsetools" */
    3577             : /* #### Code section: global_var ### */
    3578             : static PyObject *__pyx_builtin_IndexError;
    3579             : static PyObject *__pyx_builtin_range;
    3580             : static PyObject *__pyx_builtin_TypeError;
    3581             : static PyObject *__pyx_builtin_ValueError;
    3582             : static PyObject *__pyx_builtin_AssertionError;
    3583             : static PyObject *__pyx_builtin_enumerate;
    3584             : static PyObject *__pyx_builtin___import__;
    3585             : static PyObject *__pyx_builtin_MemoryError;
    3586             : static PyObject *__pyx_builtin_Ellipsis;
    3587             : static PyObject *__pyx_builtin_id;
    3588             : static PyObject *__pyx_builtin_ImportError;
    3589             : /* #### Code section: string_decls ### */
    3590             : static const char __pyx_k_[] = ": ";
    3591             : static const char __pyx_k_M[] = "M";
    3592             : static const char __pyx_k_N[] = "N";
    3593             : static const char __pyx_k_O[] = "O";
    3594             : static const char __pyx_k_a[] = "a";
    3595             : static const char __pyx_k_b[] = "b";
    3596             : static const char __pyx_k_c[] = "c";
    3597             : static const char __pyx_k_d[] = "d";
    3598             : static const char __pyx_k_i[] = "i";
    3599             : static const char __pyx_k_j[] = "j";
    3600             : static const char __pyx_k_k[] = "k";
    3601             : static const char __pyx_k_m[] = "m";
    3602             : static const char __pyx_k_p[] = "p";
    3603             : static const char __pyx_k_r[] = "r";
    3604             : static const char __pyx_k_s[] = "s";
    3605             : static const char __pyx_k_x[] = "x";
    3606             : static const char __pyx_k_y[] = "y";
    3607             : static const char __pyx_k__2[] = ".";
    3608             : static const char __pyx_k__3[] = "*";
    3609             : static const char __pyx_k__6[] = "'";
    3610             : static const char __pyx_k__7[] = ")";
    3611             : static const char __pyx_k_gc[] = "gc";
    3612             : static const char __pyx_k_id[] = "id";
    3613             : static const char __pyx_k_nj[] = "nj";
    3614             : static const char __pyx_k_nk[] = "nk";
    3615             : static const char __pyx_k_np[] = "np";
    3616             : static const char __pyx_k_All[] = "All";
    3617             : static const char __pyx_k__11[] = "()";
    3618             : static const char __pyx_k__12[] = "|";
    3619             : static const char __pyx_k__93[] = "?";
    3620             : static const char __pyx_k_abc[] = "abc";
    3621             : static const char __pyx_k_and[] = " and ";
    3622             : static const char __pyx_k_get[] = "get";
    3623             : static const char __pyx_k_got[] = " (got ";
    3624             : static const char __pyx_k_new[] = "__new__";
    3625             : static const char __pyx_k_obj[] = "obj";
    3626             : static const char __pyx_k_pos[] = "pos";
    3627             : static const char __pyx_k_row[] = "row";
    3628             : static const char __pyx_k_sys[] = "sys";
    3629             : static const char __pyx_k_SUVO[] = "SUVO";
    3630             : static const char __pyx_k_args[] = "args";
    3631             : static const char __pyx_k_base[] = "base";
    3632             : static const char __pyx_k_bool[] = "bool_";
    3633             : static const char __pyx_k_data[] = "data";
    3634             : static const char __pyx_k_dict[] = "__dict__";
    3635             : static const char __pyx_k_int8[] = "int8";
    3636             : static const char __pyx_k_kind[] = "kind";
    3637             : static const char __pyx_k_main[] = "__main__";
    3638             : static const char __pyx_k_mode[] = "mode";
    3639             : static const char __pyx_k_name[] = "name";
    3640             : static const char __pyx_k_ndim[] = "ndim";
    3641             : static const char __pyx_k_pack[] = "pack";
    3642             : static const char __pyx_k_rows[] = "rows";
    3643             : static const char __pyx_k_size[] = "size";
    3644             : static const char __pyx_k_spec[] = "__spec__";
    3645             : static const char __pyx_k_step[] = "step";
    3646             : static const char __pyx_k_stop[] = "stop";
    3647             : static const char __pyx_k_test[] = "__test__";
    3648             : static const char __pyx_k_view[] = "view";
    3649             : static const char __pyx_k_ASCII[] = "ASCII";
    3650             : static const char __pyx_k_class[] = "__class__";
    3651             : static const char __pyx_k_count[] = "count";
    3652             : static const char __pyx_k_datas[] = "datas";
    3653             : static const char __pyx_k_dtype[] = "dtype";
    3654             : static const char __pyx_k_error[] = "error";
    3655             : static const char __pyx_k_flags[] = "flags";
    3656             : static const char __pyx_k_i_idx[] = "i_idx";
    3657             : static const char __pyx_k_index[] = "index";
    3658             : static const char __pyx_k_input[] = "input";
    3659             : static const char __pyx_k_int16[] = "int16";
    3660             : static const char __pyx_k_int32[] = "int32";
    3661             : static const char __pyx_k_int64[] = "int64";
    3662             : static const char __pyx_k_irows[] = "irows";
    3663             : static const char __pyx_k_items[] = "items";
    3664             : static const char __pyx_k_j_idx[] = "j_idx";
    3665             : static const char __pyx_k_numpy[] = "numpy";
    3666             : static const char __pyx_k_range[] = "range";
    3667             : static const char __pyx_k_shape[] = "shape";
    3668             : static const char __pyx_k_split[] = "split";
    3669             : static const char __pyx_k_start[] = "start";
    3670             : static const char __pyx_k_strip[] = "strip";
    3671             : static const char __pyx_k_uint8[] = "uint8";
    3672             : static const char __pyx_k_value[] = "value";
    3673             : static const char __pyx_k_double[] = "double";
    3674             : static const char __pyx_k_enable[] = "enable";
    3675             : static const char __pyx_k_encode[] = "encode";
    3676             : static const char __pyx_k_format[] = "format";
    3677             : static const char __pyx_k_import[] = "__import__";
    3678             : static const char __pyx_k_j_stop[] = "j_stop";
    3679             : static const char __pyx_k_kwargs[] = "kwargs";
    3680             : static const char __pyx_k_name_2[] = "__name__";
    3681             : static const char __pyx_k_object[] = "object";
    3682             : static const char __pyx_k_output[] = "output";
    3683             : static const char __pyx_k_pickle[] = "pickle";
    3684             : static const char __pyx_k_reduce[] = "__reduce__";
    3685             : static const char __pyx_k_struct[] = "struct";
    3686             : static const char __pyx_k_uint16[] = "uint16";
    3687             : static const char __pyx_k_uint32[] = "uint32";
    3688             : static const char __pyx_k_uint64[] = "uint64";
    3689             : static const char __pyx_k_unpack[] = "unpack";
    3690             : static const char __pyx_k_update[] = "update";
    3691             : static const char __pyx_k_values[] = "values";
    3692             : static const char __pyx_k_Integer[] = "Integer";
    3693             : static const char __pyx_k_cur_row[] = "cur_row";
    3694             : static const char __pyx_k_disable[] = "disable";
    3695             : static const char __pyx_k_float32[] = "float32";
    3696             : static const char __pyx_k_float64[] = "float64";
    3697             : static const char __pyx_k_fortran[] = "fortran";
    3698             : static const char __pyx_k_j_start[] = "j_start";
    3699             : static const char __pyx_k_memview[] = "memview";
    3700             : static const char __pyx_k_new_row[] = "new_row";
    3701             : static const char __pyx_k_Ellipsis[] = "Ellipsis";
    3702             : static const char __pyx_k_Sequence[] = "Sequence";
    3703             : static const char __pyx_k_cur_data[] = "cur_data";
    3704             : static const char __pyx_k_defaults[] = "defaults";
    3705             : static const char __pyx_k_getstate[] = "__getstate__";
    3706             : static const char __pyx_k_itemsize[] = "itemsize";
    3707             : static const char __pyx_k_j_stride[] = "j_stride";
    3708             : static const char __pyx_k_lil_get1[] = "lil_get1";
    3709             : static const char __pyx_k_new_data[] = "new_data";
    3710             : static const char __pyx_k_new_rows[] = "new_rows";
    3711             : static const char __pyx_k_pyx_type[] = "__pyx_type";
    3712             : static const char __pyx_k_register[] = "register";
    3713             : static const char __pyx_k_setstate[] = "__setstate__";
    3714             : static const char __pyx_k_TypeError[] = "TypeError";
    3715             : static const char __pyx_k_complex64[] = "complex64";
    3716             : static const char __pyx_k_enumerate[] = "enumerate";
    3717             : static const char __pyx_k_isenabled[] = "isenabled";
    3718             : static const char __pyx_k_new_datas[] = "new_datas";
    3719             : static const char __pyx_k_pyx_state[] = "__pyx_state";
    3720             : static const char __pyx_k_reduce_ex[] = "__reduce_ex__";
    3721             : static const char __pyx_k_row_index[] = "row index (";
    3722             : static const char __pyx_k_typecodes[] = "typecodes";
    3723             : static const char __pyx_k_IndexError[] = "IndexError";
    3724             : static const char __pyx_k_ValueError[] = "ValueError";
    3725             : static const char __pyx_k_complex128[] = "complex128";
    3726             : static const char __pyx_k_lil_insert[] = "lil_insert";
    3727             : static const char __pyx_k_longdouble[] = "longdouble";
    3728             : static const char __pyx_k_pyx_result[] = "__pyx_result";
    3729             : static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
    3730             : static const char __pyx_k_signatures[] = "signatures";
    3731             : static const char __pyx_k_ImportError[] = "ImportError";
    3732             : static const char __pyx_k_MemoryError[] = "MemoryError";
    3733             : static const char __pyx_k_PickleError[] = "PickleError";
    3734             : static const char __pyx_k_clongdouble[] = "clongdouble";
    3735             : static const char __pyx_k_collections[] = "collections";
    3736             : static const char __pyx_k_row_index_2[] = "row index ";
    3737             : static const char __pyx_k_column_index[] = "column index (";
    3738             : static const char __pyx_k_csparsetools[] = "_csparsetools";
    3739             : static const char __pyx_k_initializing[] = "_initializing";
    3740             : static const char __pyx_k_is_coroutine[] = "_is_coroutine";
    3741             : static const char __pyx_k_pyx_checksum[] = "__pyx_checksum";
    3742             : static const char __pyx_k_stringsource[] = "<stringsource>";
    3743             : static const char __pyx_k_version_info[] = "version_info";
    3744             : static const char __pyx_k_class_getitem[] = "__class_getitem__";
    3745             : static const char __pyx_k_lil_fancy_get[] = "lil_fancy_get";
    3746             : static const char __pyx_k_lil_fancy_set[] = "lil_fancy_set";
    3747             : static const char __pyx_k_out_of_bounds[] = ") out of bounds";
    3748             : static const char __pyx_k_reduce_cython[] = "__reduce_cython__";
    3749             : static const char __pyx_k_AssertionError[] = "AssertionError";
    3750             : static const char __pyx_k_fused_sigindex[] = "_fused_sigindex";
    3751             : static const char __pyx_k_View_MemoryView[] = "View.MemoryView";
    3752             : static const char __pyx_k_allocate_buffer[] = "allocate_buffer";
    3753             : static const char __pyx_k_collections_abc[] = "collections.abc";
    3754             : static const char __pyx_k_dtype_is_object[] = "dtype_is_object";
    3755             : static const char __pyx_k_lil_get_lengths[] = "lil_get_lengths";
    3756             : static const char __pyx_k_out_of_bounds_2[] = " out of bounds";
    3757             : static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError";
    3758             : static const char __pyx_k_setstate_cython[] = "__setstate_cython__";
    3759             : static const char __pyx_k_pyx_unpickle_Enum[] = "__pyx_unpickle_Enum";
    3760             : static const char __pyx_k_asyncio_coroutines[] = "asyncio.coroutines";
    3761             : static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
    3762             : static const char __pyx_k_lil_get_row_ranges[] = "lil_get_row_ranges";
    3763             : static const char __pyx_k_strided_and_direct[] = "<strided and direct>";
    3764             : static const char __pyx_k_lil_fancy_get_int32[] = "_lil_fancy_get_int32";
    3765             : static const char __pyx_k_lil_fancy_get_int64[] = "_lil_fancy_get_int64";
    3766             : static const char __pyx_k_lil_flatten_to_array[] = "lil_flatten_to_array";
    3767             : static const char __pyx_k_strided_and_indirect[] = "<strided and indirect>";
    3768             : static const char __pyx_k_Invalid_shape_in_axis[] = "Invalid shape in axis ";
    3769             : static const char __pyx_k_contiguous_and_direct[] = "<contiguous and direct>";
    3770             : static const char __pyx_k_lil_get_lengths_int32[] = "_lil_get_lengths_int32";
    3771             : static const char __pyx_k_lil_get_lengths_int64[] = "_lil_get_lengths_int64";
    3772             : static const char __pyx_k_Cannot_index_with_type[] = "Cannot index with type '";
    3773             : static const char __pyx_k_MemoryView_of_r_object[] = "<MemoryView of %r object>";
    3774             : static const char __pyx_k_MemoryView_of_r_at_0x_x[] = "<MemoryView of %r at 0x%x>";
    3775             : static const char __pyx_k_contiguous_and_indirect[] = "<contiguous and indirect>";
    3776             : static const char __pyx_k_lil_fancy_set_int32_bool[] = "_lil_fancy_set_int32_bool_";
    3777             : static const char __pyx_k_lil_fancy_set_int32_int8[] = "_lil_fancy_set_int32_int8";
    3778             : static const char __pyx_k_lil_fancy_set_int64_bool[] = "_lil_fancy_set_int64_bool_";
    3779             : static const char __pyx_k_lil_fancy_set_int64_int8[] = "_lil_fancy_set_int64_int8";
    3780             : static const char __pyx_k_Dimension_d_is_not_direct[] = "Dimension %d is not direct";
    3781             : static const char __pyx_k_lil_fancy_set_int32_int16[] = "_lil_fancy_set_int32_int16";
    3782             : static const char __pyx_k_lil_fancy_set_int32_int32[] = "_lil_fancy_set_int32_int32";
    3783             : static const char __pyx_k_lil_fancy_set_int32_int64[] = "_lil_fancy_set_int32_int64";
    3784             : static const char __pyx_k_lil_fancy_set_int32_uint8[] = "_lil_fancy_set_int32_uint8";
    3785             : static const char __pyx_k_lil_fancy_set_int64_int16[] = "_lil_fancy_set_int64_int16";
    3786             : static const char __pyx_k_lil_fancy_set_int64_int32[] = "_lil_fancy_set_int64_int32";
    3787             : static const char __pyx_k_lil_fancy_set_int64_int64[] = "_lil_fancy_set_int64_int64";
    3788             : static const char __pyx_k_lil_fancy_set_int64_uint8[] = "_lil_fancy_set_int64_uint8";
    3789             : static const char __pyx_k_lil_flatten_to_array_bool[] = "_lil_flatten_to_array_bool_";
    3790             : static const char __pyx_k_lil_flatten_to_array_int8[] = "_lil_flatten_to_array_int8";
    3791             : static const char __pyx_k_Index_out_of_bounds_axis_d[] = "Index out of bounds (axis %d)";
    3792             : static const char __pyx_k_lil_fancy_set_int32_uint16[] = "_lil_fancy_set_int32_uint16";
    3793             : static const char __pyx_k_lil_fancy_set_int32_uint32[] = "_lil_fancy_set_int32_uint32";
    3794             : static const char __pyx_k_lil_fancy_set_int32_uint64[] = "_lil_fancy_set_int32_uint64";
    3795             : static const char __pyx_k_lil_fancy_set_int64_uint16[] = "_lil_fancy_set_int64_uint16";
    3796             : static const char __pyx_k_lil_fancy_set_int64_uint32[] = "_lil_fancy_set_int64_uint32";
    3797             : static const char __pyx_k_lil_fancy_set_int64_uint64[] = "_lil_fancy_set_int64_uint64";
    3798             : static const char __pyx_k_lil_flatten_to_array_int16[] = "_lil_flatten_to_array_int16";
    3799             : static const char __pyx_k_lil_flatten_to_array_int32[] = "_lil_flatten_to_array_int32";
    3800             : static const char __pyx_k_lil_flatten_to_array_int64[] = "_lil_flatten_to_array_int64";
    3801             : static const char __pyx_k_lil_flatten_to_array_uint8[] = "_lil_flatten_to_array_uint8";
    3802             : static const char __pyx_k_No_matching_signature_found[] = "No matching signature found";
    3803             : static const char __pyx_k_Step_may_not_be_zero_axis_d[] = "Step may not be zero (axis %d)";
    3804             : static const char __pyx_k_itemsize_0_for_cython_array[] = "itemsize <= 0 for cython.array";
    3805             : static const char __pyx_k_lil_fancy_set_int32_float32[] = "_lil_fancy_set_int32_float32";
    3806             : static const char __pyx_k_lil_fancy_set_int32_float64[] = "_lil_fancy_set_int32_float64";
    3807             : static const char __pyx_k_lil_fancy_set_int64_float32[] = "_lil_fancy_set_int64_float32";
    3808             : static const char __pyx_k_lil_fancy_set_int64_float64[] = "_lil_fancy_set_int64_float64";
    3809             : static const char __pyx_k_lil_flatten_to_array_uint16[] = "_lil_flatten_to_array_uint16";
    3810             : static const char __pyx_k_lil_flatten_to_array_uint32[] = "_lil_flatten_to_array_uint32";
    3811             : static const char __pyx_k_lil_flatten_to_array_uint64[] = "_lil_flatten_to_array_uint64";
    3812             : static const char __pyx_k_lil_flatten_to_array_float32[] = "_lil_flatten_to_array_float32";
    3813             : static const char __pyx_k_lil_flatten_to_array_float64[] = "_lil_flatten_to_array_float64";
    3814             : static const char __pyx_k_cannot_index_with_zero_stride[] = "cannot index with zero stride";
    3815             : static const char __pyx_k_lil_fancy_set_int32_complex64[] = "_lil_fancy_set_int32_complex64";
    3816             : static const char __pyx_k_lil_fancy_set_int64_complex64[] = "_lil_fancy_set_int64_complex64";
    3817             : static const char __pyx_k_unable_to_allocate_array_data[] = "unable to allocate array data.";
    3818             : static const char __pyx_k_Fast_snippets_for_LIL_matrices[] = "\nFast snippets for LIL matrices.\n";
    3819             : static const char __pyx_k_lil_fancy_set_int32_complex128[] = "_lil_fancy_set_int32_complex128";
    3820             : static const char __pyx_k_lil_fancy_set_int32_longdouble[] = "_lil_fancy_set_int32_longdouble";
    3821             : static const char __pyx_k_lil_fancy_set_int64_complex128[] = "_lil_fancy_set_int64_complex128";
    3822             : static const char __pyx_k_lil_fancy_set_int64_longdouble[] = "_lil_fancy_set_int64_longdouble";
    3823             : static const char __pyx_k_lil_flatten_to_array_complex64[] = "_lil_flatten_to_array_complex64";
    3824             : static const char __pyx_k_scipy_sparse__csparsetools_pyx[] = "scipy/sparse/_csparsetools.pyx";
    3825             : static const char __pyx_k_strided_and_direct_or_indirect[] = "<strided and direct or indirect>";
    3826             : static const char __pyx_k_lil_fancy_set_int32_clongdouble[] = "_lil_fancy_set_int32_clongdouble";
    3827             : static const char __pyx_k_lil_fancy_set_int64_clongdouble[] = "_lil_fancy_set_int64_clongdouble";
    3828             : static const char __pyx_k_lil_flatten_to_array_clongdoubl[] = "_lil_flatten_to_array_clongdouble";
    3829             : static const char __pyx_k_lil_flatten_to_array_complex128[] = "_lil_flatten_to_array_complex128";
    3830             : static const char __pyx_k_lil_flatten_to_array_longdouble[] = "_lil_flatten_to_array_longdouble";
    3831             : static const char __pyx_k_All_dimensions_preceding_dimensi[] = "All dimensions preceding dimension %d must be indexed and not sliced";
    3832             : static const char __pyx_k_Buffer_view_does_not_expose_stri[] = "Buffer view does not expose strides";
    3833             : static const char __pyx_k_Can_only_create_a_buffer_that_is[] = "Can only create a buffer that is contiguous in memory.";
    3834             : static const char __pyx_k_Cannot_assign_to_read_only_memor[] = "Cannot assign to read-only memoryview";
    3835             : static const char __pyx_k_Cannot_create_writable_memory_vi[] = "Cannot create writable memory view from read-only memoryview";
    3836             : static const char __pyx_k_Cannot_transpose_memoryview_with[] = "Cannot transpose memoryview with indirect dimensions";
    3837             : static const char __pyx_k_Empty_shape_tuple_for_cython_arr[] = "Empty shape tuple for cython.array";
    3838             : static const char __pyx_k_Expected_at_least_d_argument_s_g[] = "Expected at least %d argument%s, got %d";
    3839             : static const char __pyx_k_Function_call_with_ambiguous_arg[] = "Function call with ambiguous argument types";
    3840             : static const char __pyx_k_Incompatible_checksums_0x_x_vs_0[] = "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))";
    3841             : static const char __pyx_k_Indirect_dimensions_not_supporte[] = "Indirect dimensions not supported";
    3842             : static const char __pyx_k_Invalid_mode_expected_c_or_fortr[] = "Invalid mode, expected 'c' or 'fortran', got ";
    3843             : static const char __pyx_k_Out_of_bounds_on_buffer_access_a[] = "Out of bounds on buffer access (axis ";
    3844             : static const char __pyx_k_Unable_to_convert_item_to_object[] = "Unable to convert item to object";
    3845             : static const char __pyx_k_got_differing_extents_in_dimensi[] = "got differing extents in dimension ";
    3846             : static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__";
    3847             : static const char __pyx_k_numpy__core_multiarray_failed_to[] = "numpy._core.multiarray failed to import";
    3848             : static const char __pyx_k_numpy__core_umath_failed_to_impo[] = "numpy._core.umath failed to import";
    3849             : static const char __pyx_k_unable_to_allocate_shape_and_str[] = "unable to allocate shape and strides.";
    3850             : /* #### Code section: decls ### */
    3851             : static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer); /* proto */
    3852             : static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */
    3853             : static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self); /* proto */
    3854             : static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self); /* proto */
    3855             : static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self); /* proto */
    3856             : static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr); /* proto */
    3857             : static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item); /* proto */
    3858             : static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /* proto */
    3859             : static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self); /* proto */
    3860             : static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
    3861             : static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
    3862             : static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */
    3863             : static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */
    3864             : static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
    3865             : static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object); /* proto */
    3866             : static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3867             : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto */
    3868             : static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto */
    3869             : static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */
    3870             : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3871             : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3872             : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3873             : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3874             : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3875             : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3876             : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3877             : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3878             : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3879             : static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3880             : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3881             : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3882             : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3883             : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3884             : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3885             : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3886             : static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
    3887             : static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
    3888             : static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */
    3889             : static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */
    3890             : static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
    3891             : static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
    3892             : static PyObject *__pyx_pf_13_csparsetools_lil_get1(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_datas, npy_intp __pyx_v_i, npy_intp __pyx_v_j); /* proto */
    3893             : static PyObject *__pyx_pf_13_csparsetools_2lil_insert(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_datas, npy_intp __pyx_v_i, npy_intp __pyx_v_j, PyObject *__pyx_v_x); /* proto */
    3894             : static PyObject *__pyx_pf_13_csparsetools_4lil_get_lengths(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3895             : static PyObject *__pyx_pf_13_csparsetools_6_lil_get_lengths_int32(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3896             : static PyObject *__pyx_pf_13_csparsetools_8_lil_get_lengths_int64(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3897             : static PyObject *__pyx_pf_13_csparsetools_10lil_flatten_to_array(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults, PyObject *__pyx_v__fused_sigindex); /* proto */
    3898             : static PyObject *__pyx_pf_13_csparsetools_112lil_flatten_to_array(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3899             : static PyObject *__pyx_pf_13_csparsetools_114lil_flatten_to_array(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3900             : static PyObject *__pyx_pf_13_csparsetools_12_lil_flatten_to_array_bool_(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3901             : static PyObject *__pyx_pf_13_csparsetools_14_lil_flatten_to_array_int8(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3902             : static PyObject *__pyx_pf_13_csparsetools_16_lil_flatten_to_array_uint8(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3903             : static PyObject *__pyx_pf_13_csparsetools_18_lil_flatten_to_array_int16(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3904             : static PyObject *__pyx_pf_13_csparsetools_20_lil_flatten_to_array_uint16(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3905             : static PyObject *__pyx_pf_13_csparsetools_22_lil_flatten_to_array_int32(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3906             : static PyObject *__pyx_pf_13_csparsetools_24_lil_flatten_to_array_uint32(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3907             : static PyObject *__pyx_pf_13_csparsetools_26_lil_flatten_to_array_int64(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3908             : static PyObject *__pyx_pf_13_csparsetools_28_lil_flatten_to_array_uint64(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3909             : static PyObject *__pyx_pf_13_csparsetools_30_lil_flatten_to_array_float32(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3910             : static PyObject *__pyx_pf_13_csparsetools_32_lil_flatten_to_array_float64(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3911             : static PyObject *__pyx_pf_13_csparsetools_34_lil_flatten_to_array_longdouble(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3912             : static PyObject *__pyx_pf_13_csparsetools_36_lil_flatten_to_array_complex64(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3913             : static PyObject *__pyx_pf_13_csparsetools_38_lil_flatten_to_array_complex128(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3914             : static PyObject *__pyx_pf_13_csparsetools_40_lil_flatten_to_array_clongdouble(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output); /* proto */
    3915             : static PyObject *__pyx_pf_13_csparsetools_42lil_fancy_get(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_datas, __Pyx_memviewslice __pyx_v_new_rows, __Pyx_memviewslice __pyx_v_new_datas, PyArrayObject *__pyx_v_i_idx, PyArrayObject *__pyx_v_j_idx); /* proto */
    3916             : static PyObject *__pyx_pf_13_csparsetools_44_lil_fancy_get_int32(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_datas, __Pyx_memviewslice __pyx_v_new_rows, __Pyx_memviewslice __pyx_v_new_datas, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx); /* proto */
    3917             : static PyObject *__pyx_pf_13_csparsetools_46_lil_fancy_get_int64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_datas, __Pyx_memviewslice __pyx_v_new_rows, __Pyx_memviewslice __pyx_v_new_datas, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx); /* proto */
    3918             : static PyObject *__pyx_pf_13_csparsetools_48lil_fancy_set(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, PyArrayObject *__pyx_v_i_idx, PyArrayObject *__pyx_v_j_idx, PyArrayObject *__pyx_v_values); /* proto */
    3919             : static PyObject *__pyx_pf_13_csparsetools_50_lil_fancy_set_int32_bool_(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3920             : static PyObject *__pyx_pf_13_csparsetools_52_lil_fancy_set_int32_int8(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3921             : static PyObject *__pyx_pf_13_csparsetools_54_lil_fancy_set_int32_uint8(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3922             : static PyObject *__pyx_pf_13_csparsetools_56_lil_fancy_set_int32_int16(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3923             : static PyObject *__pyx_pf_13_csparsetools_58_lil_fancy_set_int32_uint16(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3924             : static PyObject *__pyx_pf_13_csparsetools_60_lil_fancy_set_int32_int32(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3925             : static PyObject *__pyx_pf_13_csparsetools_62_lil_fancy_set_int32_uint32(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3926             : static PyObject *__pyx_pf_13_csparsetools_64_lil_fancy_set_int32_int64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3927             : static PyObject *__pyx_pf_13_csparsetools_66_lil_fancy_set_int32_uint64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3928             : static PyObject *__pyx_pf_13_csparsetools_68_lil_fancy_set_int32_float32(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3929             : static PyObject *__pyx_pf_13_csparsetools_70_lil_fancy_set_int32_float64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3930             : static PyObject *__pyx_pf_13_csparsetools_72_lil_fancy_set_int32_longdouble(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3931             : static PyObject *__pyx_pf_13_csparsetools_74_lil_fancy_set_int32_complex64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3932             : static PyObject *__pyx_pf_13_csparsetools_76_lil_fancy_set_int32_complex128(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3933             : static PyObject *__pyx_pf_13_csparsetools_78_lil_fancy_set_int32_clongdouble(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3934             : static PyObject *__pyx_pf_13_csparsetools_80_lil_fancy_set_int64_bool_(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3935             : static PyObject *__pyx_pf_13_csparsetools_82_lil_fancy_set_int64_int8(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3936             : static PyObject *__pyx_pf_13_csparsetools_84_lil_fancy_set_int64_uint8(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3937             : static PyObject *__pyx_pf_13_csparsetools_86_lil_fancy_set_int64_int16(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3938             : static PyObject *__pyx_pf_13_csparsetools_88_lil_fancy_set_int64_uint16(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3939             : static PyObject *__pyx_pf_13_csparsetools_90_lil_fancy_set_int64_int32(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3940             : static PyObject *__pyx_pf_13_csparsetools_92_lil_fancy_set_int64_uint32(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3941             : static PyObject *__pyx_pf_13_csparsetools_94_lil_fancy_set_int64_int64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3942             : static PyObject *__pyx_pf_13_csparsetools_96_lil_fancy_set_int64_uint64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3943             : static PyObject *__pyx_pf_13_csparsetools_98_lil_fancy_set_int64_float32(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3944             : static PyObject *__pyx_pf_13_csparsetools_100_lil_fancy_set_int64_float64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3945             : static PyObject *__pyx_pf_13_csparsetools_102_lil_fancy_set_int64_longdouble(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3946             : static PyObject *__pyx_pf_13_csparsetools_104_lil_fancy_set_int64_complex64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3947             : static PyObject *__pyx_pf_13_csparsetools_106_lil_fancy_set_int64_complex128(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3948             : static PyObject *__pyx_pf_13_csparsetools_108_lil_fancy_set_int64_clongdouble(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values); /* proto */
    3949             : static PyObject *__pyx_pf_13_csparsetools_110lil_get_row_ranges(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults, PyObject *__pyx_v__fused_sigindex); /* proto */
    3950             : static PyObject *__pyx_pf_13_csparsetools_118lil_get_row_ranges(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_datas, __Pyx_memviewslice __pyx_v_new_rows, __Pyx_memviewslice __pyx_v_new_datas, PyObject *__pyx_v_irows, npy_intp __pyx_v_j_start, npy_intp __pyx_v_j_stop, npy_intp __pyx_v_j_stride, npy_intp __pyx_v_nj); /* proto */
    3951             : static PyObject *__pyx_pf_13_csparsetools_120lil_get_row_ranges(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_datas, __Pyx_memviewslice __pyx_v_new_rows, __Pyx_memviewslice __pyx_v_new_datas, PyObject *__pyx_v_irows, npy_intp __pyx_v_j_start, npy_intp __pyx_v_j_stop, npy_intp __pyx_v_j_stride, npy_intp __pyx_v_nj); /* proto */
    3952             : static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
    3953             : static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
    3954             : static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
    3955             : static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
    3956             : static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_get = {0, 0, 0, 0, 0};
    3957             : static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values = {0, 0, 0, 0, 0};
    3958             : /* #### Code section: late_includes ### */
    3959             : /* #### Code section: module_state ### */
    3960             : typedef struct {
    3961             :   PyObject *__pyx_d;
    3962             :   PyObject *__pyx_b;
    3963             :   PyObject *__pyx_cython_runtime;
    3964             :   PyObject *__pyx_empty_tuple;
    3965             :   PyObject *__pyx_empty_bytes;
    3966             :   PyObject *__pyx_empty_unicode;
    3967             :   #ifdef __Pyx_CyFunction_USED
    3968             :   PyTypeObject *__pyx_CyFunctionType;
    3969             :   #endif
    3970             :   #ifdef __Pyx_FusedFunction_USED
    3971             :   PyTypeObject *__pyx_FusedFunctionType;
    3972             :   #endif
    3973             :   #ifdef __Pyx_Generator_USED
    3974             :   PyTypeObject *__pyx_GeneratorType;
    3975             :   #endif
    3976             :   #ifdef __Pyx_IterableCoroutine_USED
    3977             :   PyTypeObject *__pyx_IterableCoroutineType;
    3978             :   #endif
    3979             :   #ifdef __Pyx_Coroutine_USED
    3980             :   PyTypeObject *__pyx_CoroutineAwaitType;
    3981             :   #endif
    3982             :   #ifdef __Pyx_Coroutine_USED
    3983             :   PyTypeObject *__pyx_CoroutineType;
    3984             :   #endif
    3985             :   #if CYTHON_USE_MODULE_STATE
    3986             :   #endif
    3987             :   #if CYTHON_USE_MODULE_STATE
    3988             :   #endif
    3989             :   #if CYTHON_USE_MODULE_STATE
    3990             :   #endif
    3991             :   #if CYTHON_USE_MODULE_STATE
    3992             :   #endif
    3993             :   #if CYTHON_USE_MODULE_STATE
    3994             :   #endif
    3995             :   #if CYTHON_USE_MODULE_STATE
    3996             :   #endif
    3997             :   #if CYTHON_USE_MODULE_STATE
    3998             :   #endif
    3999             :   PyTypeObject *__pyx_ptype_7cpython_4type_type;
    4000             :   #if CYTHON_USE_MODULE_STATE
    4001             :   #endif
    4002             :   #if CYTHON_USE_MODULE_STATE
    4003             :   #endif
    4004             :   #if CYTHON_USE_MODULE_STATE
    4005             :   #endif
    4006             :   #if CYTHON_USE_MODULE_STATE
    4007             :   #endif
    4008             :   #if CYTHON_USE_MODULE_STATE
    4009             :   #endif
    4010             :   PyTypeObject *__pyx_ptype_5numpy_dtype;
    4011             :   PyTypeObject *__pyx_ptype_5numpy_flatiter;
    4012             :   PyTypeObject *__pyx_ptype_5numpy_broadcast;
    4013             :   PyTypeObject *__pyx_ptype_5numpy_ndarray;
    4014             :   PyTypeObject *__pyx_ptype_5numpy_generic;
    4015             :   PyTypeObject *__pyx_ptype_5numpy_number;
    4016             :   PyTypeObject *__pyx_ptype_5numpy_integer;
    4017             :   PyTypeObject *__pyx_ptype_5numpy_signedinteger;
    4018             :   PyTypeObject *__pyx_ptype_5numpy_unsignedinteger;
    4019             :   PyTypeObject *__pyx_ptype_5numpy_inexact;
    4020             :   PyTypeObject *__pyx_ptype_5numpy_floating;
    4021             :   PyTypeObject *__pyx_ptype_5numpy_complexfloating;
    4022             :   PyTypeObject *__pyx_ptype_5numpy_flexible;
    4023             :   PyTypeObject *__pyx_ptype_5numpy_character;
    4024             :   PyTypeObject *__pyx_ptype_5numpy_ufunc;
    4025             :   #if CYTHON_USE_MODULE_STATE
    4026             :   PyObject *__pyx_type___pyx_array;
    4027             :   PyObject *__pyx_type___pyx_MemviewEnum;
    4028             :   PyObject *__pyx_type___pyx_memoryview;
    4029             :   PyObject *__pyx_type___pyx_memoryviewslice;
    4030             :   #endif
    4031             :   PyTypeObject *__pyx_array_type;
    4032             :   PyTypeObject *__pyx_MemviewEnum_type;
    4033             :   PyTypeObject *__pyx_memoryview_type;
    4034             :   PyTypeObject *__pyx_memoryviewslice_type;
    4035             :   PyObject *__pyx_kp_u_;
    4036             :   PyObject *__pyx_n_s_ASCII;
    4037             :   PyObject *__pyx_n_u_All;
    4038             :   PyObject *__pyx_kp_s_All_dimensions_preceding_dimensi;
    4039             :   PyObject *__pyx_n_s_AssertionError;
    4040             :   PyObject *__pyx_kp_s_Buffer_view_does_not_expose_stri;
    4041             :   PyObject *__pyx_kp_s_Can_only_create_a_buffer_that_is;
    4042             :   PyObject *__pyx_kp_s_Cannot_assign_to_read_only_memor;
    4043             :   PyObject *__pyx_kp_s_Cannot_create_writable_memory_vi;
    4044             :   PyObject *__pyx_kp_u_Cannot_index_with_type;
    4045             :   PyObject *__pyx_kp_s_Cannot_transpose_memoryview_with;
    4046             :   PyObject *__pyx_kp_s_Dimension_d_is_not_direct;
    4047             :   PyObject *__pyx_n_s_Ellipsis;
    4048             :   PyObject *__pyx_kp_s_Empty_shape_tuple_for_cython_arr;
    4049             :   PyObject *__pyx_kp_s_Expected_at_least_d_argument_s_g;
    4050             :   PyObject *__pyx_kp_s_Function_call_with_ambiguous_arg;
    4051             :   PyObject *__pyx_n_s_ImportError;
    4052             :   PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0;
    4053             :   PyObject *__pyx_n_s_IndexError;
    4054             :   PyObject *__pyx_kp_s_Index_out_of_bounds_axis_d;
    4055             :   PyObject *__pyx_kp_s_Indirect_dimensions_not_supporte;
    4056             :   PyObject *__pyx_n_u_Integer;
    4057             :   PyObject *__pyx_kp_u_Invalid_mode_expected_c_or_fortr;
    4058             :   PyObject *__pyx_kp_u_Invalid_shape_in_axis;
    4059             :   PyObject *__pyx_n_s_M;
    4060             :   PyObject *__pyx_n_s_MemoryError;
    4061             :   PyObject *__pyx_kp_s_MemoryView_of_r_at_0x_x;
    4062             :   PyObject *__pyx_kp_s_MemoryView_of_r_object;
    4063             :   PyObject *__pyx_n_s_N;
    4064             :   PyObject *__pyx_kp_s_No_matching_signature_found;
    4065             :   PyObject *__pyx_n_b_O;
    4066             :   PyObject *__pyx_kp_u_Out_of_bounds_on_buffer_access_a;
    4067             :   PyObject *__pyx_n_s_PickleError;
    4068             :   PyObject *__pyx_n_u_SUVO;
    4069             :   PyObject *__pyx_n_s_Sequence;
    4070             :   PyObject *__pyx_kp_s_Step_may_not_be_zero_axis_d;
    4071             :   PyObject *__pyx_n_s_TypeError;
    4072             :   PyObject *__pyx_kp_s_Unable_to_convert_item_to_object;
    4073             :   PyObject *__pyx_n_s_ValueError;
    4074             :   PyObject *__pyx_n_s_View_MemoryView;
    4075             :   PyObject *__pyx_kp_s__11;
    4076             :   PyObject *__pyx_kp_s__12;
    4077             :   PyObject *__pyx_kp_u__12;
    4078             :   PyObject *__pyx_kp_u__2;
    4079             :   PyObject *__pyx_n_s__3;
    4080             :   PyObject *__pyx_kp_u__6;
    4081             :   PyObject *__pyx_kp_u__7;
    4082             :   PyObject *__pyx_n_s__93;
    4083             :   PyObject *__pyx_n_s_a;
    4084             :   PyObject *__pyx_n_s_abc;
    4085             :   PyObject *__pyx_n_s_allocate_buffer;
    4086             :   PyObject *__pyx_kp_u_and;
    4087             :   PyObject *__pyx_n_s_args;
    4088             :   PyObject *__pyx_n_s_asyncio_coroutines;
    4089             :   PyObject *__pyx_n_s_b;
    4090             :   PyObject *__pyx_n_s_base;
    4091             :   PyObject *__pyx_n_s_bool;
    4092             :   PyObject *__pyx_n_s_c;
    4093             :   PyObject *__pyx_n_u_c;
    4094             :   PyObject *__pyx_kp_u_cannot_index_with_zero_stride;
    4095             :   PyObject *__pyx_n_s_class;
    4096             :   PyObject *__pyx_n_s_class_getitem;
    4097             :   PyObject *__pyx_n_s_cline_in_traceback;
    4098             :   PyObject *__pyx_n_s_clongdouble;
    4099             :   PyObject *__pyx_n_s_collections;
    4100             :   PyObject *__pyx_kp_s_collections_abc;
    4101             :   PyObject *__pyx_kp_u_column_index;
    4102             :   PyObject *__pyx_n_s_complex128;
    4103             :   PyObject *__pyx_n_s_complex64;
    4104             :   PyObject *__pyx_kp_s_contiguous_and_direct;
    4105             :   PyObject *__pyx_kp_s_contiguous_and_indirect;
    4106             :   PyObject *__pyx_n_s_count;
    4107             :   PyObject *__pyx_n_s_csparsetools;
    4108             :   PyObject *__pyx_n_s_cur_data;
    4109             :   PyObject *__pyx_n_s_cur_row;
    4110             :   PyObject *__pyx_n_u_d;
    4111             :   PyObject *__pyx_n_s_data;
    4112             :   PyObject *__pyx_n_s_datas;
    4113             :   PyObject *__pyx_n_s_defaults;
    4114             :   PyObject *__pyx_n_s_dict;
    4115             :   PyObject *__pyx_kp_u_disable;
    4116             :   PyObject *__pyx_n_s_double;
    4117             :   PyObject *__pyx_n_s_dtype;
    4118             :   PyObject *__pyx_n_s_dtype_is_object;
    4119             :   PyObject *__pyx_kp_u_enable;
    4120             :   PyObject *__pyx_n_s_encode;
    4121             :   PyObject *__pyx_n_s_enumerate;
    4122             :   PyObject *__pyx_n_s_error;
    4123             :   PyObject *__pyx_n_s_flags;
    4124             :   PyObject *__pyx_n_s_float32;
    4125             :   PyObject *__pyx_n_s_float64;
    4126             :   PyObject *__pyx_n_s_format;
    4127             :   PyObject *__pyx_n_s_fortran;
    4128             :   PyObject *__pyx_n_u_fortran;
    4129             :   PyObject *__pyx_n_s_fused_sigindex;
    4130             :   PyObject *__pyx_kp_u_gc;
    4131             :   PyObject *__pyx_n_s_get;
    4132             :   PyObject *__pyx_n_s_getstate;
    4133             :   PyObject *__pyx_kp_u_got;
    4134             :   PyObject *__pyx_kp_u_got_differing_extents_in_dimensi;
    4135             :   PyObject *__pyx_n_s_i;
    4136             :   PyObject *__pyx_n_s_i_idx;
    4137             :   PyObject *__pyx_n_s_id;
    4138             :   PyObject *__pyx_n_s_import;
    4139             :   PyObject *__pyx_n_s_index;
    4140             :   PyObject *__pyx_n_s_initializing;
    4141             :   PyObject *__pyx_n_s_input;
    4142             :   PyObject *__pyx_n_s_int16;
    4143             :   PyObject *__pyx_n_s_int32;
    4144             :   PyObject *__pyx_n_s_int64;
    4145             :   PyObject *__pyx_n_s_int8;
    4146             :   PyObject *__pyx_n_s_irows;
    4147             :   PyObject *__pyx_n_s_is_coroutine;
    4148             :   PyObject *__pyx_kp_u_isenabled;
    4149             :   PyObject *__pyx_n_s_items;
    4150             :   PyObject *__pyx_n_s_itemsize;
    4151             :   PyObject *__pyx_kp_s_itemsize_0_for_cython_array;
    4152             :   PyObject *__pyx_n_s_j;
    4153             :   PyObject *__pyx_n_s_j_idx;
    4154             :   PyObject *__pyx_n_s_j_start;
    4155             :   PyObject *__pyx_n_s_j_stop;
    4156             :   PyObject *__pyx_n_s_j_stride;
    4157             :   PyObject *__pyx_n_s_k;
    4158             :   PyObject *__pyx_n_s_kind;
    4159             :   PyObject *__pyx_n_s_kwargs;
    4160             :   PyObject *__pyx_n_s_lil_fancy_get;
    4161             :   PyObject *__pyx_n_s_lil_fancy_get_int32;
    4162             :   PyObject *__pyx_n_s_lil_fancy_get_int64;
    4163             :   PyObject *__pyx_n_s_lil_fancy_set;
    4164             :   PyObject *__pyx_n_s_lil_fancy_set_int32_bool;
    4165             :   PyObject *__pyx_n_s_lil_fancy_set_int32_clongdouble;
    4166             :   PyObject *__pyx_n_s_lil_fancy_set_int32_complex128;
    4167             :   PyObject *__pyx_n_s_lil_fancy_set_int32_complex64;
    4168             :   PyObject *__pyx_n_s_lil_fancy_set_int32_float32;
    4169             :   PyObject *__pyx_n_s_lil_fancy_set_int32_float64;
    4170             :   PyObject *__pyx_n_s_lil_fancy_set_int32_int16;
    4171             :   PyObject *__pyx_n_s_lil_fancy_set_int32_int32;
    4172             :   PyObject *__pyx_n_s_lil_fancy_set_int32_int64;
    4173             :   PyObject *__pyx_n_s_lil_fancy_set_int32_int8;
    4174             :   PyObject *__pyx_n_s_lil_fancy_set_int32_longdouble;
    4175             :   PyObject *__pyx_n_s_lil_fancy_set_int32_uint16;
    4176             :   PyObject *__pyx_n_s_lil_fancy_set_int32_uint32;
    4177             :   PyObject *__pyx_n_s_lil_fancy_set_int32_uint64;
    4178             :   PyObject *__pyx_n_s_lil_fancy_set_int32_uint8;
    4179             :   PyObject *__pyx_n_s_lil_fancy_set_int64_bool;
    4180             :   PyObject *__pyx_n_s_lil_fancy_set_int64_clongdouble;
    4181             :   PyObject *__pyx_n_s_lil_fancy_set_int64_complex128;
    4182             :   PyObject *__pyx_n_s_lil_fancy_set_int64_complex64;
    4183             :   PyObject *__pyx_n_s_lil_fancy_set_int64_float32;
    4184             :   PyObject *__pyx_n_s_lil_fancy_set_int64_float64;
    4185             :   PyObject *__pyx_n_s_lil_fancy_set_int64_int16;
    4186             :   PyObject *__pyx_n_s_lil_fancy_set_int64_int32;
    4187             :   PyObject *__pyx_n_s_lil_fancy_set_int64_int64;
    4188             :   PyObject *__pyx_n_s_lil_fancy_set_int64_int8;
    4189             :   PyObject *__pyx_n_s_lil_fancy_set_int64_longdouble;
    4190             :   PyObject *__pyx_n_s_lil_fancy_set_int64_uint16;
    4191             :   PyObject *__pyx_n_s_lil_fancy_set_int64_uint32;
    4192             :   PyObject *__pyx_n_s_lil_fancy_set_int64_uint64;
    4193             :   PyObject *__pyx_n_s_lil_fancy_set_int64_uint8;
    4194             :   PyObject *__pyx_n_s_lil_flatten_to_array;
    4195             :   PyObject *__pyx_n_s_lil_flatten_to_array_bool;
    4196             :   PyObject *__pyx_n_s_lil_flatten_to_array_clongdoubl;
    4197             :   PyObject *__pyx_n_s_lil_flatten_to_array_complex128;
    4198             :   PyObject *__pyx_n_s_lil_flatten_to_array_complex64;
    4199             :   PyObject *__pyx_n_s_lil_flatten_to_array_float32;
    4200             :   PyObject *__pyx_n_s_lil_flatten_to_array_float64;
    4201             :   PyObject *__pyx_n_s_lil_flatten_to_array_int16;
    4202             :   PyObject *__pyx_n_s_lil_flatten_to_array_int32;
    4203             :   PyObject *__pyx_n_s_lil_flatten_to_array_int64;
    4204             :   PyObject *__pyx_n_s_lil_flatten_to_array_int8;
    4205             :   PyObject *__pyx_n_s_lil_flatten_to_array_longdouble;
    4206             :   PyObject *__pyx_n_s_lil_flatten_to_array_uint16;
    4207             :   PyObject *__pyx_n_s_lil_flatten_to_array_uint32;
    4208             :   PyObject *__pyx_n_s_lil_flatten_to_array_uint64;
    4209             :   PyObject *__pyx_n_s_lil_flatten_to_array_uint8;
    4210             :   PyObject *__pyx_n_s_lil_get1;
    4211             :   PyObject *__pyx_n_s_lil_get_lengths;
    4212             :   PyObject *__pyx_n_s_lil_get_lengths_int32;
    4213             :   PyObject *__pyx_n_s_lil_get_lengths_int64;
    4214             :   PyObject *__pyx_n_s_lil_get_row_ranges;
    4215             :   PyObject *__pyx_n_s_lil_insert;
    4216             :   PyObject *__pyx_n_s_longdouble;
    4217             :   PyObject *__pyx_n_s_m;
    4218             :   PyObject *__pyx_n_s_main;
    4219             :   PyObject *__pyx_n_s_memview;
    4220             :   PyObject *__pyx_n_s_mode;
    4221             :   PyObject *__pyx_n_s_name;
    4222             :   PyObject *__pyx_n_s_name_2;
    4223             :   PyObject *__pyx_n_s_ndim;
    4224             :   PyObject *__pyx_n_s_new;
    4225             :   PyObject *__pyx_n_s_new_data;
    4226             :   PyObject *__pyx_n_s_new_datas;
    4227             :   PyObject *__pyx_n_s_new_row;
    4228             :   PyObject *__pyx_n_s_new_rows;
    4229             :   PyObject *__pyx_n_s_nj;
    4230             :   PyObject *__pyx_n_s_nk;
    4231             :   PyObject *__pyx_kp_s_no_default___reduce___due_to_non;
    4232             :   PyObject *__pyx_n_s_np;
    4233             :   PyObject *__pyx_n_s_numpy;
    4234             :   PyObject *__pyx_kp_u_numpy__core_multiarray_failed_to;
    4235             :   PyObject *__pyx_kp_u_numpy__core_umath_failed_to_impo;
    4236             :   PyObject *__pyx_n_s_obj;
    4237             :   PyObject *__pyx_n_s_object;
    4238             :   PyObject *__pyx_kp_u_out_of_bounds;
    4239             :   PyObject *__pyx_kp_u_out_of_bounds_2;
    4240             :   PyObject *__pyx_n_s_output;
    4241             :   PyObject *__pyx_n_s_p;
    4242             :   PyObject *__pyx_n_s_pack;
    4243             :   PyObject *__pyx_n_s_pickle;
    4244             :   PyObject *__pyx_n_s_pos;
    4245             :   PyObject *__pyx_n_s_pyx_PickleError;
    4246             :   PyObject *__pyx_n_s_pyx_checksum;
    4247             :   PyObject *__pyx_n_s_pyx_result;
    4248             :   PyObject *__pyx_n_s_pyx_state;
    4249             :   PyObject *__pyx_n_s_pyx_type;
    4250             :   PyObject *__pyx_n_s_pyx_unpickle_Enum;
    4251             :   PyObject *__pyx_n_s_pyx_vtable;
    4252             :   PyObject *__pyx_n_s_r;
    4253             :   PyObject *__pyx_n_s_range;
    4254             :   PyObject *__pyx_n_s_reduce;
    4255             :   PyObject *__pyx_n_s_reduce_cython;
    4256             :   PyObject *__pyx_n_s_reduce_ex;
    4257             :   PyObject *__pyx_n_s_register;
    4258             :   PyObject *__pyx_n_s_row;
    4259             :   PyObject *__pyx_kp_u_row_index;
    4260             :   PyObject *__pyx_kp_u_row_index_2;
    4261             :   PyObject *__pyx_n_s_rows;
    4262             :   PyObject *__pyx_n_s_s;
    4263             :   PyObject *__pyx_kp_s_scipy_sparse__csparsetools_pyx;
    4264             :   PyObject *__pyx_n_s_setstate;
    4265             :   PyObject *__pyx_n_s_setstate_cython;
    4266             :   PyObject *__pyx_n_s_shape;
    4267             :   PyObject *__pyx_n_s_signatures;
    4268             :   PyObject *__pyx_n_s_size;
    4269             :   PyObject *__pyx_n_s_spec;
    4270             :   PyObject *__pyx_n_s_split;
    4271             :   PyObject *__pyx_n_s_start;
    4272             :   PyObject *__pyx_n_s_step;
    4273             :   PyObject *__pyx_n_s_stop;
    4274             :   PyObject *__pyx_kp_s_strided_and_direct;
    4275             :   PyObject *__pyx_kp_s_strided_and_direct_or_indirect;
    4276             :   PyObject *__pyx_kp_s_strided_and_indirect;
    4277             :   PyObject *__pyx_kp_s_stringsource;
    4278             :   PyObject *__pyx_n_s_strip;
    4279             :   PyObject *__pyx_n_s_struct;
    4280             :   PyObject *__pyx_n_s_sys;
    4281             :   PyObject *__pyx_n_s_test;
    4282             :   PyObject *__pyx_n_s_typecodes;
    4283             :   PyObject *__pyx_n_s_uint16;
    4284             :   PyObject *__pyx_n_s_uint32;
    4285             :   PyObject *__pyx_n_s_uint64;
    4286             :   PyObject *__pyx_n_s_uint8;
    4287             :   PyObject *__pyx_kp_s_unable_to_allocate_array_data;
    4288             :   PyObject *__pyx_kp_s_unable_to_allocate_shape_and_str;
    4289             :   PyObject *__pyx_n_s_unpack;
    4290             :   PyObject *__pyx_n_s_update;
    4291             :   PyObject *__pyx_n_s_value;
    4292             :   PyObject *__pyx_n_s_values;
    4293             :   PyObject *__pyx_n_s_version_info;
    4294             :   PyObject *__pyx_n_s_view;
    4295             :   PyObject *__pyx_n_s_x;
    4296             :   PyObject *__pyx_n_s_y;
    4297             :   PyObject *__pyx_int_0;
    4298             :   PyObject *__pyx_int_1;
    4299             :   PyObject *__pyx_int_2;
    4300             :   PyObject *__pyx_int_3;
    4301             :   PyObject *__pyx_int_11;
    4302             :   PyObject *__pyx_int_112105877;
    4303             :   PyObject *__pyx_int_136983863;
    4304             :   PyObject *__pyx_int_184977713;
    4305             :   PyObject *__pyx_int_neg_1;
    4306             :   PyObject *__pyx_slice__5;
    4307             :   PyObject *__pyx_tuple__4;
    4308             :   PyObject *__pyx_tuple__8;
    4309             :   PyObject *__pyx_tuple__9;
    4310             :   PyObject *__pyx_tuple__10;
    4311             :   PyObject *__pyx_tuple__13;
    4312             :   PyObject *__pyx_tuple__14;
    4313             :   PyObject *__pyx_tuple__15;
    4314             :   PyObject *__pyx_tuple__16;
    4315             :   PyObject *__pyx_tuple__17;
    4316             :   PyObject *__pyx_tuple__18;
    4317             :   PyObject *__pyx_tuple__19;
    4318             :   PyObject *__pyx_tuple__20;
    4319             :   PyObject *__pyx_tuple__21;
    4320             :   PyObject *__pyx_tuple__22;
    4321             :   PyObject *__pyx_tuple__23;
    4322             :   PyObject *__pyx_tuple__24;
    4323             :   PyObject *__pyx_tuple__25;
    4324             :   PyObject *__pyx_tuple__27;
    4325             :   PyObject *__pyx_tuple__29;
    4326             :   PyObject *__pyx_tuple__31;
    4327             :   PyObject *__pyx_tuple__33;
    4328             :   PyObject *__pyx_tuple__37;
    4329             :   PyObject *__pyx_tuple__53;
    4330             :   PyObject *__pyx_tuple__55;
    4331             :   PyObject *__pyx_tuple__58;
    4332             :   PyObject *__pyx_tuple__60;
    4333             :   PyObject *__pyx_tuple__91;
    4334             :   PyObject *__pyx_codeobj__26;
    4335             :   PyObject *__pyx_codeobj__28;
    4336             :   PyObject *__pyx_codeobj__30;
    4337             :   PyObject *__pyx_codeobj__32;
    4338             :   PyObject *__pyx_codeobj__34;
    4339             :   PyObject *__pyx_codeobj__35;
    4340             :   PyObject *__pyx_codeobj__36;
    4341             :   PyObject *__pyx_codeobj__38;
    4342             :   PyObject *__pyx_codeobj__39;
    4343             :   PyObject *__pyx_codeobj__40;
    4344             :   PyObject *__pyx_codeobj__41;
    4345             :   PyObject *__pyx_codeobj__42;
    4346             :   PyObject *__pyx_codeobj__43;
    4347             :   PyObject *__pyx_codeobj__44;
    4348             :   PyObject *__pyx_codeobj__45;
    4349             :   PyObject *__pyx_codeobj__46;
    4350             :   PyObject *__pyx_codeobj__47;
    4351             :   PyObject *__pyx_codeobj__48;
    4352             :   PyObject *__pyx_codeobj__49;
    4353             :   PyObject *__pyx_codeobj__50;
    4354             :   PyObject *__pyx_codeobj__51;
    4355             :   PyObject *__pyx_codeobj__52;
    4356             :   PyObject *__pyx_codeobj__54;
    4357             :   PyObject *__pyx_codeobj__56;
    4358             :   PyObject *__pyx_codeobj__57;
    4359             :   PyObject *__pyx_codeobj__59;
    4360             :   PyObject *__pyx_codeobj__61;
    4361             :   PyObject *__pyx_codeobj__62;
    4362             :   PyObject *__pyx_codeobj__63;
    4363             :   PyObject *__pyx_codeobj__64;
    4364             :   PyObject *__pyx_codeobj__65;
    4365             :   PyObject *__pyx_codeobj__66;
    4366             :   PyObject *__pyx_codeobj__67;
    4367             :   PyObject *__pyx_codeobj__68;
    4368             :   PyObject *__pyx_codeobj__69;
    4369             :   PyObject *__pyx_codeobj__70;
    4370             :   PyObject *__pyx_codeobj__71;
    4371             :   PyObject *__pyx_codeobj__72;
    4372             :   PyObject *__pyx_codeobj__73;
    4373             :   PyObject *__pyx_codeobj__74;
    4374             :   PyObject *__pyx_codeobj__75;
    4375             :   PyObject *__pyx_codeobj__76;
    4376             :   PyObject *__pyx_codeobj__77;
    4377             :   PyObject *__pyx_codeobj__78;
    4378             :   PyObject *__pyx_codeobj__79;
    4379             :   PyObject *__pyx_codeobj__80;
    4380             :   PyObject *__pyx_codeobj__81;
    4381             :   PyObject *__pyx_codeobj__82;
    4382             :   PyObject *__pyx_codeobj__83;
    4383             :   PyObject *__pyx_codeobj__84;
    4384             :   PyObject *__pyx_codeobj__85;
    4385             :   PyObject *__pyx_codeobj__86;
    4386             :   PyObject *__pyx_codeobj__87;
    4387             :   PyObject *__pyx_codeobj__88;
    4388             :   PyObject *__pyx_codeobj__89;
    4389             :   PyObject *__pyx_codeobj__90;
    4390             :   PyObject *__pyx_codeobj__92;
    4391             : } __pyx_mstate;
    4392             : 
    4393             : #if CYTHON_USE_MODULE_STATE
    4394             : #ifdef __cplusplus
    4395             : namespace {
    4396             :   extern struct PyModuleDef __pyx_moduledef;
    4397             : } /* anonymous namespace */
    4398             : #else
    4399             : static struct PyModuleDef __pyx_moduledef;
    4400             : #endif
    4401             : 
    4402             : #define __pyx_mstate(o) ((__pyx_mstate *)__Pyx_PyModule_GetState(o))
    4403             : 
    4404             : #define __pyx_mstate_global (__pyx_mstate(PyState_FindModule(&__pyx_moduledef)))
    4405             : 
    4406             : #define __pyx_m (PyState_FindModule(&__pyx_moduledef))
    4407             : #else
    4408             : static __pyx_mstate __pyx_mstate_global_static =
    4409             : #ifdef __cplusplus
    4410             :     {};
    4411             : #else
    4412             :     {0};
    4413             : #endif
    4414             : static __pyx_mstate *__pyx_mstate_global = &__pyx_mstate_global_static;
    4415             : #endif
    4416             : /* #### Code section: module_state_clear ### */
    4417             : #if CYTHON_USE_MODULE_STATE
    4418             : static int __pyx_m_clear(PyObject *m) {
    4419             :   __pyx_mstate *clear_module_state = __pyx_mstate(m);
    4420             :   if (!clear_module_state) return 0;
    4421             :   Py_CLEAR(clear_module_state->__pyx_d);
    4422             :   Py_CLEAR(clear_module_state->__pyx_b);
    4423             :   Py_CLEAR(clear_module_state->__pyx_cython_runtime);
    4424             :   Py_CLEAR(clear_module_state->__pyx_empty_tuple);
    4425             :   Py_CLEAR(clear_module_state->__pyx_empty_bytes);
    4426             :   Py_CLEAR(clear_module_state->__pyx_empty_unicode);
    4427             :   #ifdef __Pyx_CyFunction_USED
    4428             :   Py_CLEAR(clear_module_state->__pyx_CyFunctionType);
    4429             :   #endif
    4430             :   #ifdef __Pyx_FusedFunction_USED
    4431             :   Py_CLEAR(clear_module_state->__pyx_FusedFunctionType);
    4432             :   #endif
    4433             :   Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4type_type);
    4434             :   Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_dtype);
    4435             :   Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flatiter);
    4436             :   Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_broadcast);
    4437             :   Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ndarray);
    4438             :   Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_generic);
    4439             :   Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_number);
    4440             :   Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_integer);
    4441             :   Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_signedinteger);
    4442             :   Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_unsignedinteger);
    4443             :   Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_inexact);
    4444             :   Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_floating);
    4445             :   Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_complexfloating);
    4446             :   Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flexible);
    4447             :   Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_character);
    4448             :   Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ufunc);
    4449             :   Py_CLEAR(clear_module_state->__pyx_array_type);
    4450             :   Py_CLEAR(clear_module_state->__pyx_type___pyx_array);
    4451             :   Py_CLEAR(clear_module_state->__pyx_MemviewEnum_type);
    4452             :   Py_CLEAR(clear_module_state->__pyx_type___pyx_MemviewEnum);
    4453             :   Py_CLEAR(clear_module_state->__pyx_memoryview_type);
    4454             :   Py_CLEAR(clear_module_state->__pyx_type___pyx_memoryview);
    4455             :   Py_CLEAR(clear_module_state->__pyx_memoryviewslice_type);
    4456             :   Py_CLEAR(clear_module_state->__pyx_type___pyx_memoryviewslice);
    4457             :   Py_CLEAR(clear_module_state->__pyx_kp_u_);
    4458             :   Py_CLEAR(clear_module_state->__pyx_n_s_ASCII);
    4459             :   Py_CLEAR(clear_module_state->__pyx_n_u_All);
    4460             :   Py_CLEAR(clear_module_state->__pyx_kp_s_All_dimensions_preceding_dimensi);
    4461             :   Py_CLEAR(clear_module_state->__pyx_n_s_AssertionError);
    4462             :   Py_CLEAR(clear_module_state->__pyx_kp_s_Buffer_view_does_not_expose_stri);
    4463             :   Py_CLEAR(clear_module_state->__pyx_kp_s_Can_only_create_a_buffer_that_is);
    4464             :   Py_CLEAR(clear_module_state->__pyx_kp_s_Cannot_assign_to_read_only_memor);
    4465             :   Py_CLEAR(clear_module_state->__pyx_kp_s_Cannot_create_writable_memory_vi);
    4466             :   Py_CLEAR(clear_module_state->__pyx_kp_u_Cannot_index_with_type);
    4467             :   Py_CLEAR(clear_module_state->__pyx_kp_s_Cannot_transpose_memoryview_with);
    4468             :   Py_CLEAR(clear_module_state->__pyx_kp_s_Dimension_d_is_not_direct);
    4469             :   Py_CLEAR(clear_module_state->__pyx_n_s_Ellipsis);
    4470             :   Py_CLEAR(clear_module_state->__pyx_kp_s_Empty_shape_tuple_for_cython_arr);
    4471             :   Py_CLEAR(clear_module_state->__pyx_kp_s_Expected_at_least_d_argument_s_g);
    4472             :   Py_CLEAR(clear_module_state->__pyx_kp_s_Function_call_with_ambiguous_arg);
    4473             :   Py_CLEAR(clear_module_state->__pyx_n_s_ImportError);
    4474             :   Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0);
    4475             :   Py_CLEAR(clear_module_state->__pyx_n_s_IndexError);
    4476             :   Py_CLEAR(clear_module_state->__pyx_kp_s_Index_out_of_bounds_axis_d);
    4477             :   Py_CLEAR(clear_module_state->__pyx_kp_s_Indirect_dimensions_not_supporte);
    4478             :   Py_CLEAR(clear_module_state->__pyx_n_u_Integer);
    4479             :   Py_CLEAR(clear_module_state->__pyx_kp_u_Invalid_mode_expected_c_or_fortr);
    4480             :   Py_CLEAR(clear_module_state->__pyx_kp_u_Invalid_shape_in_axis);
    4481             :   Py_CLEAR(clear_module_state->__pyx_n_s_M);
    4482             :   Py_CLEAR(clear_module_state->__pyx_n_s_MemoryError);
    4483             :   Py_CLEAR(clear_module_state->__pyx_kp_s_MemoryView_of_r_at_0x_x);
    4484             :   Py_CLEAR(clear_module_state->__pyx_kp_s_MemoryView_of_r_object);
    4485             :   Py_CLEAR(clear_module_state->__pyx_n_s_N);
    4486             :   Py_CLEAR(clear_module_state->__pyx_kp_s_No_matching_signature_found);
    4487             :   Py_CLEAR(clear_module_state->__pyx_n_b_O);
    4488             :   Py_CLEAR(clear_module_state->__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
    4489             :   Py_CLEAR(clear_module_state->__pyx_n_s_PickleError);
    4490             :   Py_CLEAR(clear_module_state->__pyx_n_u_SUVO);
    4491             :   Py_CLEAR(clear_module_state->__pyx_n_s_Sequence);
    4492             :   Py_CLEAR(clear_module_state->__pyx_kp_s_Step_may_not_be_zero_axis_d);
    4493             :   Py_CLEAR(clear_module_state->__pyx_n_s_TypeError);
    4494             :   Py_CLEAR(clear_module_state->__pyx_kp_s_Unable_to_convert_item_to_object);
    4495             :   Py_CLEAR(clear_module_state->__pyx_n_s_ValueError);
    4496             :   Py_CLEAR(clear_module_state->__pyx_n_s_View_MemoryView);
    4497             :   Py_CLEAR(clear_module_state->__pyx_kp_s__11);
    4498             :   Py_CLEAR(clear_module_state->__pyx_kp_s__12);
    4499             :   Py_CLEAR(clear_module_state->__pyx_kp_u__12);
    4500             :   Py_CLEAR(clear_module_state->__pyx_kp_u__2);
    4501             :   Py_CLEAR(clear_module_state->__pyx_n_s__3);
    4502             :   Py_CLEAR(clear_module_state->__pyx_kp_u__6);
    4503             :   Py_CLEAR(clear_module_state->__pyx_kp_u__7);
    4504             :   Py_CLEAR(clear_module_state->__pyx_n_s__93);
    4505             :   Py_CLEAR(clear_module_state->__pyx_n_s_a);
    4506             :   Py_CLEAR(clear_module_state->__pyx_n_s_abc);
    4507             :   Py_CLEAR(clear_module_state->__pyx_n_s_allocate_buffer);
    4508             :   Py_CLEAR(clear_module_state->__pyx_kp_u_and);
    4509             :   Py_CLEAR(clear_module_state->__pyx_n_s_args);
    4510             :   Py_CLEAR(clear_module_state->__pyx_n_s_asyncio_coroutines);
    4511             :   Py_CLEAR(clear_module_state->__pyx_n_s_b);
    4512             :   Py_CLEAR(clear_module_state->__pyx_n_s_base);
    4513             :   Py_CLEAR(clear_module_state->__pyx_n_s_bool);
    4514             :   Py_CLEAR(clear_module_state->__pyx_n_s_c);
    4515             :   Py_CLEAR(clear_module_state->__pyx_n_u_c);
    4516             :   Py_CLEAR(clear_module_state->__pyx_kp_u_cannot_index_with_zero_stride);
    4517             :   Py_CLEAR(clear_module_state->__pyx_n_s_class);
    4518             :   Py_CLEAR(clear_module_state->__pyx_n_s_class_getitem);
    4519             :   Py_CLEAR(clear_module_state->__pyx_n_s_cline_in_traceback);
    4520             :   Py_CLEAR(clear_module_state->__pyx_n_s_clongdouble);
    4521             :   Py_CLEAR(clear_module_state->__pyx_n_s_collections);
    4522             :   Py_CLEAR(clear_module_state->__pyx_kp_s_collections_abc);
    4523             :   Py_CLEAR(clear_module_state->__pyx_kp_u_column_index);
    4524             :   Py_CLEAR(clear_module_state->__pyx_n_s_complex128);
    4525             :   Py_CLEAR(clear_module_state->__pyx_n_s_complex64);
    4526             :   Py_CLEAR(clear_module_state->__pyx_kp_s_contiguous_and_direct);
    4527             :   Py_CLEAR(clear_module_state->__pyx_kp_s_contiguous_and_indirect);
    4528             :   Py_CLEAR(clear_module_state->__pyx_n_s_count);
    4529             :   Py_CLEAR(clear_module_state->__pyx_n_s_csparsetools);
    4530             :   Py_CLEAR(clear_module_state->__pyx_n_s_cur_data);
    4531             :   Py_CLEAR(clear_module_state->__pyx_n_s_cur_row);
    4532             :   Py_CLEAR(clear_module_state->__pyx_n_u_d);
    4533             :   Py_CLEAR(clear_module_state->__pyx_n_s_data);
    4534             :   Py_CLEAR(clear_module_state->__pyx_n_s_datas);
    4535             :   Py_CLEAR(clear_module_state->__pyx_n_s_defaults);
    4536             :   Py_CLEAR(clear_module_state->__pyx_n_s_dict);
    4537             :   Py_CLEAR(clear_module_state->__pyx_kp_u_disable);
    4538             :   Py_CLEAR(clear_module_state->__pyx_n_s_double);
    4539             :   Py_CLEAR(clear_module_state->__pyx_n_s_dtype);
    4540             :   Py_CLEAR(clear_module_state->__pyx_n_s_dtype_is_object);
    4541             :   Py_CLEAR(clear_module_state->__pyx_kp_u_enable);
    4542             :   Py_CLEAR(clear_module_state->__pyx_n_s_encode);
    4543             :   Py_CLEAR(clear_module_state->__pyx_n_s_enumerate);
    4544             :   Py_CLEAR(clear_module_state->__pyx_n_s_error);
    4545             :   Py_CLEAR(clear_module_state->__pyx_n_s_flags);
    4546             :   Py_CLEAR(clear_module_state->__pyx_n_s_float32);
    4547             :   Py_CLEAR(clear_module_state->__pyx_n_s_float64);
    4548             :   Py_CLEAR(clear_module_state->__pyx_n_s_format);
    4549             :   Py_CLEAR(clear_module_state->__pyx_n_s_fortran);
    4550             :   Py_CLEAR(clear_module_state->__pyx_n_u_fortran);
    4551             :   Py_CLEAR(clear_module_state->__pyx_n_s_fused_sigindex);
    4552             :   Py_CLEAR(clear_module_state->__pyx_kp_u_gc);
    4553             :   Py_CLEAR(clear_module_state->__pyx_n_s_get);
    4554             :   Py_CLEAR(clear_module_state->__pyx_n_s_getstate);
    4555             :   Py_CLEAR(clear_module_state->__pyx_kp_u_got);
    4556             :   Py_CLEAR(clear_module_state->__pyx_kp_u_got_differing_extents_in_dimensi);
    4557             :   Py_CLEAR(clear_module_state->__pyx_n_s_i);
    4558             :   Py_CLEAR(clear_module_state->__pyx_n_s_i_idx);
    4559             :   Py_CLEAR(clear_module_state->__pyx_n_s_id);
    4560             :   Py_CLEAR(clear_module_state->__pyx_n_s_import);
    4561             :   Py_CLEAR(clear_module_state->__pyx_n_s_index);
    4562             :   Py_CLEAR(clear_module_state->__pyx_n_s_initializing);
    4563             :   Py_CLEAR(clear_module_state->__pyx_n_s_input);
    4564             :   Py_CLEAR(clear_module_state->__pyx_n_s_int16);
    4565             :   Py_CLEAR(clear_module_state->__pyx_n_s_int32);
    4566             :   Py_CLEAR(clear_module_state->__pyx_n_s_int64);
    4567             :   Py_CLEAR(clear_module_state->__pyx_n_s_int8);
    4568             :   Py_CLEAR(clear_module_state->__pyx_n_s_irows);
    4569             :   Py_CLEAR(clear_module_state->__pyx_n_s_is_coroutine);
    4570             :   Py_CLEAR(clear_module_state->__pyx_kp_u_isenabled);
    4571             :   Py_CLEAR(clear_module_state->__pyx_n_s_items);
    4572             :   Py_CLEAR(clear_module_state->__pyx_n_s_itemsize);
    4573             :   Py_CLEAR(clear_module_state->__pyx_kp_s_itemsize_0_for_cython_array);
    4574             :   Py_CLEAR(clear_module_state->__pyx_n_s_j);
    4575             :   Py_CLEAR(clear_module_state->__pyx_n_s_j_idx);
    4576             :   Py_CLEAR(clear_module_state->__pyx_n_s_j_start);
    4577             :   Py_CLEAR(clear_module_state->__pyx_n_s_j_stop);
    4578             :   Py_CLEAR(clear_module_state->__pyx_n_s_j_stride);
    4579             :   Py_CLEAR(clear_module_state->__pyx_n_s_k);
    4580             :   Py_CLEAR(clear_module_state->__pyx_n_s_kind);
    4581             :   Py_CLEAR(clear_module_state->__pyx_n_s_kwargs);
    4582             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_get);
    4583             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_get_int32);
    4584             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_get_int64);
    4585             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set);
    4586             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int32_bool);
    4587             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int32_clongdouble);
    4588             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int32_complex128);
    4589             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int32_complex64);
    4590             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int32_float32);
    4591             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int32_float64);
    4592             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int32_int16);
    4593             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int32_int32);
    4594             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int32_int64);
    4595             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int32_int8);
    4596             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int32_longdouble);
    4597             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int32_uint16);
    4598             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int32_uint32);
    4599             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int32_uint64);
    4600             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int32_uint8);
    4601             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int64_bool);
    4602             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int64_clongdouble);
    4603             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int64_complex128);
    4604             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int64_complex64);
    4605             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int64_float32);
    4606             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int64_float64);
    4607             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int64_int16);
    4608             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int64_int32);
    4609             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int64_int64);
    4610             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int64_int8);
    4611             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int64_longdouble);
    4612             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int64_uint16);
    4613             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int64_uint32);
    4614             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int64_uint64);
    4615             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_fancy_set_int64_uint8);
    4616             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_flatten_to_array);
    4617             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_flatten_to_array_bool);
    4618             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_flatten_to_array_clongdoubl);
    4619             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_flatten_to_array_complex128);
    4620             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_flatten_to_array_complex64);
    4621             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_flatten_to_array_float32);
    4622             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_flatten_to_array_float64);
    4623             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_flatten_to_array_int16);
    4624             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_flatten_to_array_int32);
    4625             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_flatten_to_array_int64);
    4626             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_flatten_to_array_int8);
    4627             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_flatten_to_array_longdouble);
    4628             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_flatten_to_array_uint16);
    4629             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_flatten_to_array_uint32);
    4630             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_flatten_to_array_uint64);
    4631             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_flatten_to_array_uint8);
    4632             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_get1);
    4633             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_get_lengths);
    4634             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_get_lengths_int32);
    4635             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_get_lengths_int64);
    4636             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_get_row_ranges);
    4637             :   Py_CLEAR(clear_module_state->__pyx_n_s_lil_insert);
    4638             :   Py_CLEAR(clear_module_state->__pyx_n_s_longdouble);
    4639             :   Py_CLEAR(clear_module_state->__pyx_n_s_m);
    4640             :   Py_CLEAR(clear_module_state->__pyx_n_s_main);
    4641             :   Py_CLEAR(clear_module_state->__pyx_n_s_memview);
    4642             :   Py_CLEAR(clear_module_state->__pyx_n_s_mode);
    4643             :   Py_CLEAR(clear_module_state->__pyx_n_s_name);
    4644             :   Py_CLEAR(clear_module_state->__pyx_n_s_name_2);
    4645             :   Py_CLEAR(clear_module_state->__pyx_n_s_ndim);
    4646             :   Py_CLEAR(clear_module_state->__pyx_n_s_new);
    4647             :   Py_CLEAR(clear_module_state->__pyx_n_s_new_data);
    4648             :   Py_CLEAR(clear_module_state->__pyx_n_s_new_datas);
    4649             :   Py_CLEAR(clear_module_state->__pyx_n_s_new_row);
    4650             :   Py_CLEAR(clear_module_state->__pyx_n_s_new_rows);
    4651             :   Py_CLEAR(clear_module_state->__pyx_n_s_nj);
    4652             :   Py_CLEAR(clear_module_state->__pyx_n_s_nk);
    4653             :   Py_CLEAR(clear_module_state->__pyx_kp_s_no_default___reduce___due_to_non);
    4654             :   Py_CLEAR(clear_module_state->__pyx_n_s_np);
    4655             :   Py_CLEAR(clear_module_state->__pyx_n_s_numpy);
    4656             :   Py_CLEAR(clear_module_state->__pyx_kp_u_numpy__core_multiarray_failed_to);
    4657             :   Py_CLEAR(clear_module_state->__pyx_kp_u_numpy__core_umath_failed_to_impo);
    4658             :   Py_CLEAR(clear_module_state->__pyx_n_s_obj);
    4659             :   Py_CLEAR(clear_module_state->__pyx_n_s_object);
    4660             :   Py_CLEAR(clear_module_state->__pyx_kp_u_out_of_bounds);
    4661             :   Py_CLEAR(clear_module_state->__pyx_kp_u_out_of_bounds_2);
    4662             :   Py_CLEAR(clear_module_state->__pyx_n_s_output);
    4663             :   Py_CLEAR(clear_module_state->__pyx_n_s_p);
    4664             :   Py_CLEAR(clear_module_state->__pyx_n_s_pack);
    4665             :   Py_CLEAR(clear_module_state->__pyx_n_s_pickle);
    4666             :   Py_CLEAR(clear_module_state->__pyx_n_s_pos);
    4667             :   Py_CLEAR(clear_module_state->__pyx_n_s_pyx_PickleError);
    4668             :   Py_CLEAR(clear_module_state->__pyx_n_s_pyx_checksum);
    4669             :   Py_CLEAR(clear_module_state->__pyx_n_s_pyx_result);
    4670             :   Py_CLEAR(clear_module_state->__pyx_n_s_pyx_state);
    4671             :   Py_CLEAR(clear_module_state->__pyx_n_s_pyx_type);
    4672             :   Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Enum);
    4673             :   Py_CLEAR(clear_module_state->__pyx_n_s_pyx_vtable);
    4674             :   Py_CLEAR(clear_module_state->__pyx_n_s_r);
    4675             :   Py_CLEAR(clear_module_state->__pyx_n_s_range);
    4676             :   Py_CLEAR(clear_module_state->__pyx_n_s_reduce);
    4677             :   Py_CLEAR(clear_module_state->__pyx_n_s_reduce_cython);
    4678             :   Py_CLEAR(clear_module_state->__pyx_n_s_reduce_ex);
    4679             :   Py_CLEAR(clear_module_state->__pyx_n_s_register);
    4680             :   Py_CLEAR(clear_module_state->__pyx_n_s_row);
    4681             :   Py_CLEAR(clear_module_state->__pyx_kp_u_row_index);
    4682             :   Py_CLEAR(clear_module_state->__pyx_kp_u_row_index_2);
    4683             :   Py_CLEAR(clear_module_state->__pyx_n_s_rows);
    4684             :   Py_CLEAR(clear_module_state->__pyx_n_s_s);
    4685             :   Py_CLEAR(clear_module_state->__pyx_kp_s_scipy_sparse__csparsetools_pyx);
    4686             :   Py_CLEAR(clear_module_state->__pyx_n_s_setstate);
    4687             :   Py_CLEAR(clear_module_state->__pyx_n_s_setstate_cython);
    4688             :   Py_CLEAR(clear_module_state->__pyx_n_s_shape);
    4689             :   Py_CLEAR(clear_module_state->__pyx_n_s_signatures);
    4690             :   Py_CLEAR(clear_module_state->__pyx_n_s_size);
    4691             :   Py_CLEAR(clear_module_state->__pyx_n_s_spec);
    4692             :   Py_CLEAR(clear_module_state->__pyx_n_s_split);
    4693             :   Py_CLEAR(clear_module_state->__pyx_n_s_start);
    4694             :   Py_CLEAR(clear_module_state->__pyx_n_s_step);
    4695             :   Py_CLEAR(clear_module_state->__pyx_n_s_stop);
    4696             :   Py_CLEAR(clear_module_state->__pyx_kp_s_strided_and_direct);
    4697             :   Py_CLEAR(clear_module_state->__pyx_kp_s_strided_and_direct_or_indirect);
    4698             :   Py_CLEAR(clear_module_state->__pyx_kp_s_strided_and_indirect);
    4699             :   Py_CLEAR(clear_module_state->__pyx_kp_s_stringsource);
    4700             :   Py_CLEAR(clear_module_state->__pyx_n_s_strip);
    4701             :   Py_CLEAR(clear_module_state->__pyx_n_s_struct);
    4702             :   Py_CLEAR(clear_module_state->__pyx_n_s_sys);
    4703             :   Py_CLEAR(clear_module_state->__pyx_n_s_test);
    4704             :   Py_CLEAR(clear_module_state->__pyx_n_s_typecodes);
    4705             :   Py_CLEAR(clear_module_state->__pyx_n_s_uint16);
    4706             :   Py_CLEAR(clear_module_state->__pyx_n_s_uint32);
    4707             :   Py_CLEAR(clear_module_state->__pyx_n_s_uint64);
    4708             :   Py_CLEAR(clear_module_state->__pyx_n_s_uint8);
    4709             :   Py_CLEAR(clear_module_state->__pyx_kp_s_unable_to_allocate_array_data);
    4710             :   Py_CLEAR(clear_module_state->__pyx_kp_s_unable_to_allocate_shape_and_str);
    4711             :   Py_CLEAR(clear_module_state->__pyx_n_s_unpack);
    4712             :   Py_CLEAR(clear_module_state->__pyx_n_s_update);
    4713             :   Py_CLEAR(clear_module_state->__pyx_n_s_value);
    4714             :   Py_CLEAR(clear_module_state->__pyx_n_s_values);
    4715             :   Py_CLEAR(clear_module_state->__pyx_n_s_version_info);
    4716             :   Py_CLEAR(clear_module_state->__pyx_n_s_view);
    4717             :   Py_CLEAR(clear_module_state->__pyx_n_s_x);
    4718             :   Py_CLEAR(clear_module_state->__pyx_n_s_y);
    4719             :   Py_CLEAR(clear_module_state->__pyx_int_0);
    4720             :   Py_CLEAR(clear_module_state->__pyx_int_1);
    4721             :   Py_CLEAR(clear_module_state->__pyx_int_2);
    4722             :   Py_CLEAR(clear_module_state->__pyx_int_3);
    4723             :   Py_CLEAR(clear_module_state->__pyx_int_11);
    4724             :   Py_CLEAR(clear_module_state->__pyx_int_112105877);
    4725             :   Py_CLEAR(clear_module_state->__pyx_int_136983863);
    4726             :   Py_CLEAR(clear_module_state->__pyx_int_184977713);
    4727             :   Py_CLEAR(clear_module_state->__pyx_int_neg_1);
    4728             :   Py_CLEAR(clear_module_state->__pyx_slice__5);
    4729             :   Py_CLEAR(clear_module_state->__pyx_tuple__4);
    4730             :   Py_CLEAR(clear_module_state->__pyx_tuple__8);
    4731             :   Py_CLEAR(clear_module_state->__pyx_tuple__9);
    4732             :   Py_CLEAR(clear_module_state->__pyx_tuple__10);
    4733             :   Py_CLEAR(clear_module_state->__pyx_tuple__13);
    4734             :   Py_CLEAR(clear_module_state->__pyx_tuple__14);
    4735             :   Py_CLEAR(clear_module_state->__pyx_tuple__15);
    4736             :   Py_CLEAR(clear_module_state->__pyx_tuple__16);
    4737             :   Py_CLEAR(clear_module_state->__pyx_tuple__17);
    4738             :   Py_CLEAR(clear_module_state->__pyx_tuple__18);
    4739             :   Py_CLEAR(clear_module_state->__pyx_tuple__19);
    4740             :   Py_CLEAR(clear_module_state->__pyx_tuple__20);
    4741             :   Py_CLEAR(clear_module_state->__pyx_tuple__21);
    4742             :   Py_CLEAR(clear_module_state->__pyx_tuple__22);
    4743             :   Py_CLEAR(clear_module_state->__pyx_tuple__23);
    4744             :   Py_CLEAR(clear_module_state->__pyx_tuple__24);
    4745             :   Py_CLEAR(clear_module_state->__pyx_tuple__25);
    4746             :   Py_CLEAR(clear_module_state->__pyx_tuple__27);
    4747             :   Py_CLEAR(clear_module_state->__pyx_tuple__29);
    4748             :   Py_CLEAR(clear_module_state->__pyx_tuple__31);
    4749             :   Py_CLEAR(clear_module_state->__pyx_tuple__33);
    4750             :   Py_CLEAR(clear_module_state->__pyx_tuple__37);
    4751             :   Py_CLEAR(clear_module_state->__pyx_tuple__53);
    4752             :   Py_CLEAR(clear_module_state->__pyx_tuple__55);
    4753             :   Py_CLEAR(clear_module_state->__pyx_tuple__58);
    4754             :   Py_CLEAR(clear_module_state->__pyx_tuple__60);
    4755             :   Py_CLEAR(clear_module_state->__pyx_tuple__91);
    4756             :   Py_CLEAR(clear_module_state->__pyx_codeobj__26);
    4757             :   Py_CLEAR(clear_module_state->__pyx_codeobj__28);
    4758             :   Py_CLEAR(clear_module_state->__pyx_codeobj__30);
    4759             :   Py_CLEAR(clear_module_state->__pyx_codeobj__32);
    4760             :   Py_CLEAR(clear_module_state->__pyx_codeobj__34);
    4761             :   Py_CLEAR(clear_module_state->__pyx_codeobj__35);
    4762             :   Py_CLEAR(clear_module_state->__pyx_codeobj__36);
    4763             :   Py_CLEAR(clear_module_state->__pyx_codeobj__38);
    4764             :   Py_CLEAR(clear_module_state->__pyx_codeobj__39);
    4765             :   Py_CLEAR(clear_module_state->__pyx_codeobj__40);
    4766             :   Py_CLEAR(clear_module_state->__pyx_codeobj__41);
    4767             :   Py_CLEAR(clear_module_state->__pyx_codeobj__42);
    4768             :   Py_CLEAR(clear_module_state->__pyx_codeobj__43);
    4769             :   Py_CLEAR(clear_module_state->__pyx_codeobj__44);
    4770             :   Py_CLEAR(clear_module_state->__pyx_codeobj__45);
    4771             :   Py_CLEAR(clear_module_state->__pyx_codeobj__46);
    4772             :   Py_CLEAR(clear_module_state->__pyx_codeobj__47);
    4773             :   Py_CLEAR(clear_module_state->__pyx_codeobj__48);
    4774             :   Py_CLEAR(clear_module_state->__pyx_codeobj__49);
    4775             :   Py_CLEAR(clear_module_state->__pyx_codeobj__50);
    4776             :   Py_CLEAR(clear_module_state->__pyx_codeobj__51);
    4777             :   Py_CLEAR(clear_module_state->__pyx_codeobj__52);
    4778             :   Py_CLEAR(clear_module_state->__pyx_codeobj__54);
    4779             :   Py_CLEAR(clear_module_state->__pyx_codeobj__56);
    4780             :   Py_CLEAR(clear_module_state->__pyx_codeobj__57);
    4781             :   Py_CLEAR(clear_module_state->__pyx_codeobj__59);
    4782             :   Py_CLEAR(clear_module_state->__pyx_codeobj__61);
    4783             :   Py_CLEAR(clear_module_state->__pyx_codeobj__62);
    4784             :   Py_CLEAR(clear_module_state->__pyx_codeobj__63);
    4785             :   Py_CLEAR(clear_module_state->__pyx_codeobj__64);
    4786             :   Py_CLEAR(clear_module_state->__pyx_codeobj__65);
    4787             :   Py_CLEAR(clear_module_state->__pyx_codeobj__66);
    4788             :   Py_CLEAR(clear_module_state->__pyx_codeobj__67);
    4789             :   Py_CLEAR(clear_module_state->__pyx_codeobj__68);
    4790             :   Py_CLEAR(clear_module_state->__pyx_codeobj__69);
    4791             :   Py_CLEAR(clear_module_state->__pyx_codeobj__70);
    4792             :   Py_CLEAR(clear_module_state->__pyx_codeobj__71);
    4793             :   Py_CLEAR(clear_module_state->__pyx_codeobj__72);
    4794             :   Py_CLEAR(clear_module_state->__pyx_codeobj__73);
    4795             :   Py_CLEAR(clear_module_state->__pyx_codeobj__74);
    4796             :   Py_CLEAR(clear_module_state->__pyx_codeobj__75);
    4797             :   Py_CLEAR(clear_module_state->__pyx_codeobj__76);
    4798             :   Py_CLEAR(clear_module_state->__pyx_codeobj__77);
    4799             :   Py_CLEAR(clear_module_state->__pyx_codeobj__78);
    4800             :   Py_CLEAR(clear_module_state->__pyx_codeobj__79);
    4801             :   Py_CLEAR(clear_module_state->__pyx_codeobj__80);
    4802             :   Py_CLEAR(clear_module_state->__pyx_codeobj__81);
    4803             :   Py_CLEAR(clear_module_state->__pyx_codeobj__82);
    4804             :   Py_CLEAR(clear_module_state->__pyx_codeobj__83);
    4805             :   Py_CLEAR(clear_module_state->__pyx_codeobj__84);
    4806             :   Py_CLEAR(clear_module_state->__pyx_codeobj__85);
    4807             :   Py_CLEAR(clear_module_state->__pyx_codeobj__86);
    4808             :   Py_CLEAR(clear_module_state->__pyx_codeobj__87);
    4809             :   Py_CLEAR(clear_module_state->__pyx_codeobj__88);
    4810             :   Py_CLEAR(clear_module_state->__pyx_codeobj__89);
    4811             :   Py_CLEAR(clear_module_state->__pyx_codeobj__90);
    4812             :   Py_CLEAR(clear_module_state->__pyx_codeobj__92);
    4813             :   return 0;
    4814             : }
    4815             : #endif
    4816             : /* #### Code section: module_state_traverse ### */
    4817             : #if CYTHON_USE_MODULE_STATE
    4818             : static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
    4819             :   __pyx_mstate *traverse_module_state = __pyx_mstate(m);
    4820             :   if (!traverse_module_state) return 0;
    4821             :   Py_VISIT(traverse_module_state->__pyx_d);
    4822             :   Py_VISIT(traverse_module_state->__pyx_b);
    4823             :   Py_VISIT(traverse_module_state->__pyx_cython_runtime);
    4824             :   Py_VISIT(traverse_module_state->__pyx_empty_tuple);
    4825             :   Py_VISIT(traverse_module_state->__pyx_empty_bytes);
    4826             :   Py_VISIT(traverse_module_state->__pyx_empty_unicode);
    4827             :   #ifdef __Pyx_CyFunction_USED
    4828             :   Py_VISIT(traverse_module_state->__pyx_CyFunctionType);
    4829             :   #endif
    4830             :   #ifdef __Pyx_FusedFunction_USED
    4831             :   Py_VISIT(traverse_module_state->__pyx_FusedFunctionType);
    4832             :   #endif
    4833             :   Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4type_type);
    4834             :   Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_dtype);
    4835             :   Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flatiter);
    4836             :   Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_broadcast);
    4837             :   Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ndarray);
    4838             :   Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_generic);
    4839             :   Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_number);
    4840             :   Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_integer);
    4841             :   Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_signedinteger);
    4842             :   Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_unsignedinteger);
    4843             :   Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_inexact);
    4844             :   Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_floating);
    4845             :   Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_complexfloating);
    4846             :   Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flexible);
    4847             :   Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_character);
    4848             :   Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ufunc);
    4849             :   Py_VISIT(traverse_module_state->__pyx_array_type);
    4850             :   Py_VISIT(traverse_module_state->__pyx_type___pyx_array);
    4851             :   Py_VISIT(traverse_module_state->__pyx_MemviewEnum_type);
    4852             :   Py_VISIT(traverse_module_state->__pyx_type___pyx_MemviewEnum);
    4853             :   Py_VISIT(traverse_module_state->__pyx_memoryview_type);
    4854             :   Py_VISIT(traverse_module_state->__pyx_type___pyx_memoryview);
    4855             :   Py_VISIT(traverse_module_state->__pyx_memoryviewslice_type);
    4856             :   Py_VISIT(traverse_module_state->__pyx_type___pyx_memoryviewslice);
    4857             :   Py_VISIT(traverse_module_state->__pyx_kp_u_);
    4858             :   Py_VISIT(traverse_module_state->__pyx_n_s_ASCII);
    4859             :   Py_VISIT(traverse_module_state->__pyx_n_u_All);
    4860             :   Py_VISIT(traverse_module_state->__pyx_kp_s_All_dimensions_preceding_dimensi);
    4861             :   Py_VISIT(traverse_module_state->__pyx_n_s_AssertionError);
    4862             :   Py_VISIT(traverse_module_state->__pyx_kp_s_Buffer_view_does_not_expose_stri);
    4863             :   Py_VISIT(traverse_module_state->__pyx_kp_s_Can_only_create_a_buffer_that_is);
    4864             :   Py_VISIT(traverse_module_state->__pyx_kp_s_Cannot_assign_to_read_only_memor);
    4865             :   Py_VISIT(traverse_module_state->__pyx_kp_s_Cannot_create_writable_memory_vi);
    4866             :   Py_VISIT(traverse_module_state->__pyx_kp_u_Cannot_index_with_type);
    4867             :   Py_VISIT(traverse_module_state->__pyx_kp_s_Cannot_transpose_memoryview_with);
    4868             :   Py_VISIT(traverse_module_state->__pyx_kp_s_Dimension_d_is_not_direct);
    4869             :   Py_VISIT(traverse_module_state->__pyx_n_s_Ellipsis);
    4870             :   Py_VISIT(traverse_module_state->__pyx_kp_s_Empty_shape_tuple_for_cython_arr);
    4871             :   Py_VISIT(traverse_module_state->__pyx_kp_s_Expected_at_least_d_argument_s_g);
    4872             :   Py_VISIT(traverse_module_state->__pyx_kp_s_Function_call_with_ambiguous_arg);
    4873             :   Py_VISIT(traverse_module_state->__pyx_n_s_ImportError);
    4874             :   Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0);
    4875             :   Py_VISIT(traverse_module_state->__pyx_n_s_IndexError);
    4876             :   Py_VISIT(traverse_module_state->__pyx_kp_s_Index_out_of_bounds_axis_d);
    4877             :   Py_VISIT(traverse_module_state->__pyx_kp_s_Indirect_dimensions_not_supporte);
    4878             :   Py_VISIT(traverse_module_state->__pyx_n_u_Integer);
    4879             :   Py_VISIT(traverse_module_state->__pyx_kp_u_Invalid_mode_expected_c_or_fortr);
    4880             :   Py_VISIT(traverse_module_state->__pyx_kp_u_Invalid_shape_in_axis);
    4881             :   Py_VISIT(traverse_module_state->__pyx_n_s_M);
    4882             :   Py_VISIT(traverse_module_state->__pyx_n_s_MemoryError);
    4883             :   Py_VISIT(traverse_module_state->__pyx_kp_s_MemoryView_of_r_at_0x_x);
    4884             :   Py_VISIT(traverse_module_state->__pyx_kp_s_MemoryView_of_r_object);
    4885             :   Py_VISIT(traverse_module_state->__pyx_n_s_N);
    4886             :   Py_VISIT(traverse_module_state->__pyx_kp_s_No_matching_signature_found);
    4887             :   Py_VISIT(traverse_module_state->__pyx_n_b_O);
    4888             :   Py_VISIT(traverse_module_state->__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
    4889             :   Py_VISIT(traverse_module_state->__pyx_n_s_PickleError);
    4890             :   Py_VISIT(traverse_module_state->__pyx_n_u_SUVO);
    4891             :   Py_VISIT(traverse_module_state->__pyx_n_s_Sequence);
    4892             :   Py_VISIT(traverse_module_state->__pyx_kp_s_Step_may_not_be_zero_axis_d);
    4893             :   Py_VISIT(traverse_module_state->__pyx_n_s_TypeError);
    4894             :   Py_VISIT(traverse_module_state->__pyx_kp_s_Unable_to_convert_item_to_object);
    4895             :   Py_VISIT(traverse_module_state->__pyx_n_s_ValueError);
    4896             :   Py_VISIT(traverse_module_state->__pyx_n_s_View_MemoryView);
    4897             :   Py_VISIT(traverse_module_state->__pyx_kp_s__11);
    4898             :   Py_VISIT(traverse_module_state->__pyx_kp_s__12);
    4899             :   Py_VISIT(traverse_module_state->__pyx_kp_u__12);
    4900             :   Py_VISIT(traverse_module_state->__pyx_kp_u__2);
    4901             :   Py_VISIT(traverse_module_state->__pyx_n_s__3);
    4902             :   Py_VISIT(traverse_module_state->__pyx_kp_u__6);
    4903             :   Py_VISIT(traverse_module_state->__pyx_kp_u__7);
    4904             :   Py_VISIT(traverse_module_state->__pyx_n_s__93);
    4905             :   Py_VISIT(traverse_module_state->__pyx_n_s_a);
    4906             :   Py_VISIT(traverse_module_state->__pyx_n_s_abc);
    4907             :   Py_VISIT(traverse_module_state->__pyx_n_s_allocate_buffer);
    4908             :   Py_VISIT(traverse_module_state->__pyx_kp_u_and);
    4909             :   Py_VISIT(traverse_module_state->__pyx_n_s_args);
    4910             :   Py_VISIT(traverse_module_state->__pyx_n_s_asyncio_coroutines);
    4911             :   Py_VISIT(traverse_module_state->__pyx_n_s_b);
    4912             :   Py_VISIT(traverse_module_state->__pyx_n_s_base);
    4913             :   Py_VISIT(traverse_module_state->__pyx_n_s_bool);
    4914             :   Py_VISIT(traverse_module_state->__pyx_n_s_c);
    4915             :   Py_VISIT(traverse_module_state->__pyx_n_u_c);
    4916             :   Py_VISIT(traverse_module_state->__pyx_kp_u_cannot_index_with_zero_stride);
    4917             :   Py_VISIT(traverse_module_state->__pyx_n_s_class);
    4918             :   Py_VISIT(traverse_module_state->__pyx_n_s_class_getitem);
    4919             :   Py_VISIT(traverse_module_state->__pyx_n_s_cline_in_traceback);
    4920             :   Py_VISIT(traverse_module_state->__pyx_n_s_clongdouble);
    4921             :   Py_VISIT(traverse_module_state->__pyx_n_s_collections);
    4922             :   Py_VISIT(traverse_module_state->__pyx_kp_s_collections_abc);
    4923             :   Py_VISIT(traverse_module_state->__pyx_kp_u_column_index);
    4924             :   Py_VISIT(traverse_module_state->__pyx_n_s_complex128);
    4925             :   Py_VISIT(traverse_module_state->__pyx_n_s_complex64);
    4926             :   Py_VISIT(traverse_module_state->__pyx_kp_s_contiguous_and_direct);
    4927             :   Py_VISIT(traverse_module_state->__pyx_kp_s_contiguous_and_indirect);
    4928             :   Py_VISIT(traverse_module_state->__pyx_n_s_count);
    4929             :   Py_VISIT(traverse_module_state->__pyx_n_s_csparsetools);
    4930             :   Py_VISIT(traverse_module_state->__pyx_n_s_cur_data);
    4931             :   Py_VISIT(traverse_module_state->__pyx_n_s_cur_row);
    4932             :   Py_VISIT(traverse_module_state->__pyx_n_u_d);
    4933             :   Py_VISIT(traverse_module_state->__pyx_n_s_data);
    4934             :   Py_VISIT(traverse_module_state->__pyx_n_s_datas);
    4935             :   Py_VISIT(traverse_module_state->__pyx_n_s_defaults);
    4936             :   Py_VISIT(traverse_module_state->__pyx_n_s_dict);
    4937             :   Py_VISIT(traverse_module_state->__pyx_kp_u_disable);
    4938             :   Py_VISIT(traverse_module_state->__pyx_n_s_double);
    4939             :   Py_VISIT(traverse_module_state->__pyx_n_s_dtype);
    4940             :   Py_VISIT(traverse_module_state->__pyx_n_s_dtype_is_object);
    4941             :   Py_VISIT(traverse_module_state->__pyx_kp_u_enable);
    4942             :   Py_VISIT(traverse_module_state->__pyx_n_s_encode);
    4943             :   Py_VISIT(traverse_module_state->__pyx_n_s_enumerate);
    4944             :   Py_VISIT(traverse_module_state->__pyx_n_s_error);
    4945             :   Py_VISIT(traverse_module_state->__pyx_n_s_flags);
    4946             :   Py_VISIT(traverse_module_state->__pyx_n_s_float32);
    4947             :   Py_VISIT(traverse_module_state->__pyx_n_s_float64);
    4948             :   Py_VISIT(traverse_module_state->__pyx_n_s_format);
    4949             :   Py_VISIT(traverse_module_state->__pyx_n_s_fortran);
    4950             :   Py_VISIT(traverse_module_state->__pyx_n_u_fortran);
    4951             :   Py_VISIT(traverse_module_state->__pyx_n_s_fused_sigindex);
    4952             :   Py_VISIT(traverse_module_state->__pyx_kp_u_gc);
    4953             :   Py_VISIT(traverse_module_state->__pyx_n_s_get);
    4954             :   Py_VISIT(traverse_module_state->__pyx_n_s_getstate);
    4955             :   Py_VISIT(traverse_module_state->__pyx_kp_u_got);
    4956             :   Py_VISIT(traverse_module_state->__pyx_kp_u_got_differing_extents_in_dimensi);
    4957             :   Py_VISIT(traverse_module_state->__pyx_n_s_i);
    4958             :   Py_VISIT(traverse_module_state->__pyx_n_s_i_idx);
    4959             :   Py_VISIT(traverse_module_state->__pyx_n_s_id);
    4960             :   Py_VISIT(traverse_module_state->__pyx_n_s_import);
    4961             :   Py_VISIT(traverse_module_state->__pyx_n_s_index);
    4962             :   Py_VISIT(traverse_module_state->__pyx_n_s_initializing);
    4963             :   Py_VISIT(traverse_module_state->__pyx_n_s_input);
    4964             :   Py_VISIT(traverse_module_state->__pyx_n_s_int16);
    4965             :   Py_VISIT(traverse_module_state->__pyx_n_s_int32);
    4966             :   Py_VISIT(traverse_module_state->__pyx_n_s_int64);
    4967             :   Py_VISIT(traverse_module_state->__pyx_n_s_int8);
    4968             :   Py_VISIT(traverse_module_state->__pyx_n_s_irows);
    4969             :   Py_VISIT(traverse_module_state->__pyx_n_s_is_coroutine);
    4970             :   Py_VISIT(traverse_module_state->__pyx_kp_u_isenabled);
    4971             :   Py_VISIT(traverse_module_state->__pyx_n_s_items);
    4972             :   Py_VISIT(traverse_module_state->__pyx_n_s_itemsize);
    4973             :   Py_VISIT(traverse_module_state->__pyx_kp_s_itemsize_0_for_cython_array);
    4974             :   Py_VISIT(traverse_module_state->__pyx_n_s_j);
    4975             :   Py_VISIT(traverse_module_state->__pyx_n_s_j_idx);
    4976             :   Py_VISIT(traverse_module_state->__pyx_n_s_j_start);
    4977             :   Py_VISIT(traverse_module_state->__pyx_n_s_j_stop);
    4978             :   Py_VISIT(traverse_module_state->__pyx_n_s_j_stride);
    4979             :   Py_VISIT(traverse_module_state->__pyx_n_s_k);
    4980             :   Py_VISIT(traverse_module_state->__pyx_n_s_kind);
    4981             :   Py_VISIT(traverse_module_state->__pyx_n_s_kwargs);
    4982             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_get);
    4983             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_get_int32);
    4984             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_get_int64);
    4985             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set);
    4986             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int32_bool);
    4987             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int32_clongdouble);
    4988             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int32_complex128);
    4989             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int32_complex64);
    4990             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int32_float32);
    4991             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int32_float64);
    4992             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int32_int16);
    4993             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int32_int32);
    4994             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int32_int64);
    4995             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int32_int8);
    4996             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int32_longdouble);
    4997             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int32_uint16);
    4998             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int32_uint32);
    4999             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int32_uint64);
    5000             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int32_uint8);
    5001             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int64_bool);
    5002             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int64_clongdouble);
    5003             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int64_complex128);
    5004             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int64_complex64);
    5005             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int64_float32);
    5006             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int64_float64);
    5007             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int64_int16);
    5008             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int64_int32);
    5009             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int64_int64);
    5010             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int64_int8);
    5011             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int64_longdouble);
    5012             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int64_uint16);
    5013             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int64_uint32);
    5014             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int64_uint64);
    5015             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_fancy_set_int64_uint8);
    5016             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_flatten_to_array);
    5017             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_flatten_to_array_bool);
    5018             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_flatten_to_array_clongdoubl);
    5019             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_flatten_to_array_complex128);
    5020             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_flatten_to_array_complex64);
    5021             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_flatten_to_array_float32);
    5022             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_flatten_to_array_float64);
    5023             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_flatten_to_array_int16);
    5024             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_flatten_to_array_int32);
    5025             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_flatten_to_array_int64);
    5026             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_flatten_to_array_int8);
    5027             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_flatten_to_array_longdouble);
    5028             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_flatten_to_array_uint16);
    5029             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_flatten_to_array_uint32);
    5030             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_flatten_to_array_uint64);
    5031             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_flatten_to_array_uint8);
    5032             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_get1);
    5033             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_get_lengths);
    5034             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_get_lengths_int32);
    5035             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_get_lengths_int64);
    5036             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_get_row_ranges);
    5037             :   Py_VISIT(traverse_module_state->__pyx_n_s_lil_insert);
    5038             :   Py_VISIT(traverse_module_state->__pyx_n_s_longdouble);
    5039             :   Py_VISIT(traverse_module_state->__pyx_n_s_m);
    5040             :   Py_VISIT(traverse_module_state->__pyx_n_s_main);
    5041             :   Py_VISIT(traverse_module_state->__pyx_n_s_memview);
    5042             :   Py_VISIT(traverse_module_state->__pyx_n_s_mode);
    5043             :   Py_VISIT(traverse_module_state->__pyx_n_s_name);
    5044             :   Py_VISIT(traverse_module_state->__pyx_n_s_name_2);
    5045             :   Py_VISIT(traverse_module_state->__pyx_n_s_ndim);
    5046             :   Py_VISIT(traverse_module_state->__pyx_n_s_new);
    5047             :   Py_VISIT(traverse_module_state->__pyx_n_s_new_data);
    5048             :   Py_VISIT(traverse_module_state->__pyx_n_s_new_datas);
    5049             :   Py_VISIT(traverse_module_state->__pyx_n_s_new_row);
    5050             :   Py_VISIT(traverse_module_state->__pyx_n_s_new_rows);
    5051             :   Py_VISIT(traverse_module_state->__pyx_n_s_nj);
    5052             :   Py_VISIT(traverse_module_state->__pyx_n_s_nk);
    5053             :   Py_VISIT(traverse_module_state->__pyx_kp_s_no_default___reduce___due_to_non);
    5054             :   Py_VISIT(traverse_module_state->__pyx_n_s_np);
    5055             :   Py_VISIT(traverse_module_state->__pyx_n_s_numpy);
    5056             :   Py_VISIT(traverse_module_state->__pyx_kp_u_numpy__core_multiarray_failed_to);
    5057             :   Py_VISIT(traverse_module_state->__pyx_kp_u_numpy__core_umath_failed_to_impo);
    5058             :   Py_VISIT(traverse_module_state->__pyx_n_s_obj);
    5059             :   Py_VISIT(traverse_module_state->__pyx_n_s_object);
    5060             :   Py_VISIT(traverse_module_state->__pyx_kp_u_out_of_bounds);
    5061             :   Py_VISIT(traverse_module_state->__pyx_kp_u_out_of_bounds_2);
    5062             :   Py_VISIT(traverse_module_state->__pyx_n_s_output);
    5063             :   Py_VISIT(traverse_module_state->__pyx_n_s_p);
    5064             :   Py_VISIT(traverse_module_state->__pyx_n_s_pack);
    5065             :   Py_VISIT(traverse_module_state->__pyx_n_s_pickle);
    5066             :   Py_VISIT(traverse_module_state->__pyx_n_s_pos);
    5067             :   Py_VISIT(traverse_module_state->__pyx_n_s_pyx_PickleError);
    5068             :   Py_VISIT(traverse_module_state->__pyx_n_s_pyx_checksum);
    5069             :   Py_VISIT(traverse_module_state->__pyx_n_s_pyx_result);
    5070             :   Py_VISIT(traverse_module_state->__pyx_n_s_pyx_state);
    5071             :   Py_VISIT(traverse_module_state->__pyx_n_s_pyx_type);
    5072             :   Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Enum);
    5073             :   Py_VISIT(traverse_module_state->__pyx_n_s_pyx_vtable);
    5074             :   Py_VISIT(traverse_module_state->__pyx_n_s_r);
    5075             :   Py_VISIT(traverse_module_state->__pyx_n_s_range);
    5076             :   Py_VISIT(traverse_module_state->__pyx_n_s_reduce);
    5077             :   Py_VISIT(traverse_module_state->__pyx_n_s_reduce_cython);
    5078             :   Py_VISIT(traverse_module_state->__pyx_n_s_reduce_ex);
    5079             :   Py_VISIT(traverse_module_state->__pyx_n_s_register);
    5080             :   Py_VISIT(traverse_module_state->__pyx_n_s_row);
    5081             :   Py_VISIT(traverse_module_state->__pyx_kp_u_row_index);
    5082             :   Py_VISIT(traverse_module_state->__pyx_kp_u_row_index_2);
    5083             :   Py_VISIT(traverse_module_state->__pyx_n_s_rows);
    5084             :   Py_VISIT(traverse_module_state->__pyx_n_s_s);
    5085             :   Py_VISIT(traverse_module_state->__pyx_kp_s_scipy_sparse__csparsetools_pyx);
    5086             :   Py_VISIT(traverse_module_state->__pyx_n_s_setstate);
    5087             :   Py_VISIT(traverse_module_state->__pyx_n_s_setstate_cython);
    5088             :   Py_VISIT(traverse_module_state->__pyx_n_s_shape);
    5089             :   Py_VISIT(traverse_module_state->__pyx_n_s_signatures);
    5090             :   Py_VISIT(traverse_module_state->__pyx_n_s_size);
    5091             :   Py_VISIT(traverse_module_state->__pyx_n_s_spec);
    5092             :   Py_VISIT(traverse_module_state->__pyx_n_s_split);
    5093             :   Py_VISIT(traverse_module_state->__pyx_n_s_start);
    5094             :   Py_VISIT(traverse_module_state->__pyx_n_s_step);
    5095             :   Py_VISIT(traverse_module_state->__pyx_n_s_stop);
    5096             :   Py_VISIT(traverse_module_state->__pyx_kp_s_strided_and_direct);
    5097             :   Py_VISIT(traverse_module_state->__pyx_kp_s_strided_and_direct_or_indirect);
    5098             :   Py_VISIT(traverse_module_state->__pyx_kp_s_strided_and_indirect);
    5099             :   Py_VISIT(traverse_module_state->__pyx_kp_s_stringsource);
    5100             :   Py_VISIT(traverse_module_state->__pyx_n_s_strip);
    5101             :   Py_VISIT(traverse_module_state->__pyx_n_s_struct);
    5102             :   Py_VISIT(traverse_module_state->__pyx_n_s_sys);
    5103             :   Py_VISIT(traverse_module_state->__pyx_n_s_test);
    5104             :   Py_VISIT(traverse_module_state->__pyx_n_s_typecodes);
    5105             :   Py_VISIT(traverse_module_state->__pyx_n_s_uint16);
    5106             :   Py_VISIT(traverse_module_state->__pyx_n_s_uint32);
    5107             :   Py_VISIT(traverse_module_state->__pyx_n_s_uint64);
    5108             :   Py_VISIT(traverse_module_state->__pyx_n_s_uint8);
    5109             :   Py_VISIT(traverse_module_state->__pyx_kp_s_unable_to_allocate_array_data);
    5110             :   Py_VISIT(traverse_module_state->__pyx_kp_s_unable_to_allocate_shape_and_str);
    5111             :   Py_VISIT(traverse_module_state->__pyx_n_s_unpack);
    5112             :   Py_VISIT(traverse_module_state->__pyx_n_s_update);
    5113             :   Py_VISIT(traverse_module_state->__pyx_n_s_value);
    5114             :   Py_VISIT(traverse_module_state->__pyx_n_s_values);
    5115             :   Py_VISIT(traverse_module_state->__pyx_n_s_version_info);
    5116             :   Py_VISIT(traverse_module_state->__pyx_n_s_view);
    5117             :   Py_VISIT(traverse_module_state->__pyx_n_s_x);
    5118             :   Py_VISIT(traverse_module_state->__pyx_n_s_y);
    5119             :   Py_VISIT(traverse_module_state->__pyx_int_0);
    5120             :   Py_VISIT(traverse_module_state->__pyx_int_1);
    5121             :   Py_VISIT(traverse_module_state->__pyx_int_2);
    5122             :   Py_VISIT(traverse_module_state->__pyx_int_3);
    5123             :   Py_VISIT(traverse_module_state->__pyx_int_11);
    5124             :   Py_VISIT(traverse_module_state->__pyx_int_112105877);
    5125             :   Py_VISIT(traverse_module_state->__pyx_int_136983863);
    5126             :   Py_VISIT(traverse_module_state->__pyx_int_184977713);
    5127             :   Py_VISIT(traverse_module_state->__pyx_int_neg_1);
    5128             :   Py_VISIT(traverse_module_state->__pyx_slice__5);
    5129             :   Py_VISIT(traverse_module_state->__pyx_tuple__4);
    5130             :   Py_VISIT(traverse_module_state->__pyx_tuple__8);
    5131             :   Py_VISIT(traverse_module_state->__pyx_tuple__9);
    5132             :   Py_VISIT(traverse_module_state->__pyx_tuple__10);
    5133             :   Py_VISIT(traverse_module_state->__pyx_tuple__13);
    5134             :   Py_VISIT(traverse_module_state->__pyx_tuple__14);
    5135             :   Py_VISIT(traverse_module_state->__pyx_tuple__15);
    5136             :   Py_VISIT(traverse_module_state->__pyx_tuple__16);
    5137             :   Py_VISIT(traverse_module_state->__pyx_tuple__17);
    5138             :   Py_VISIT(traverse_module_state->__pyx_tuple__18);
    5139             :   Py_VISIT(traverse_module_state->__pyx_tuple__19);
    5140             :   Py_VISIT(traverse_module_state->__pyx_tuple__20);
    5141             :   Py_VISIT(traverse_module_state->__pyx_tuple__21);
    5142             :   Py_VISIT(traverse_module_state->__pyx_tuple__22);
    5143             :   Py_VISIT(traverse_module_state->__pyx_tuple__23);
    5144             :   Py_VISIT(traverse_module_state->__pyx_tuple__24);
    5145             :   Py_VISIT(traverse_module_state->__pyx_tuple__25);
    5146             :   Py_VISIT(traverse_module_state->__pyx_tuple__27);
    5147             :   Py_VISIT(traverse_module_state->__pyx_tuple__29);
    5148             :   Py_VISIT(traverse_module_state->__pyx_tuple__31);
    5149             :   Py_VISIT(traverse_module_state->__pyx_tuple__33);
    5150             :   Py_VISIT(traverse_module_state->__pyx_tuple__37);
    5151             :   Py_VISIT(traverse_module_state->__pyx_tuple__53);
    5152             :   Py_VISIT(traverse_module_state->__pyx_tuple__55);
    5153             :   Py_VISIT(traverse_module_state->__pyx_tuple__58);
    5154             :   Py_VISIT(traverse_module_state->__pyx_tuple__60);
    5155             :   Py_VISIT(traverse_module_state->__pyx_tuple__91);
    5156             :   Py_VISIT(traverse_module_state->__pyx_codeobj__26);
    5157             :   Py_VISIT(traverse_module_state->__pyx_codeobj__28);
    5158             :   Py_VISIT(traverse_module_state->__pyx_codeobj__30);
    5159             :   Py_VISIT(traverse_module_state->__pyx_codeobj__32);
    5160             :   Py_VISIT(traverse_module_state->__pyx_codeobj__34);
    5161             :   Py_VISIT(traverse_module_state->__pyx_codeobj__35);
    5162             :   Py_VISIT(traverse_module_state->__pyx_codeobj__36);
    5163             :   Py_VISIT(traverse_module_state->__pyx_codeobj__38);
    5164             :   Py_VISIT(traverse_module_state->__pyx_codeobj__39);
    5165             :   Py_VISIT(traverse_module_state->__pyx_codeobj__40);
    5166             :   Py_VISIT(traverse_module_state->__pyx_codeobj__41);
    5167             :   Py_VISIT(traverse_module_state->__pyx_codeobj__42);
    5168             :   Py_VISIT(traverse_module_state->__pyx_codeobj__43);
    5169             :   Py_VISIT(traverse_module_state->__pyx_codeobj__44);
    5170             :   Py_VISIT(traverse_module_state->__pyx_codeobj__45);
    5171             :   Py_VISIT(traverse_module_state->__pyx_codeobj__46);
    5172             :   Py_VISIT(traverse_module_state->__pyx_codeobj__47);
    5173             :   Py_VISIT(traverse_module_state->__pyx_codeobj__48);
    5174             :   Py_VISIT(traverse_module_state->__pyx_codeobj__49);
    5175             :   Py_VISIT(traverse_module_state->__pyx_codeobj__50);
    5176             :   Py_VISIT(traverse_module_state->__pyx_codeobj__51);
    5177             :   Py_VISIT(traverse_module_state->__pyx_codeobj__52);
    5178             :   Py_VISIT(traverse_module_state->__pyx_codeobj__54);
    5179             :   Py_VISIT(traverse_module_state->__pyx_codeobj__56);
    5180             :   Py_VISIT(traverse_module_state->__pyx_codeobj__57);
    5181             :   Py_VISIT(traverse_module_state->__pyx_codeobj__59);
    5182             :   Py_VISIT(traverse_module_state->__pyx_codeobj__61);
    5183             :   Py_VISIT(traverse_module_state->__pyx_codeobj__62);
    5184             :   Py_VISIT(traverse_module_state->__pyx_codeobj__63);
    5185             :   Py_VISIT(traverse_module_state->__pyx_codeobj__64);
    5186             :   Py_VISIT(traverse_module_state->__pyx_codeobj__65);
    5187             :   Py_VISIT(traverse_module_state->__pyx_codeobj__66);
    5188             :   Py_VISIT(traverse_module_state->__pyx_codeobj__67);
    5189             :   Py_VISIT(traverse_module_state->__pyx_codeobj__68);
    5190             :   Py_VISIT(traverse_module_state->__pyx_codeobj__69);
    5191             :   Py_VISIT(traverse_module_state->__pyx_codeobj__70);
    5192             :   Py_VISIT(traverse_module_state->__pyx_codeobj__71);
    5193             :   Py_VISIT(traverse_module_state->__pyx_codeobj__72);
    5194             :   Py_VISIT(traverse_module_state->__pyx_codeobj__73);
    5195             :   Py_VISIT(traverse_module_state->__pyx_codeobj__74);
    5196             :   Py_VISIT(traverse_module_state->__pyx_codeobj__75);
    5197             :   Py_VISIT(traverse_module_state->__pyx_codeobj__76);
    5198             :   Py_VISIT(traverse_module_state->__pyx_codeobj__77);
    5199             :   Py_VISIT(traverse_module_state->__pyx_codeobj__78);
    5200             :   Py_VISIT(traverse_module_state->__pyx_codeobj__79);
    5201             :   Py_VISIT(traverse_module_state->__pyx_codeobj__80);
    5202             :   Py_VISIT(traverse_module_state->__pyx_codeobj__81);
    5203             :   Py_VISIT(traverse_module_state->__pyx_codeobj__82);
    5204             :   Py_VISIT(traverse_module_state->__pyx_codeobj__83);
    5205             :   Py_VISIT(traverse_module_state->__pyx_codeobj__84);
    5206             :   Py_VISIT(traverse_module_state->__pyx_codeobj__85);
    5207             :   Py_VISIT(traverse_module_state->__pyx_codeobj__86);
    5208             :   Py_VISIT(traverse_module_state->__pyx_codeobj__87);
    5209             :   Py_VISIT(traverse_module_state->__pyx_codeobj__88);
    5210             :   Py_VISIT(traverse_module_state->__pyx_codeobj__89);
    5211             :   Py_VISIT(traverse_module_state->__pyx_codeobj__90);
    5212             :   Py_VISIT(traverse_module_state->__pyx_codeobj__92);
    5213             :   return 0;
    5214             : }
    5215             : #endif
    5216             : /* #### Code section: module_state_defines ### */
    5217             : #define __pyx_d __pyx_mstate_global->__pyx_d
    5218             : #define __pyx_b __pyx_mstate_global->__pyx_b
    5219             : #define __pyx_cython_runtime __pyx_mstate_global->__pyx_cython_runtime
    5220             : #define __pyx_empty_tuple __pyx_mstate_global->__pyx_empty_tuple
    5221             : #define __pyx_empty_bytes __pyx_mstate_global->__pyx_empty_bytes
    5222             : #define __pyx_empty_unicode __pyx_mstate_global->__pyx_empty_unicode
    5223             : #ifdef __Pyx_CyFunction_USED
    5224             : #define __pyx_CyFunctionType __pyx_mstate_global->__pyx_CyFunctionType
    5225             : #endif
    5226             : #ifdef __Pyx_FusedFunction_USED
    5227             : #define __pyx_FusedFunctionType __pyx_mstate_global->__pyx_FusedFunctionType
    5228             : #endif
    5229             : #ifdef __Pyx_Generator_USED
    5230             : #define __pyx_GeneratorType __pyx_mstate_global->__pyx_GeneratorType
    5231             : #endif
    5232             : #ifdef __Pyx_IterableCoroutine_USED
    5233             : #define __pyx_IterableCoroutineType __pyx_mstate_global->__pyx_IterableCoroutineType
    5234             : #endif
    5235             : #ifdef __Pyx_Coroutine_USED
    5236             : #define __pyx_CoroutineAwaitType __pyx_mstate_global->__pyx_CoroutineAwaitType
    5237             : #endif
    5238             : #ifdef __Pyx_Coroutine_USED
    5239             : #define __pyx_CoroutineType __pyx_mstate_global->__pyx_CoroutineType
    5240             : #endif
    5241             : #if CYTHON_USE_MODULE_STATE
    5242             : #endif
    5243             : #if CYTHON_USE_MODULE_STATE
    5244             : #endif
    5245             : #if CYTHON_USE_MODULE_STATE
    5246             : #endif
    5247             : #if CYTHON_USE_MODULE_STATE
    5248             : #endif
    5249             : #if CYTHON_USE_MODULE_STATE
    5250             : #endif
    5251             : #if CYTHON_USE_MODULE_STATE
    5252             : #endif
    5253             : #if CYTHON_USE_MODULE_STATE
    5254             : #endif
    5255             : #define __pyx_ptype_7cpython_4type_type __pyx_mstate_global->__pyx_ptype_7cpython_4type_type
    5256             : #if CYTHON_USE_MODULE_STATE
    5257             : #endif
    5258             : #if CYTHON_USE_MODULE_STATE
    5259             : #endif
    5260             : #if CYTHON_USE_MODULE_STATE
    5261             : #endif
    5262             : #if CYTHON_USE_MODULE_STATE
    5263             : #endif
    5264             : #if CYTHON_USE_MODULE_STATE
    5265             : #endif
    5266             : #define __pyx_ptype_5numpy_dtype __pyx_mstate_global->__pyx_ptype_5numpy_dtype
    5267             : #define __pyx_ptype_5numpy_flatiter __pyx_mstate_global->__pyx_ptype_5numpy_flatiter
    5268             : #define __pyx_ptype_5numpy_broadcast __pyx_mstate_global->__pyx_ptype_5numpy_broadcast
    5269             : #define __pyx_ptype_5numpy_ndarray __pyx_mstate_global->__pyx_ptype_5numpy_ndarray
    5270             : #define __pyx_ptype_5numpy_generic __pyx_mstate_global->__pyx_ptype_5numpy_generic
    5271             : #define __pyx_ptype_5numpy_number __pyx_mstate_global->__pyx_ptype_5numpy_number
    5272             : #define __pyx_ptype_5numpy_integer __pyx_mstate_global->__pyx_ptype_5numpy_integer
    5273             : #define __pyx_ptype_5numpy_signedinteger __pyx_mstate_global->__pyx_ptype_5numpy_signedinteger
    5274             : #define __pyx_ptype_5numpy_unsignedinteger __pyx_mstate_global->__pyx_ptype_5numpy_unsignedinteger
    5275             : #define __pyx_ptype_5numpy_inexact __pyx_mstate_global->__pyx_ptype_5numpy_inexact
    5276             : #define __pyx_ptype_5numpy_floating __pyx_mstate_global->__pyx_ptype_5numpy_floating
    5277             : #define __pyx_ptype_5numpy_complexfloating __pyx_mstate_global->__pyx_ptype_5numpy_complexfloating
    5278             : #define __pyx_ptype_5numpy_flexible __pyx_mstate_global->__pyx_ptype_5numpy_flexible
    5279             : #define __pyx_ptype_5numpy_character __pyx_mstate_global->__pyx_ptype_5numpy_character
    5280             : #define __pyx_ptype_5numpy_ufunc __pyx_mstate_global->__pyx_ptype_5numpy_ufunc
    5281             : #if CYTHON_USE_MODULE_STATE
    5282             : #define __pyx_type___pyx_array __pyx_mstate_global->__pyx_type___pyx_array
    5283             : #define __pyx_type___pyx_MemviewEnum __pyx_mstate_global->__pyx_type___pyx_MemviewEnum
    5284             : #define __pyx_type___pyx_memoryview __pyx_mstate_global->__pyx_type___pyx_memoryview
    5285             : #define __pyx_type___pyx_memoryviewslice __pyx_mstate_global->__pyx_type___pyx_memoryviewslice
    5286             : #endif
    5287             : #define __pyx_array_type __pyx_mstate_global->__pyx_array_type
    5288             : #define __pyx_MemviewEnum_type __pyx_mstate_global->__pyx_MemviewEnum_type
    5289             : #define __pyx_memoryview_type __pyx_mstate_global->__pyx_memoryview_type
    5290             : #define __pyx_memoryviewslice_type __pyx_mstate_global->__pyx_memoryviewslice_type
    5291             : #define __pyx_kp_u_ __pyx_mstate_global->__pyx_kp_u_
    5292             : #define __pyx_n_s_ASCII __pyx_mstate_global->__pyx_n_s_ASCII
    5293             : #define __pyx_n_u_All __pyx_mstate_global->__pyx_n_u_All
    5294             : #define __pyx_kp_s_All_dimensions_preceding_dimensi __pyx_mstate_global->__pyx_kp_s_All_dimensions_preceding_dimensi
    5295             : #define __pyx_n_s_AssertionError __pyx_mstate_global->__pyx_n_s_AssertionError
    5296             : #define __pyx_kp_s_Buffer_view_does_not_expose_stri __pyx_mstate_global->__pyx_kp_s_Buffer_view_does_not_expose_stri
    5297             : #define __pyx_kp_s_Can_only_create_a_buffer_that_is __pyx_mstate_global->__pyx_kp_s_Can_only_create_a_buffer_that_is
    5298             : #define __pyx_kp_s_Cannot_assign_to_read_only_memor __pyx_mstate_global->__pyx_kp_s_Cannot_assign_to_read_only_memor
    5299             : #define __pyx_kp_s_Cannot_create_writable_memory_vi __pyx_mstate_global->__pyx_kp_s_Cannot_create_writable_memory_vi
    5300             : #define __pyx_kp_u_Cannot_index_with_type __pyx_mstate_global->__pyx_kp_u_Cannot_index_with_type
    5301             : #define __pyx_kp_s_Cannot_transpose_memoryview_with __pyx_mstate_global->__pyx_kp_s_Cannot_transpose_memoryview_with
    5302             : #define __pyx_kp_s_Dimension_d_is_not_direct __pyx_mstate_global->__pyx_kp_s_Dimension_d_is_not_direct
    5303             : #define __pyx_n_s_Ellipsis __pyx_mstate_global->__pyx_n_s_Ellipsis
    5304             : #define __pyx_kp_s_Empty_shape_tuple_for_cython_arr __pyx_mstate_global->__pyx_kp_s_Empty_shape_tuple_for_cython_arr
    5305             : #define __pyx_kp_s_Expected_at_least_d_argument_s_g __pyx_mstate_global->__pyx_kp_s_Expected_at_least_d_argument_s_g
    5306             : #define __pyx_kp_s_Function_call_with_ambiguous_arg __pyx_mstate_global->__pyx_kp_s_Function_call_with_ambiguous_arg
    5307             : #define __pyx_n_s_ImportError __pyx_mstate_global->__pyx_n_s_ImportError
    5308             : #define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0
    5309             : #define __pyx_n_s_IndexError __pyx_mstate_global->__pyx_n_s_IndexError
    5310             : #define __pyx_kp_s_Index_out_of_bounds_axis_d __pyx_mstate_global->__pyx_kp_s_Index_out_of_bounds_axis_d
    5311             : #define __pyx_kp_s_Indirect_dimensions_not_supporte __pyx_mstate_global->__pyx_kp_s_Indirect_dimensions_not_supporte
    5312             : #define __pyx_n_u_Integer __pyx_mstate_global->__pyx_n_u_Integer
    5313             : #define __pyx_kp_u_Invalid_mode_expected_c_or_fortr __pyx_mstate_global->__pyx_kp_u_Invalid_mode_expected_c_or_fortr
    5314             : #define __pyx_kp_u_Invalid_shape_in_axis __pyx_mstate_global->__pyx_kp_u_Invalid_shape_in_axis
    5315             : #define __pyx_n_s_M __pyx_mstate_global->__pyx_n_s_M
    5316             : #define __pyx_n_s_MemoryError __pyx_mstate_global->__pyx_n_s_MemoryError
    5317             : #define __pyx_kp_s_MemoryView_of_r_at_0x_x __pyx_mstate_global->__pyx_kp_s_MemoryView_of_r_at_0x_x
    5318             : #define __pyx_kp_s_MemoryView_of_r_object __pyx_mstate_global->__pyx_kp_s_MemoryView_of_r_object
    5319             : #define __pyx_n_s_N __pyx_mstate_global->__pyx_n_s_N
    5320             : #define __pyx_kp_s_No_matching_signature_found __pyx_mstate_global->__pyx_kp_s_No_matching_signature_found
    5321             : #define __pyx_n_b_O __pyx_mstate_global->__pyx_n_b_O
    5322             : #define __pyx_kp_u_Out_of_bounds_on_buffer_access_a __pyx_mstate_global->__pyx_kp_u_Out_of_bounds_on_buffer_access_a
    5323             : #define __pyx_n_s_PickleError __pyx_mstate_global->__pyx_n_s_PickleError
    5324             : #define __pyx_n_u_SUVO __pyx_mstate_global->__pyx_n_u_SUVO
    5325             : #define __pyx_n_s_Sequence __pyx_mstate_global->__pyx_n_s_Sequence
    5326             : #define __pyx_kp_s_Step_may_not_be_zero_axis_d __pyx_mstate_global->__pyx_kp_s_Step_may_not_be_zero_axis_d
    5327             : #define __pyx_n_s_TypeError __pyx_mstate_global->__pyx_n_s_TypeError
    5328             : #define __pyx_kp_s_Unable_to_convert_item_to_object __pyx_mstate_global->__pyx_kp_s_Unable_to_convert_item_to_object
    5329             : #define __pyx_n_s_ValueError __pyx_mstate_global->__pyx_n_s_ValueError
    5330             : #define __pyx_n_s_View_MemoryView __pyx_mstate_global->__pyx_n_s_View_MemoryView
    5331             : #define __pyx_kp_s__11 __pyx_mstate_global->__pyx_kp_s__11
    5332             : #define __pyx_kp_s__12 __pyx_mstate_global->__pyx_kp_s__12
    5333             : #define __pyx_kp_u__12 __pyx_mstate_global->__pyx_kp_u__12
    5334             : #define __pyx_kp_u__2 __pyx_mstate_global->__pyx_kp_u__2
    5335             : #define __pyx_n_s__3 __pyx_mstate_global->__pyx_n_s__3
    5336             : #define __pyx_kp_u__6 __pyx_mstate_global->__pyx_kp_u__6
    5337             : #define __pyx_kp_u__7 __pyx_mstate_global->__pyx_kp_u__7
    5338             : #define __pyx_n_s__93 __pyx_mstate_global->__pyx_n_s__93
    5339             : #define __pyx_n_s_a __pyx_mstate_global->__pyx_n_s_a
    5340             : #define __pyx_n_s_abc __pyx_mstate_global->__pyx_n_s_abc
    5341             : #define __pyx_n_s_allocate_buffer __pyx_mstate_global->__pyx_n_s_allocate_buffer
    5342             : #define __pyx_kp_u_and __pyx_mstate_global->__pyx_kp_u_and
    5343             : #define __pyx_n_s_args __pyx_mstate_global->__pyx_n_s_args
    5344             : #define __pyx_n_s_asyncio_coroutines __pyx_mstate_global->__pyx_n_s_asyncio_coroutines
    5345             : #define __pyx_n_s_b __pyx_mstate_global->__pyx_n_s_b
    5346             : #define __pyx_n_s_base __pyx_mstate_global->__pyx_n_s_base
    5347             : #define __pyx_n_s_bool __pyx_mstate_global->__pyx_n_s_bool
    5348             : #define __pyx_n_s_c __pyx_mstate_global->__pyx_n_s_c
    5349             : #define __pyx_n_u_c __pyx_mstate_global->__pyx_n_u_c
    5350             : #define __pyx_kp_u_cannot_index_with_zero_stride __pyx_mstate_global->__pyx_kp_u_cannot_index_with_zero_stride
    5351             : #define __pyx_n_s_class __pyx_mstate_global->__pyx_n_s_class
    5352             : #define __pyx_n_s_class_getitem __pyx_mstate_global->__pyx_n_s_class_getitem
    5353             : #define __pyx_n_s_cline_in_traceback __pyx_mstate_global->__pyx_n_s_cline_in_traceback
    5354             : #define __pyx_n_s_clongdouble __pyx_mstate_global->__pyx_n_s_clongdouble
    5355             : #define __pyx_n_s_collections __pyx_mstate_global->__pyx_n_s_collections
    5356             : #define __pyx_kp_s_collections_abc __pyx_mstate_global->__pyx_kp_s_collections_abc
    5357             : #define __pyx_kp_u_column_index __pyx_mstate_global->__pyx_kp_u_column_index
    5358             : #define __pyx_n_s_complex128 __pyx_mstate_global->__pyx_n_s_complex128
    5359             : #define __pyx_n_s_complex64 __pyx_mstate_global->__pyx_n_s_complex64
    5360             : #define __pyx_kp_s_contiguous_and_direct __pyx_mstate_global->__pyx_kp_s_contiguous_and_direct
    5361             : #define __pyx_kp_s_contiguous_and_indirect __pyx_mstate_global->__pyx_kp_s_contiguous_and_indirect
    5362             : #define __pyx_n_s_count __pyx_mstate_global->__pyx_n_s_count
    5363             : #define __pyx_n_s_csparsetools __pyx_mstate_global->__pyx_n_s_csparsetools
    5364             : #define __pyx_n_s_cur_data __pyx_mstate_global->__pyx_n_s_cur_data
    5365             : #define __pyx_n_s_cur_row __pyx_mstate_global->__pyx_n_s_cur_row
    5366             : #define __pyx_n_u_d __pyx_mstate_global->__pyx_n_u_d
    5367             : #define __pyx_n_s_data __pyx_mstate_global->__pyx_n_s_data
    5368             : #define __pyx_n_s_datas __pyx_mstate_global->__pyx_n_s_datas
    5369             : #define __pyx_n_s_defaults __pyx_mstate_global->__pyx_n_s_defaults
    5370             : #define __pyx_n_s_dict __pyx_mstate_global->__pyx_n_s_dict
    5371             : #define __pyx_kp_u_disable __pyx_mstate_global->__pyx_kp_u_disable
    5372             : #define __pyx_n_s_double __pyx_mstate_global->__pyx_n_s_double
    5373             : #define __pyx_n_s_dtype __pyx_mstate_global->__pyx_n_s_dtype
    5374             : #define __pyx_n_s_dtype_is_object __pyx_mstate_global->__pyx_n_s_dtype_is_object
    5375             : #define __pyx_kp_u_enable __pyx_mstate_global->__pyx_kp_u_enable
    5376             : #define __pyx_n_s_encode __pyx_mstate_global->__pyx_n_s_encode
    5377             : #define __pyx_n_s_enumerate __pyx_mstate_global->__pyx_n_s_enumerate
    5378             : #define __pyx_n_s_error __pyx_mstate_global->__pyx_n_s_error
    5379             : #define __pyx_n_s_flags __pyx_mstate_global->__pyx_n_s_flags
    5380             : #define __pyx_n_s_float32 __pyx_mstate_global->__pyx_n_s_float32
    5381             : #define __pyx_n_s_float64 __pyx_mstate_global->__pyx_n_s_float64
    5382             : #define __pyx_n_s_format __pyx_mstate_global->__pyx_n_s_format
    5383             : #define __pyx_n_s_fortran __pyx_mstate_global->__pyx_n_s_fortran
    5384             : #define __pyx_n_u_fortran __pyx_mstate_global->__pyx_n_u_fortran
    5385             : #define __pyx_n_s_fused_sigindex __pyx_mstate_global->__pyx_n_s_fused_sigindex
    5386             : #define __pyx_kp_u_gc __pyx_mstate_global->__pyx_kp_u_gc
    5387             : #define __pyx_n_s_get __pyx_mstate_global->__pyx_n_s_get
    5388             : #define __pyx_n_s_getstate __pyx_mstate_global->__pyx_n_s_getstate
    5389             : #define __pyx_kp_u_got __pyx_mstate_global->__pyx_kp_u_got
    5390             : #define __pyx_kp_u_got_differing_extents_in_dimensi __pyx_mstate_global->__pyx_kp_u_got_differing_extents_in_dimensi
    5391             : #define __pyx_n_s_i __pyx_mstate_global->__pyx_n_s_i
    5392             : #define __pyx_n_s_i_idx __pyx_mstate_global->__pyx_n_s_i_idx
    5393             : #define __pyx_n_s_id __pyx_mstate_global->__pyx_n_s_id
    5394             : #define __pyx_n_s_import __pyx_mstate_global->__pyx_n_s_import
    5395             : #define __pyx_n_s_index __pyx_mstate_global->__pyx_n_s_index
    5396             : #define __pyx_n_s_initializing __pyx_mstate_global->__pyx_n_s_initializing
    5397             : #define __pyx_n_s_input __pyx_mstate_global->__pyx_n_s_input
    5398             : #define __pyx_n_s_int16 __pyx_mstate_global->__pyx_n_s_int16
    5399             : #define __pyx_n_s_int32 __pyx_mstate_global->__pyx_n_s_int32
    5400             : #define __pyx_n_s_int64 __pyx_mstate_global->__pyx_n_s_int64
    5401             : #define __pyx_n_s_int8 __pyx_mstate_global->__pyx_n_s_int8
    5402             : #define __pyx_n_s_irows __pyx_mstate_global->__pyx_n_s_irows
    5403             : #define __pyx_n_s_is_coroutine __pyx_mstate_global->__pyx_n_s_is_coroutine
    5404             : #define __pyx_kp_u_isenabled __pyx_mstate_global->__pyx_kp_u_isenabled
    5405             : #define __pyx_n_s_items __pyx_mstate_global->__pyx_n_s_items
    5406             : #define __pyx_n_s_itemsize __pyx_mstate_global->__pyx_n_s_itemsize
    5407             : #define __pyx_kp_s_itemsize_0_for_cython_array __pyx_mstate_global->__pyx_kp_s_itemsize_0_for_cython_array
    5408             : #define __pyx_n_s_j __pyx_mstate_global->__pyx_n_s_j
    5409             : #define __pyx_n_s_j_idx __pyx_mstate_global->__pyx_n_s_j_idx
    5410             : #define __pyx_n_s_j_start __pyx_mstate_global->__pyx_n_s_j_start
    5411             : #define __pyx_n_s_j_stop __pyx_mstate_global->__pyx_n_s_j_stop
    5412             : #define __pyx_n_s_j_stride __pyx_mstate_global->__pyx_n_s_j_stride
    5413             : #define __pyx_n_s_k __pyx_mstate_global->__pyx_n_s_k
    5414             : #define __pyx_n_s_kind __pyx_mstate_global->__pyx_n_s_kind
    5415             : #define __pyx_n_s_kwargs __pyx_mstate_global->__pyx_n_s_kwargs
    5416             : #define __pyx_n_s_lil_fancy_get __pyx_mstate_global->__pyx_n_s_lil_fancy_get
    5417             : #define __pyx_n_s_lil_fancy_get_int32 __pyx_mstate_global->__pyx_n_s_lil_fancy_get_int32
    5418             : #define __pyx_n_s_lil_fancy_get_int64 __pyx_mstate_global->__pyx_n_s_lil_fancy_get_int64
    5419             : #define __pyx_n_s_lil_fancy_set __pyx_mstate_global->__pyx_n_s_lil_fancy_set
    5420             : #define __pyx_n_s_lil_fancy_set_int32_bool __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int32_bool
    5421             : #define __pyx_n_s_lil_fancy_set_int32_clongdouble __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int32_clongdouble
    5422             : #define __pyx_n_s_lil_fancy_set_int32_complex128 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int32_complex128
    5423             : #define __pyx_n_s_lil_fancy_set_int32_complex64 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int32_complex64
    5424             : #define __pyx_n_s_lil_fancy_set_int32_float32 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int32_float32
    5425             : #define __pyx_n_s_lil_fancy_set_int32_float64 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int32_float64
    5426             : #define __pyx_n_s_lil_fancy_set_int32_int16 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int32_int16
    5427             : #define __pyx_n_s_lil_fancy_set_int32_int32 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int32_int32
    5428             : #define __pyx_n_s_lil_fancy_set_int32_int64 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int32_int64
    5429             : #define __pyx_n_s_lil_fancy_set_int32_int8 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int32_int8
    5430             : #define __pyx_n_s_lil_fancy_set_int32_longdouble __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int32_longdouble
    5431             : #define __pyx_n_s_lil_fancy_set_int32_uint16 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int32_uint16
    5432             : #define __pyx_n_s_lil_fancy_set_int32_uint32 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int32_uint32
    5433             : #define __pyx_n_s_lil_fancy_set_int32_uint64 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int32_uint64
    5434             : #define __pyx_n_s_lil_fancy_set_int32_uint8 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int32_uint8
    5435             : #define __pyx_n_s_lil_fancy_set_int64_bool __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int64_bool
    5436             : #define __pyx_n_s_lil_fancy_set_int64_clongdouble __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int64_clongdouble
    5437             : #define __pyx_n_s_lil_fancy_set_int64_complex128 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int64_complex128
    5438             : #define __pyx_n_s_lil_fancy_set_int64_complex64 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int64_complex64
    5439             : #define __pyx_n_s_lil_fancy_set_int64_float32 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int64_float32
    5440             : #define __pyx_n_s_lil_fancy_set_int64_float64 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int64_float64
    5441             : #define __pyx_n_s_lil_fancy_set_int64_int16 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int64_int16
    5442             : #define __pyx_n_s_lil_fancy_set_int64_int32 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int64_int32
    5443             : #define __pyx_n_s_lil_fancy_set_int64_int64 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int64_int64
    5444             : #define __pyx_n_s_lil_fancy_set_int64_int8 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int64_int8
    5445             : #define __pyx_n_s_lil_fancy_set_int64_longdouble __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int64_longdouble
    5446             : #define __pyx_n_s_lil_fancy_set_int64_uint16 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int64_uint16
    5447             : #define __pyx_n_s_lil_fancy_set_int64_uint32 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int64_uint32
    5448             : #define __pyx_n_s_lil_fancy_set_int64_uint64 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int64_uint64
    5449             : #define __pyx_n_s_lil_fancy_set_int64_uint8 __pyx_mstate_global->__pyx_n_s_lil_fancy_set_int64_uint8
    5450             : #define __pyx_n_s_lil_flatten_to_array __pyx_mstate_global->__pyx_n_s_lil_flatten_to_array
    5451             : #define __pyx_n_s_lil_flatten_to_array_bool __pyx_mstate_global->__pyx_n_s_lil_flatten_to_array_bool
    5452             : #define __pyx_n_s_lil_flatten_to_array_clongdoubl __pyx_mstate_global->__pyx_n_s_lil_flatten_to_array_clongdoubl
    5453             : #define __pyx_n_s_lil_flatten_to_array_complex128 __pyx_mstate_global->__pyx_n_s_lil_flatten_to_array_complex128
    5454             : #define __pyx_n_s_lil_flatten_to_array_complex64 __pyx_mstate_global->__pyx_n_s_lil_flatten_to_array_complex64
    5455             : #define __pyx_n_s_lil_flatten_to_array_float32 __pyx_mstate_global->__pyx_n_s_lil_flatten_to_array_float32
    5456             : #define __pyx_n_s_lil_flatten_to_array_float64 __pyx_mstate_global->__pyx_n_s_lil_flatten_to_array_float64
    5457             : #define __pyx_n_s_lil_flatten_to_array_int16 __pyx_mstate_global->__pyx_n_s_lil_flatten_to_array_int16
    5458             : #define __pyx_n_s_lil_flatten_to_array_int32 __pyx_mstate_global->__pyx_n_s_lil_flatten_to_array_int32
    5459             : #define __pyx_n_s_lil_flatten_to_array_int64 __pyx_mstate_global->__pyx_n_s_lil_flatten_to_array_int64
    5460             : #define __pyx_n_s_lil_flatten_to_array_int8 __pyx_mstate_global->__pyx_n_s_lil_flatten_to_array_int8
    5461             : #define __pyx_n_s_lil_flatten_to_array_longdouble __pyx_mstate_global->__pyx_n_s_lil_flatten_to_array_longdouble
    5462             : #define __pyx_n_s_lil_flatten_to_array_uint16 __pyx_mstate_global->__pyx_n_s_lil_flatten_to_array_uint16
    5463             : #define __pyx_n_s_lil_flatten_to_array_uint32 __pyx_mstate_global->__pyx_n_s_lil_flatten_to_array_uint32
    5464             : #define __pyx_n_s_lil_flatten_to_array_uint64 __pyx_mstate_global->__pyx_n_s_lil_flatten_to_array_uint64
    5465             : #define __pyx_n_s_lil_flatten_to_array_uint8 __pyx_mstate_global->__pyx_n_s_lil_flatten_to_array_uint8
    5466             : #define __pyx_n_s_lil_get1 __pyx_mstate_global->__pyx_n_s_lil_get1
    5467             : #define __pyx_n_s_lil_get_lengths __pyx_mstate_global->__pyx_n_s_lil_get_lengths
    5468             : #define __pyx_n_s_lil_get_lengths_int32 __pyx_mstate_global->__pyx_n_s_lil_get_lengths_int32
    5469             : #define __pyx_n_s_lil_get_lengths_int64 __pyx_mstate_global->__pyx_n_s_lil_get_lengths_int64
    5470             : #define __pyx_n_s_lil_get_row_ranges __pyx_mstate_global->__pyx_n_s_lil_get_row_ranges
    5471             : #define __pyx_n_s_lil_insert __pyx_mstate_global->__pyx_n_s_lil_insert
    5472             : #define __pyx_n_s_longdouble __pyx_mstate_global->__pyx_n_s_longdouble
    5473             : #define __pyx_n_s_m __pyx_mstate_global->__pyx_n_s_m
    5474             : #define __pyx_n_s_main __pyx_mstate_global->__pyx_n_s_main
    5475             : #define __pyx_n_s_memview __pyx_mstate_global->__pyx_n_s_memview
    5476             : #define __pyx_n_s_mode __pyx_mstate_global->__pyx_n_s_mode
    5477             : #define __pyx_n_s_name __pyx_mstate_global->__pyx_n_s_name
    5478             : #define __pyx_n_s_name_2 __pyx_mstate_global->__pyx_n_s_name_2
    5479             : #define __pyx_n_s_ndim __pyx_mstate_global->__pyx_n_s_ndim
    5480             : #define __pyx_n_s_new __pyx_mstate_global->__pyx_n_s_new
    5481             : #define __pyx_n_s_new_data __pyx_mstate_global->__pyx_n_s_new_data
    5482             : #define __pyx_n_s_new_datas __pyx_mstate_global->__pyx_n_s_new_datas
    5483             : #define __pyx_n_s_new_row __pyx_mstate_global->__pyx_n_s_new_row
    5484             : #define __pyx_n_s_new_rows __pyx_mstate_global->__pyx_n_s_new_rows
    5485             : #define __pyx_n_s_nj __pyx_mstate_global->__pyx_n_s_nj
    5486             : #define __pyx_n_s_nk __pyx_mstate_global->__pyx_n_s_nk
    5487             : #define __pyx_kp_s_no_default___reduce___due_to_non __pyx_mstate_global->__pyx_kp_s_no_default___reduce___due_to_non
    5488             : #define __pyx_n_s_np __pyx_mstate_global->__pyx_n_s_np
    5489             : #define __pyx_n_s_numpy __pyx_mstate_global->__pyx_n_s_numpy
    5490             : #define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_mstate_global->__pyx_kp_u_numpy__core_multiarray_failed_to
    5491             : #define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo
    5492             : #define __pyx_n_s_obj __pyx_mstate_global->__pyx_n_s_obj
    5493             : #define __pyx_n_s_object __pyx_mstate_global->__pyx_n_s_object
    5494             : #define __pyx_kp_u_out_of_bounds __pyx_mstate_global->__pyx_kp_u_out_of_bounds
    5495             : #define __pyx_kp_u_out_of_bounds_2 __pyx_mstate_global->__pyx_kp_u_out_of_bounds_2
    5496             : #define __pyx_n_s_output __pyx_mstate_global->__pyx_n_s_output
    5497             : #define __pyx_n_s_p __pyx_mstate_global->__pyx_n_s_p
    5498             : #define __pyx_n_s_pack __pyx_mstate_global->__pyx_n_s_pack
    5499             : #define __pyx_n_s_pickle __pyx_mstate_global->__pyx_n_s_pickle
    5500             : #define __pyx_n_s_pos __pyx_mstate_global->__pyx_n_s_pos
    5501             : #define __pyx_n_s_pyx_PickleError __pyx_mstate_global->__pyx_n_s_pyx_PickleError
    5502             : #define __pyx_n_s_pyx_checksum __pyx_mstate_global->__pyx_n_s_pyx_checksum
    5503             : #define __pyx_n_s_pyx_result __pyx_mstate_global->__pyx_n_s_pyx_result
    5504             : #define __pyx_n_s_pyx_state __pyx_mstate_global->__pyx_n_s_pyx_state
    5505             : #define __pyx_n_s_pyx_type __pyx_mstate_global->__pyx_n_s_pyx_type
    5506             : #define __pyx_n_s_pyx_unpickle_Enum __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Enum
    5507             : #define __pyx_n_s_pyx_vtable __pyx_mstate_global->__pyx_n_s_pyx_vtable
    5508             : #define __pyx_n_s_r __pyx_mstate_global->__pyx_n_s_r
    5509             : #define __pyx_n_s_range __pyx_mstate_global->__pyx_n_s_range
    5510             : #define __pyx_n_s_reduce __pyx_mstate_global->__pyx_n_s_reduce
    5511             : #define __pyx_n_s_reduce_cython __pyx_mstate_global->__pyx_n_s_reduce_cython
    5512             : #define __pyx_n_s_reduce_ex __pyx_mstate_global->__pyx_n_s_reduce_ex
    5513             : #define __pyx_n_s_register __pyx_mstate_global->__pyx_n_s_register
    5514             : #define __pyx_n_s_row __pyx_mstate_global->__pyx_n_s_row
    5515             : #define __pyx_kp_u_row_index __pyx_mstate_global->__pyx_kp_u_row_index
    5516             : #define __pyx_kp_u_row_index_2 __pyx_mstate_global->__pyx_kp_u_row_index_2
    5517             : #define __pyx_n_s_rows __pyx_mstate_global->__pyx_n_s_rows
    5518             : #define __pyx_n_s_s __pyx_mstate_global->__pyx_n_s_s
    5519             : #define __pyx_kp_s_scipy_sparse__csparsetools_pyx __pyx_mstate_global->__pyx_kp_s_scipy_sparse__csparsetools_pyx
    5520             : #define __pyx_n_s_setstate __pyx_mstate_global->__pyx_n_s_setstate
    5521             : #define __pyx_n_s_setstate_cython __pyx_mstate_global->__pyx_n_s_setstate_cython
    5522             : #define __pyx_n_s_shape __pyx_mstate_global->__pyx_n_s_shape
    5523             : #define __pyx_n_s_signatures __pyx_mstate_global->__pyx_n_s_signatures
    5524             : #define __pyx_n_s_size __pyx_mstate_global->__pyx_n_s_size
    5525             : #define __pyx_n_s_spec __pyx_mstate_global->__pyx_n_s_spec
    5526             : #define __pyx_n_s_split __pyx_mstate_global->__pyx_n_s_split
    5527             : #define __pyx_n_s_start __pyx_mstate_global->__pyx_n_s_start
    5528             : #define __pyx_n_s_step __pyx_mstate_global->__pyx_n_s_step
    5529             : #define __pyx_n_s_stop __pyx_mstate_global->__pyx_n_s_stop
    5530             : #define __pyx_kp_s_strided_and_direct __pyx_mstate_global->__pyx_kp_s_strided_and_direct
    5531             : #define __pyx_kp_s_strided_and_direct_or_indirect __pyx_mstate_global->__pyx_kp_s_strided_and_direct_or_indirect
    5532             : #define __pyx_kp_s_strided_and_indirect __pyx_mstate_global->__pyx_kp_s_strided_and_indirect
    5533             : #define __pyx_kp_s_stringsource __pyx_mstate_global->__pyx_kp_s_stringsource
    5534             : #define __pyx_n_s_strip __pyx_mstate_global->__pyx_n_s_strip
    5535             : #define __pyx_n_s_struct __pyx_mstate_global->__pyx_n_s_struct
    5536             : #define __pyx_n_s_sys __pyx_mstate_global->__pyx_n_s_sys
    5537             : #define __pyx_n_s_test __pyx_mstate_global->__pyx_n_s_test
    5538             : #define __pyx_n_s_typecodes __pyx_mstate_global->__pyx_n_s_typecodes
    5539             : #define __pyx_n_s_uint16 __pyx_mstate_global->__pyx_n_s_uint16
    5540             : #define __pyx_n_s_uint32 __pyx_mstate_global->__pyx_n_s_uint32
    5541             : #define __pyx_n_s_uint64 __pyx_mstate_global->__pyx_n_s_uint64
    5542             : #define __pyx_n_s_uint8 __pyx_mstate_global->__pyx_n_s_uint8
    5543             : #define __pyx_kp_s_unable_to_allocate_array_data __pyx_mstate_global->__pyx_kp_s_unable_to_allocate_array_data
    5544             : #define __pyx_kp_s_unable_to_allocate_shape_and_str __pyx_mstate_global->__pyx_kp_s_unable_to_allocate_shape_and_str
    5545             : #define __pyx_n_s_unpack __pyx_mstate_global->__pyx_n_s_unpack
    5546             : #define __pyx_n_s_update __pyx_mstate_global->__pyx_n_s_update
    5547             : #define __pyx_n_s_value __pyx_mstate_global->__pyx_n_s_value
    5548             : #define __pyx_n_s_values __pyx_mstate_global->__pyx_n_s_values
    5549             : #define __pyx_n_s_version_info __pyx_mstate_global->__pyx_n_s_version_info
    5550             : #define __pyx_n_s_view __pyx_mstate_global->__pyx_n_s_view
    5551             : #define __pyx_n_s_x __pyx_mstate_global->__pyx_n_s_x
    5552             : #define __pyx_n_s_y __pyx_mstate_global->__pyx_n_s_y
    5553             : #define __pyx_int_0 __pyx_mstate_global->__pyx_int_0
    5554             : #define __pyx_int_1 __pyx_mstate_global->__pyx_int_1
    5555             : #define __pyx_int_2 __pyx_mstate_global->__pyx_int_2
    5556             : #define __pyx_int_3 __pyx_mstate_global->__pyx_int_3
    5557             : #define __pyx_int_11 __pyx_mstate_global->__pyx_int_11
    5558             : #define __pyx_int_112105877 __pyx_mstate_global->__pyx_int_112105877
    5559             : #define __pyx_int_136983863 __pyx_mstate_global->__pyx_int_136983863
    5560             : #define __pyx_int_184977713 __pyx_mstate_global->__pyx_int_184977713
    5561             : #define __pyx_int_neg_1 __pyx_mstate_global->__pyx_int_neg_1
    5562             : #define __pyx_slice__5 __pyx_mstate_global->__pyx_slice__5
    5563             : #define __pyx_tuple__4 __pyx_mstate_global->__pyx_tuple__4
    5564             : #define __pyx_tuple__8 __pyx_mstate_global->__pyx_tuple__8
    5565             : #define __pyx_tuple__9 __pyx_mstate_global->__pyx_tuple__9
    5566             : #define __pyx_tuple__10 __pyx_mstate_global->__pyx_tuple__10
    5567             : #define __pyx_tuple__13 __pyx_mstate_global->__pyx_tuple__13
    5568             : #define __pyx_tuple__14 __pyx_mstate_global->__pyx_tuple__14
    5569             : #define __pyx_tuple__15 __pyx_mstate_global->__pyx_tuple__15
    5570             : #define __pyx_tuple__16 __pyx_mstate_global->__pyx_tuple__16
    5571             : #define __pyx_tuple__17 __pyx_mstate_global->__pyx_tuple__17
    5572             : #define __pyx_tuple__18 __pyx_mstate_global->__pyx_tuple__18
    5573             : #define __pyx_tuple__19 __pyx_mstate_global->__pyx_tuple__19
    5574             : #define __pyx_tuple__20 __pyx_mstate_global->__pyx_tuple__20
    5575             : #define __pyx_tuple__21 __pyx_mstate_global->__pyx_tuple__21
    5576             : #define __pyx_tuple__22 __pyx_mstate_global->__pyx_tuple__22
    5577             : #define __pyx_tuple__23 __pyx_mstate_global->__pyx_tuple__23
    5578             : #define __pyx_tuple__24 __pyx_mstate_global->__pyx_tuple__24
    5579             : #define __pyx_tuple__25 __pyx_mstate_global->__pyx_tuple__25
    5580             : #define __pyx_tuple__27 __pyx_mstate_global->__pyx_tuple__27
    5581             : #define __pyx_tuple__29 __pyx_mstate_global->__pyx_tuple__29
    5582             : #define __pyx_tuple__31 __pyx_mstate_global->__pyx_tuple__31
    5583             : #define __pyx_tuple__33 __pyx_mstate_global->__pyx_tuple__33
    5584             : #define __pyx_tuple__37 __pyx_mstate_global->__pyx_tuple__37
    5585             : #define __pyx_tuple__53 __pyx_mstate_global->__pyx_tuple__53
    5586             : #define __pyx_tuple__55 __pyx_mstate_global->__pyx_tuple__55
    5587             : #define __pyx_tuple__58 __pyx_mstate_global->__pyx_tuple__58
    5588             : #define __pyx_tuple__60 __pyx_mstate_global->__pyx_tuple__60
    5589             : #define __pyx_tuple__91 __pyx_mstate_global->__pyx_tuple__91
    5590             : #define __pyx_codeobj__26 __pyx_mstate_global->__pyx_codeobj__26
    5591             : #define __pyx_codeobj__28 __pyx_mstate_global->__pyx_codeobj__28
    5592             : #define __pyx_codeobj__30 __pyx_mstate_global->__pyx_codeobj__30
    5593             : #define __pyx_codeobj__32 __pyx_mstate_global->__pyx_codeobj__32
    5594             : #define __pyx_codeobj__34 __pyx_mstate_global->__pyx_codeobj__34
    5595             : #define __pyx_codeobj__35 __pyx_mstate_global->__pyx_codeobj__35
    5596             : #define __pyx_codeobj__36 __pyx_mstate_global->__pyx_codeobj__36
    5597             : #define __pyx_codeobj__38 __pyx_mstate_global->__pyx_codeobj__38
    5598             : #define __pyx_codeobj__39 __pyx_mstate_global->__pyx_codeobj__39
    5599             : #define __pyx_codeobj__40 __pyx_mstate_global->__pyx_codeobj__40
    5600             : #define __pyx_codeobj__41 __pyx_mstate_global->__pyx_codeobj__41
    5601             : #define __pyx_codeobj__42 __pyx_mstate_global->__pyx_codeobj__42
    5602             : #define __pyx_codeobj__43 __pyx_mstate_global->__pyx_codeobj__43
    5603             : #define __pyx_codeobj__44 __pyx_mstate_global->__pyx_codeobj__44
    5604             : #define __pyx_codeobj__45 __pyx_mstate_global->__pyx_codeobj__45
    5605             : #define __pyx_codeobj__46 __pyx_mstate_global->__pyx_codeobj__46
    5606             : #define __pyx_codeobj__47 __pyx_mstate_global->__pyx_codeobj__47
    5607             : #define __pyx_codeobj__48 __pyx_mstate_global->__pyx_codeobj__48
    5608             : #define __pyx_codeobj__49 __pyx_mstate_global->__pyx_codeobj__49
    5609             : #define __pyx_codeobj__50 __pyx_mstate_global->__pyx_codeobj__50
    5610             : #define __pyx_codeobj__51 __pyx_mstate_global->__pyx_codeobj__51
    5611             : #define __pyx_codeobj__52 __pyx_mstate_global->__pyx_codeobj__52
    5612             : #define __pyx_codeobj__54 __pyx_mstate_global->__pyx_codeobj__54
    5613             : #define __pyx_codeobj__56 __pyx_mstate_global->__pyx_codeobj__56
    5614             : #define __pyx_codeobj__57 __pyx_mstate_global->__pyx_codeobj__57
    5615             : #define __pyx_codeobj__59 __pyx_mstate_global->__pyx_codeobj__59
    5616             : #define __pyx_codeobj__61 __pyx_mstate_global->__pyx_codeobj__61
    5617             : #define __pyx_codeobj__62 __pyx_mstate_global->__pyx_codeobj__62
    5618             : #define __pyx_codeobj__63 __pyx_mstate_global->__pyx_codeobj__63
    5619             : #define __pyx_codeobj__64 __pyx_mstate_global->__pyx_codeobj__64
    5620             : #define __pyx_codeobj__65 __pyx_mstate_global->__pyx_codeobj__65
    5621             : #define __pyx_codeobj__66 __pyx_mstate_global->__pyx_codeobj__66
    5622             : #define __pyx_codeobj__67 __pyx_mstate_global->__pyx_codeobj__67
    5623             : #define __pyx_codeobj__68 __pyx_mstate_global->__pyx_codeobj__68
    5624             : #define __pyx_codeobj__69 __pyx_mstate_global->__pyx_codeobj__69
    5625             : #define __pyx_codeobj__70 __pyx_mstate_global->__pyx_codeobj__70
    5626             : #define __pyx_codeobj__71 __pyx_mstate_global->__pyx_codeobj__71
    5627             : #define __pyx_codeobj__72 __pyx_mstate_global->__pyx_codeobj__72
    5628             : #define __pyx_codeobj__73 __pyx_mstate_global->__pyx_codeobj__73
    5629             : #define __pyx_codeobj__74 __pyx_mstate_global->__pyx_codeobj__74
    5630             : #define __pyx_codeobj__75 __pyx_mstate_global->__pyx_codeobj__75
    5631             : #define __pyx_codeobj__76 __pyx_mstate_global->__pyx_codeobj__76
    5632             : #define __pyx_codeobj__77 __pyx_mstate_global->__pyx_codeobj__77
    5633             : #define __pyx_codeobj__78 __pyx_mstate_global->__pyx_codeobj__78
    5634             : #define __pyx_codeobj__79 __pyx_mstate_global->__pyx_codeobj__79
    5635             : #define __pyx_codeobj__80 __pyx_mstate_global->__pyx_codeobj__80
    5636             : #define __pyx_codeobj__81 __pyx_mstate_global->__pyx_codeobj__81
    5637             : #define __pyx_codeobj__82 __pyx_mstate_global->__pyx_codeobj__82
    5638             : #define __pyx_codeobj__83 __pyx_mstate_global->__pyx_codeobj__83
    5639             : #define __pyx_codeobj__84 __pyx_mstate_global->__pyx_codeobj__84
    5640             : #define __pyx_codeobj__85 __pyx_mstate_global->__pyx_codeobj__85
    5641             : #define __pyx_codeobj__86 __pyx_mstate_global->__pyx_codeobj__86
    5642             : #define __pyx_codeobj__87 __pyx_mstate_global->__pyx_codeobj__87
    5643             : #define __pyx_codeobj__88 __pyx_mstate_global->__pyx_codeobj__88
    5644             : #define __pyx_codeobj__89 __pyx_mstate_global->__pyx_codeobj__89
    5645             : #define __pyx_codeobj__90 __pyx_mstate_global->__pyx_codeobj__90
    5646             : #define __pyx_codeobj__92 __pyx_mstate_global->__pyx_codeobj__92
    5647             : /* #### Code section: module_code ### */
    5648             : 
    5649             : /* "View.MemoryView":131
    5650             :  *         cdef bint dtype_is_object
    5651             :  * 
    5652             :  *     def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None,             # <<<<<<<<<<<<<<
    5653             :  *                   mode="c", bint allocate_buffer=True):
    5654             :  * 
    5655             :  */
    5656             : 
    5657             : /* Python wrapper */
    5658             : static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
    5659           0 : static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
    5660           0 :   PyObject *__pyx_v_shape = 0;
    5661           0 :   Py_ssize_t __pyx_v_itemsize;
    5662           0 :   PyObject *__pyx_v_format = 0;
    5663           0 :   PyObject *__pyx_v_mode = 0;
    5664           0 :   int __pyx_v_allocate_buffer;
    5665           0 :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
    5666           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    5667           0 :   PyObject* values[5] = {0,0,0,0,0};
    5668           0 :   int __pyx_lineno = 0;
    5669           0 :   const char *__pyx_filename = NULL;
    5670           0 :   int __pyx_clineno = 0;
    5671           0 :   int __pyx_r;
    5672             :   __Pyx_RefNannyDeclarations
    5673           0 :   __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
    5674             :   #if CYTHON_ASSUME_SAFE_MACROS
    5675           0 :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
    5676             :   #else
    5677             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
    5678             :   #endif
    5679           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
    5680             :   {
    5681           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shape,&__pyx_n_s_itemsize,&__pyx_n_s_format,&__pyx_n_s_mode,&__pyx_n_s_allocate_buffer,0};
    5682           0 :     values[3] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_n_s_c));
    5683           0 :     if (__pyx_kwds) {
    5684           0 :       Py_ssize_t kw_args;
    5685           0 :       switch (__pyx_nargs) {
    5686           0 :         case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
    5687           0 :         CYTHON_FALLTHROUGH;
    5688           0 :         case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
    5689           0 :         CYTHON_FALLTHROUGH;
    5690           0 :         case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
    5691           0 :         CYTHON_FALLTHROUGH;
    5692           0 :         case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    5693           0 :         CYTHON_FALLTHROUGH;
    5694           0 :         case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    5695           0 :         CYTHON_FALLTHROUGH;
    5696           0 :         case  0: break;
    5697           0 :         default: goto __pyx_L5_argtuple_error;
    5698             :       }
    5699           0 :       kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
    5700           0 :       switch (__pyx_nargs) {
    5701           0 :         case  0:
    5702           0 :         if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_shape)) != 0)) {
    5703           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
    5704           0 :           kw_args--;
    5705             :         }
    5706           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L3_error)
    5707           0 :         else goto __pyx_L5_argtuple_error;
    5708           0 :         CYTHON_FALLTHROUGH;
    5709             :         case  1:
    5710           0 :         if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_itemsize)) != 0)) {
    5711           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
    5712           0 :           kw_args--;
    5713             :         }
    5714           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L3_error)
    5715             :         else {
    5716           0 :           __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 1); __PYX_ERR(1, 131, __pyx_L3_error)
    5717             :         }
    5718           0 :         CYTHON_FALLTHROUGH;
    5719             :         case  2:
    5720           0 :         if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_format)) != 0)) {
    5721           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
    5722           0 :           kw_args--;
    5723             :         }
    5724           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L3_error)
    5725             :         else {
    5726           0 :           __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 2); __PYX_ERR(1, 131, __pyx_L3_error)
    5727             :         }
    5728           0 :         CYTHON_FALLTHROUGH;
    5729             :         case  3:
    5730           0 :         if (kw_args > 0) {
    5731           0 :           PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mode);
    5732           0 :           if (value) { values[3] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
    5733           0 :           else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L3_error)
    5734             :         }
    5735           0 :         CYTHON_FALLTHROUGH;
    5736             :         case  4:
    5737           0 :         if (kw_args > 0) {
    5738           0 :           PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allocate_buffer);
    5739           0 :           if (value) { values[4] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
    5740           0 :           else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L3_error)
    5741             :         }
    5742             :       }
    5743           0 :       if (unlikely(kw_args > 0)) {
    5744           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
    5745           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(1, 131, __pyx_L3_error)
    5746             :       }
    5747             :     } else {
    5748           0 :       switch (__pyx_nargs) {
    5749           0 :         case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
    5750           0 :         CYTHON_FALLTHROUGH;
    5751           0 :         case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
    5752           0 :         CYTHON_FALLTHROUGH;
    5753           0 :         case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
    5754           0 :         values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    5755           0 :         values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    5756           0 :         break;
    5757           0 :         default: goto __pyx_L5_argtuple_error;
    5758             :       }
    5759             :     }
    5760           0 :     __pyx_v_shape = ((PyObject*)values[0]);
    5761           0 :     __pyx_v_itemsize = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_itemsize == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L3_error)
    5762           0 :     __pyx_v_format = values[2];
    5763           0 :     __pyx_v_mode = values[3];
    5764           0 :     if (values[4]) {
    5765           0 :       __pyx_v_allocate_buffer = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allocate_buffer == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 132, __pyx_L3_error)
    5766             :     } else {
    5767             : 
    5768             :       /* "View.MemoryView":132
    5769             :  * 
    5770             :  *     def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None,
    5771             :  *                   mode="c", bint allocate_buffer=True):             # <<<<<<<<<<<<<<
    5772             :  * 
    5773             :  *         cdef int idx
    5774             :  */
    5775             :       __pyx_v_allocate_buffer = ((int)1);
    5776             :     }
    5777             :   }
    5778           0 :   goto __pyx_L6_skip;
    5779           0 :   __pyx_L5_argtuple_error:;
    5780           0 :   __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, __pyx_nargs); __PYX_ERR(1, 131, __pyx_L3_error)
    5781           0 :   __pyx_L6_skip:;
    5782           0 :   goto __pyx_L4_argument_unpacking_done;
    5783           0 :   __pyx_L3_error:;
    5784             :   {
    5785           0 :     Py_ssize_t __pyx_temp;
    5786           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    5787             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    5788             :     }
    5789             :   }
    5790           0 :   __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    5791           0 :   __Pyx_RefNannyFinishContext();
    5792           0 :   return -1;
    5793           0 :   __pyx_L4_argument_unpacking_done:;
    5794           0 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_shape), (&PyTuple_Type), 1, "shape", 1))) __PYX_ERR(1, 131, __pyx_L1_error)
    5795           0 :   if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) {
    5796           0 :     PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "format"); __PYX_ERR(1, 131, __pyx_L1_error)
    5797             :   }
    5798           0 :   __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(((struct __pyx_array_obj *)__pyx_v_self), __pyx_v_shape, __pyx_v_itemsize, __pyx_v_format, __pyx_v_mode, __pyx_v_allocate_buffer);
    5799             : 
    5800             :   /* "View.MemoryView":131
    5801             :  *         cdef bint dtype_is_object
    5802             :  * 
    5803             :  *     def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None,             # <<<<<<<<<<<<<<
    5804             :  *                   mode="c", bint allocate_buffer=True):
    5805             :  * 
    5806             :  */
    5807             : 
    5808             :   /* function exit code */
    5809           0 :   goto __pyx_L0;
    5810             :   __pyx_L1_error:;
    5811             :   __pyx_r = -1;
    5812           0 :   __pyx_L0:;
    5813             :   {
    5814           0 :     Py_ssize_t __pyx_temp;
    5815           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    5816             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    5817             :     }
    5818             :   }
    5819             :   __Pyx_RefNannyFinishContext();
    5820             :   return __pyx_r;
    5821             : }
    5822             : 
    5823           0 : static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer) {
    5824           0 :   int __pyx_v_idx;
    5825           0 :   Py_ssize_t __pyx_v_dim;
    5826           0 :   char __pyx_v_order;
    5827           0 :   int __pyx_r;
    5828             :   __Pyx_RefNannyDeclarations
    5829           0 :   Py_ssize_t __pyx_t_1;
    5830           0 :   int __pyx_t_2;
    5831           0 :   int __pyx_t_3;
    5832           0 :   PyObject *__pyx_t_4 = NULL;
    5833           0 :   PyObject *__pyx_t_5 = NULL;
    5834           0 :   PyObject *__pyx_t_6 = NULL;
    5835           0 :   unsigned int __pyx_t_7;
    5836           0 :   char *__pyx_t_8;
    5837           0 :   int __pyx_t_9;
    5838           0 :   Py_ssize_t __pyx_t_10;
    5839           0 :   Py_UCS4 __pyx_t_11;
    5840           0 :   int __pyx_lineno = 0;
    5841           0 :   const char *__pyx_filename = NULL;
    5842           0 :   int __pyx_clineno = 0;
    5843           0 :   __Pyx_RefNannySetupContext("__cinit__", 0);
    5844           0 :   __Pyx_INCREF(__pyx_v_format);
    5845             : 
    5846             :   /* "View.MemoryView":137
    5847             :  *         cdef Py_ssize_t dim
    5848             :  * 
    5849             :  *         self.ndim = <int> len(shape)             # <<<<<<<<<<<<<<
    5850             :  *         self.itemsize = itemsize
    5851             :  * 
    5852             :  */
    5853           0 :   if (unlikely(__pyx_v_shape == Py_None)) {
    5854           0 :     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    5855           0 :     __PYX_ERR(1, 137, __pyx_L1_error)
    5856             :   }
    5857           0 :   __pyx_t_1 = __Pyx_PyTuple_GET_SIZE(__pyx_v_shape); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(1, 137, __pyx_L1_error)
    5858           0 :   __pyx_v_self->ndim = ((int)__pyx_t_1);
    5859             : 
    5860             :   /* "View.MemoryView":138
    5861             :  * 
    5862             :  *         self.ndim = <int> len(shape)
    5863             :  *         self.itemsize = itemsize             # <<<<<<<<<<<<<<
    5864             :  * 
    5865             :  *         if not self.ndim:
    5866             :  */
    5867           0 :   __pyx_v_self->itemsize = __pyx_v_itemsize;
    5868             : 
    5869             :   /* "View.MemoryView":140
    5870             :  *         self.itemsize = itemsize
    5871             :  * 
    5872             :  *         if not self.ndim:             # <<<<<<<<<<<<<<
    5873             :  *             raise ValueError, "Empty shape tuple for cython.array"
    5874             :  * 
    5875             :  */
    5876           0 :   __pyx_t_2 = (!(__pyx_v_self->ndim != 0));
    5877           0 :   if (unlikely(__pyx_t_2)) {
    5878             : 
    5879             :     /* "View.MemoryView":141
    5880             :  * 
    5881             :  *         if not self.ndim:
    5882             :  *             raise ValueError, "Empty shape tuple for cython.array"             # <<<<<<<<<<<<<<
    5883             :  * 
    5884             :  *         if itemsize <= 0:
    5885             :  */
    5886           0 :     __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Empty_shape_tuple_for_cython_arr, 0, 0);
    5887           0 :     __PYX_ERR(1, 141, __pyx_L1_error)
    5888             : 
    5889             :     /* "View.MemoryView":140
    5890             :  *         self.itemsize = itemsize
    5891             :  * 
    5892             :  *         if not self.ndim:             # <<<<<<<<<<<<<<
    5893             :  *             raise ValueError, "Empty shape tuple for cython.array"
    5894             :  * 
    5895             :  */
    5896             :   }
    5897             : 
    5898             :   /* "View.MemoryView":143
    5899             :  *             raise ValueError, "Empty shape tuple for cython.array"
    5900             :  * 
    5901             :  *         if itemsize <= 0:             # <<<<<<<<<<<<<<
    5902             :  *             raise ValueError, "itemsize <= 0 for cython.array"
    5903             :  * 
    5904             :  */
    5905           0 :   __pyx_t_2 = (__pyx_v_itemsize <= 0);
    5906           0 :   if (unlikely(__pyx_t_2)) {
    5907             : 
    5908             :     /* "View.MemoryView":144
    5909             :  * 
    5910             :  *         if itemsize <= 0:
    5911             :  *             raise ValueError, "itemsize <= 0 for cython.array"             # <<<<<<<<<<<<<<
    5912             :  * 
    5913             :  *         if not isinstance(format, bytes):
    5914             :  */
    5915           0 :     __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_itemsize_0_for_cython_array, 0, 0);
    5916           0 :     __PYX_ERR(1, 144, __pyx_L1_error)
    5917             : 
    5918             :     /* "View.MemoryView":143
    5919             :  *             raise ValueError, "Empty shape tuple for cython.array"
    5920             :  * 
    5921             :  *         if itemsize <= 0:             # <<<<<<<<<<<<<<
    5922             :  *             raise ValueError, "itemsize <= 0 for cython.array"
    5923             :  * 
    5924             :  */
    5925             :   }
    5926             : 
    5927             :   /* "View.MemoryView":146
    5928             :  *             raise ValueError, "itemsize <= 0 for cython.array"
    5929             :  * 
    5930             :  *         if not isinstance(format, bytes):             # <<<<<<<<<<<<<<
    5931             :  *             format = format.encode('ASCII')
    5932             :  *         self._format = format  # keep a reference to the byte string
    5933             :  */
    5934           0 :   __pyx_t_2 = PyBytes_Check(__pyx_v_format); 
    5935           0 :   __pyx_t_3 = (!__pyx_t_2);
    5936           0 :   if (__pyx_t_3) {
    5937             : 
    5938             :     /* "View.MemoryView":147
    5939             :  * 
    5940             :  *         if not isinstance(format, bytes):
    5941             :  *             format = format.encode('ASCII')             # <<<<<<<<<<<<<<
    5942             :  *         self._format = format  # keep a reference to the byte string
    5943             :  *         self.format = self._format
    5944             :  */
    5945           0 :     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 147, __pyx_L1_error)
    5946           0 :     __Pyx_GOTREF(__pyx_t_5);
    5947           0 :     __pyx_t_6 = NULL;
    5948           0 :     __pyx_t_7 = 0;
    5949             :     #if CYTHON_UNPACK_METHODS
    5950           0 :     if (likely(PyMethod_Check(__pyx_t_5))) {
    5951           0 :       __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
    5952           0 :       if (likely(__pyx_t_6)) {
    5953           0 :         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
    5954           0 :         __Pyx_INCREF(__pyx_t_6);
    5955           0 :         __Pyx_INCREF(function);
    5956           0 :         __Pyx_DECREF_SET(__pyx_t_5, function);
    5957             :         __pyx_t_7 = 1;
    5958             :       }
    5959             :     }
    5960             :     #endif
    5961             :     {
    5962           0 :       PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_n_s_ASCII};
    5963           0 :       __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    5964           0 :       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    5965           0 :       if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 147, __pyx_L1_error)
    5966           0 :       __Pyx_GOTREF(__pyx_t_4);
    5967           0 :       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    5968             :     }
    5969           0 :     __Pyx_DECREF_SET(__pyx_v_format, __pyx_t_4);
    5970             :     __pyx_t_4 = 0;
    5971             : 
    5972             :     /* "View.MemoryView":146
    5973             :  *             raise ValueError, "itemsize <= 0 for cython.array"
    5974             :  * 
    5975             :  *         if not isinstance(format, bytes):             # <<<<<<<<<<<<<<
    5976             :  *             format = format.encode('ASCII')
    5977             :  *         self._format = format  # keep a reference to the byte string
    5978             :  */
    5979             :   }
    5980             : 
    5981             :   /* "View.MemoryView":148
    5982             :  *         if not isinstance(format, bytes):
    5983             :  *             format = format.encode('ASCII')
    5984             :  *         self._format = format  # keep a reference to the byte string             # <<<<<<<<<<<<<<
    5985             :  *         self.format = self._format
    5986             :  * 
    5987             :  */
    5988           0 :   if (!(likely(PyBytes_CheckExact(__pyx_v_format))||((__pyx_v_format) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_format))) __PYX_ERR(1, 148, __pyx_L1_error)
    5989           0 :   __pyx_t_4 = __pyx_v_format;
    5990           0 :   __Pyx_INCREF(__pyx_t_4);
    5991           0 :   __Pyx_GIVEREF(__pyx_t_4);
    5992           0 :   __Pyx_GOTREF(__pyx_v_self->_format);
    5993           0 :   __Pyx_DECREF(__pyx_v_self->_format);
    5994           0 :   __pyx_v_self->_format = ((PyObject*)__pyx_t_4);
    5995           0 :   __pyx_t_4 = 0;
    5996             : 
    5997             :   /* "View.MemoryView":149
    5998             :  *             format = format.encode('ASCII')
    5999             :  *         self._format = format  # keep a reference to the byte string
    6000             :  *         self.format = self._format             # <<<<<<<<<<<<<<
    6001             :  * 
    6002             :  * 
    6003             :  */
    6004           0 :   if (unlikely(__pyx_v_self->_format == Py_None)) {
    6005           0 :     PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
    6006           0 :     __PYX_ERR(1, 149, __pyx_L1_error)
    6007             :   }
    6008           0 :   __pyx_t_8 = __Pyx_PyBytes_AsWritableString(__pyx_v_self->_format); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(1, 149, __pyx_L1_error)
    6009           0 :   __pyx_v_self->format = __pyx_t_8;
    6010             : 
    6011             :   /* "View.MemoryView":152
    6012             :  * 
    6013             :  * 
    6014             :  *         self._shape = <Py_ssize_t *> PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2)             # <<<<<<<<<<<<<<
    6015             :  *         self._strides = self._shape + self.ndim
    6016             :  * 
    6017             :  */
    6018           0 :   __pyx_v_self->_shape = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * __pyx_v_self->ndim) * 2)));
    6019             : 
    6020             :   /* "View.MemoryView":153
    6021             :  * 
    6022             :  *         self._shape = <Py_ssize_t *> PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2)
    6023             :  *         self._strides = self._shape + self.ndim             # <<<<<<<<<<<<<<
    6024             :  * 
    6025             :  *         if not self._shape:
    6026             :  */
    6027           0 :   __pyx_v_self->_strides = (__pyx_v_self->_shape + __pyx_v_self->ndim);
    6028             : 
    6029             :   /* "View.MemoryView":155
    6030             :  *         self._strides = self._shape + self.ndim
    6031             :  * 
    6032             :  *         if not self._shape:             # <<<<<<<<<<<<<<
    6033             :  *             raise MemoryError, "unable to allocate shape and strides."
    6034             :  * 
    6035             :  */
    6036           0 :   __pyx_t_3 = (!(__pyx_v_self->_shape != 0));
    6037           0 :   if (unlikely(__pyx_t_3)) {
    6038             : 
    6039             :     /* "View.MemoryView":156
    6040             :  * 
    6041             :  *         if not self._shape:
    6042             :  *             raise MemoryError, "unable to allocate shape and strides."             # <<<<<<<<<<<<<<
    6043             :  * 
    6044             :  * 
    6045             :  */
    6046           0 :     __Pyx_Raise(__pyx_builtin_MemoryError, __pyx_kp_s_unable_to_allocate_shape_and_str, 0, 0);
    6047           0 :     __PYX_ERR(1, 156, __pyx_L1_error)
    6048             : 
    6049             :     /* "View.MemoryView":155
    6050             :  *         self._strides = self._shape + self.ndim
    6051             :  * 
    6052             :  *         if not self._shape:             # <<<<<<<<<<<<<<
    6053             :  *             raise MemoryError, "unable to allocate shape and strides."
    6054             :  * 
    6055             :  */
    6056             :   }
    6057             : 
    6058             :   /* "View.MemoryView":159
    6059             :  * 
    6060             :  * 
    6061             :  *         for idx, dim in enumerate(shape):             # <<<<<<<<<<<<<<
    6062             :  *             if dim <= 0:
    6063             :  *                 raise ValueError, f"Invalid shape in axis {idx}: {dim}."
    6064             :  */
    6065           0 :   __pyx_t_9 = 0;
    6066           0 :   __pyx_t_4 = __pyx_v_shape; __Pyx_INCREF(__pyx_t_4);
    6067             :   __pyx_t_1 = 0;
    6068           0 :   for (;;) {
    6069           0 :     {
    6070           0 :       Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
    6071             :       #if !CYTHON_ASSUME_SAFE_MACROS
    6072             :       if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 159, __pyx_L1_error)
    6073             :       #endif
    6074           0 :       if (__pyx_t_1 >= __pyx_temp) break;
    6075             :     }
    6076             :     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    6077           0 :     __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_t_1++; if (unlikely((0 < 0))) __PYX_ERR(1, 159, __pyx_L1_error)
    6078             :     #else
    6079             :     __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 159, __pyx_L1_error)
    6080             :     __Pyx_GOTREF(__pyx_t_5);
    6081             :     #endif
    6082           0 :     __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 159, __pyx_L1_error)
    6083           0 :     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    6084           0 :     __pyx_v_dim = __pyx_t_10;
    6085           0 :     __pyx_v_idx = __pyx_t_9;
    6086           0 :     __pyx_t_9 = (__pyx_t_9 + 1);
    6087             : 
    6088             :     /* "View.MemoryView":160
    6089             :  * 
    6090             :  *         for idx, dim in enumerate(shape):
    6091             :  *             if dim <= 0:             # <<<<<<<<<<<<<<
    6092             :  *                 raise ValueError, f"Invalid shape in axis {idx}: {dim}."
    6093             :  *             self._shape[idx] = dim
    6094             :  */
    6095           0 :     __pyx_t_3 = (__pyx_v_dim <= 0);
    6096           0 :     if (unlikely(__pyx_t_3)) {
    6097             : 
    6098             :       /* "View.MemoryView":161
    6099             :  *         for idx, dim in enumerate(shape):
    6100             :  *             if dim <= 0:
    6101             :  *                 raise ValueError, f"Invalid shape in axis {idx}: {dim}."             # <<<<<<<<<<<<<<
    6102             :  *             self._shape[idx] = dim
    6103             :  * 
    6104             :  */
    6105           0 :       __pyx_t_5 = PyTuple_New(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 161, __pyx_L1_error)
    6106           0 :       __Pyx_GOTREF(__pyx_t_5);
    6107           0 :       __pyx_t_10 = 0;
    6108           0 :       __pyx_t_11 = 127;
    6109           0 :       __Pyx_INCREF(__pyx_kp_u_Invalid_shape_in_axis);
    6110           0 :       __pyx_t_10 += 22;
    6111           0 :       __Pyx_GIVEREF(__pyx_kp_u_Invalid_shape_in_axis);
    6112           0 :       PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_kp_u_Invalid_shape_in_axis);
    6113           0 :       __pyx_t_6 = __Pyx_PyUnicode_From_int(__pyx_v_idx, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 161, __pyx_L1_error)
    6114           0 :       __Pyx_GOTREF(__pyx_t_6);
    6115           0 :       __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
    6116           0 :       __Pyx_GIVEREF(__pyx_t_6);
    6117           0 :       PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6);
    6118           0 :       __pyx_t_6 = 0;
    6119           0 :       __Pyx_INCREF(__pyx_kp_u_);
    6120           0 :       __pyx_t_10 += 2;
    6121           0 :       __Pyx_GIVEREF(__pyx_kp_u_);
    6122           0 :       PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_kp_u_);
    6123           0 :       __pyx_t_6 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_dim, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 161, __pyx_L1_error)
    6124           0 :       __Pyx_GOTREF(__pyx_t_6);
    6125           0 :       __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
    6126           0 :       __Pyx_GIVEREF(__pyx_t_6);
    6127           0 :       PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_6);
    6128           0 :       __pyx_t_6 = 0;
    6129           0 :       __Pyx_INCREF(__pyx_kp_u__2);
    6130           0 :       __pyx_t_10 += 1;
    6131           0 :       __Pyx_GIVEREF(__pyx_kp_u__2);
    6132           0 :       PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_kp_u__2);
    6133           0 :       __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_5, 5, __pyx_t_10, __pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 161, __pyx_L1_error)
    6134           0 :       __Pyx_GOTREF(__pyx_t_6);
    6135           0 :       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    6136           0 :       __Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_6, 0, 0);
    6137           0 :       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    6138           0 :       __PYX_ERR(1, 161, __pyx_L1_error)
    6139             : 
    6140             :       /* "View.MemoryView":160
    6141             :  * 
    6142             :  *         for idx, dim in enumerate(shape):
    6143             :  *             if dim <= 0:             # <<<<<<<<<<<<<<
    6144             :  *                 raise ValueError, f"Invalid shape in axis {idx}: {dim}."
    6145             :  *             self._shape[idx] = dim
    6146             :  */
    6147             :     }
    6148             : 
    6149             :     /* "View.MemoryView":162
    6150             :  *             if dim <= 0:
    6151             :  *                 raise ValueError, f"Invalid shape in axis {idx}: {dim}."
    6152             :  *             self._shape[idx] = dim             # <<<<<<<<<<<<<<
    6153             :  * 
    6154             :  *         cdef char order
    6155             :  */
    6156           0 :     (__pyx_v_self->_shape[__pyx_v_idx]) = __pyx_v_dim;
    6157             : 
    6158             :     /* "View.MemoryView":159
    6159             :  * 
    6160             :  * 
    6161             :  *         for idx, dim in enumerate(shape):             # <<<<<<<<<<<<<<
    6162             :  *             if dim <= 0:
    6163             :  *                 raise ValueError, f"Invalid shape in axis {idx}: {dim}."
    6164             :  */
    6165             :   }
    6166           0 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    6167             : 
    6168             :   /* "View.MemoryView":165
    6169             :  * 
    6170             :  *         cdef char order
    6171             :  *         if mode == 'c':             # <<<<<<<<<<<<<<
    6172             :  *             order = b'C'
    6173             :  *             self.mode = u'c'
    6174             :  */
    6175           0 :   __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_c, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 165, __pyx_L1_error)
    6176           0 :   if (__pyx_t_3) {
    6177             : 
    6178             :     /* "View.MemoryView":166
    6179             :  *         cdef char order
    6180             :  *         if mode == 'c':
    6181             :  *             order = b'C'             # <<<<<<<<<<<<<<
    6182             :  *             self.mode = u'c'
    6183             :  *         elif mode == 'fortran':
    6184             :  */
    6185           0 :     __pyx_v_order = 'C';
    6186             : 
    6187             :     /* "View.MemoryView":167
    6188             :  *         if mode == 'c':
    6189             :  *             order = b'C'
    6190             :  *             self.mode = u'c'             # <<<<<<<<<<<<<<
    6191             :  *         elif mode == 'fortran':
    6192             :  *             order = b'F'
    6193             :  */
    6194           0 :     __Pyx_INCREF(__pyx_n_u_c);
    6195           0 :     __Pyx_GIVEREF(__pyx_n_u_c);
    6196           0 :     __Pyx_GOTREF(__pyx_v_self->mode);
    6197           0 :     __Pyx_DECREF(__pyx_v_self->mode);
    6198           0 :     __pyx_v_self->mode = __pyx_n_u_c;
    6199             : 
    6200             :     /* "View.MemoryView":165
    6201             :  * 
    6202             :  *         cdef char order
    6203             :  *         if mode == 'c':             # <<<<<<<<<<<<<<
    6204             :  *             order = b'C'
    6205             :  *             self.mode = u'c'
    6206             :  */
    6207           0 :     goto __pyx_L11;
    6208             :   }
    6209             : 
    6210             :   /* "View.MemoryView":168
    6211             :  *             order = b'C'
    6212             :  *             self.mode = u'c'
    6213             :  *         elif mode == 'fortran':             # <<<<<<<<<<<<<<
    6214             :  *             order = b'F'
    6215             :  *             self.mode = u'fortran'
    6216             :  */
    6217           0 :   __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_fortran, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 168, __pyx_L1_error)
    6218           0 :   if (likely(__pyx_t_3)) {
    6219             : 
    6220             :     /* "View.MemoryView":169
    6221             :  *             self.mode = u'c'
    6222             :  *         elif mode == 'fortran':
    6223             :  *             order = b'F'             # <<<<<<<<<<<<<<
    6224             :  *             self.mode = u'fortran'
    6225             :  *         else:
    6226             :  */
    6227           0 :     __pyx_v_order = 'F';
    6228             : 
    6229             :     /* "View.MemoryView":170
    6230             :  *         elif mode == 'fortran':
    6231             :  *             order = b'F'
    6232             :  *             self.mode = u'fortran'             # <<<<<<<<<<<<<<
    6233             :  *         else:
    6234             :  *             raise ValueError, f"Invalid mode, expected 'c' or 'fortran', got {mode}"
    6235             :  */
    6236           0 :     __Pyx_INCREF(__pyx_n_u_fortran);
    6237           0 :     __Pyx_GIVEREF(__pyx_n_u_fortran);
    6238           0 :     __Pyx_GOTREF(__pyx_v_self->mode);
    6239           0 :     __Pyx_DECREF(__pyx_v_self->mode);
    6240           0 :     __pyx_v_self->mode = __pyx_n_u_fortran;
    6241             : 
    6242             :     /* "View.MemoryView":168
    6243             :  *             order = b'C'
    6244             :  *             self.mode = u'c'
    6245             :  *         elif mode == 'fortran':             # <<<<<<<<<<<<<<
    6246             :  *             order = b'F'
    6247             :  *             self.mode = u'fortran'
    6248             :  */
    6249           0 :     goto __pyx_L11;
    6250             :   }
    6251             : 
    6252             :   /* "View.MemoryView":172
    6253             :  *             self.mode = u'fortran'
    6254             :  *         else:
    6255             :  *             raise ValueError, f"Invalid mode, expected 'c' or 'fortran', got {mode}"             # <<<<<<<<<<<<<<
    6256             :  * 
    6257             :  *         self.len = fill_contig_strides_array(self._shape, self._strides, itemsize, self.ndim, order)
    6258             :  */
    6259             :   /*else*/ {
    6260           0 :     __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_mode, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 172, __pyx_L1_error)
    6261           0 :     __Pyx_GOTREF(__pyx_t_4);
    6262           0 :     __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_mode_expected_c_or_fortr, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 172, __pyx_L1_error)
    6263           0 :     __Pyx_GOTREF(__pyx_t_6);
    6264           0 :     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    6265           0 :     __Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_6, 0, 0);
    6266           0 :     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    6267           0 :     __PYX_ERR(1, 172, __pyx_L1_error)
    6268             :   }
    6269           0 :   __pyx_L11:;
    6270             : 
    6271             :   /* "View.MemoryView":174
    6272             :  *             raise ValueError, f"Invalid mode, expected 'c' or 'fortran', got {mode}"
    6273             :  * 
    6274             :  *         self.len = fill_contig_strides_array(self._shape, self._strides, itemsize, self.ndim, order)             # <<<<<<<<<<<<<<
    6275             :  * 
    6276             :  *         self.free_data = allocate_buffer
    6277             :  */
    6278           0 :   __pyx_v_self->len = __pyx_fill_contig_strides_array(__pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_itemsize, __pyx_v_self->ndim, __pyx_v_order);
    6279             : 
    6280             :   /* "View.MemoryView":176
    6281             :  *         self.len = fill_contig_strides_array(self._shape, self._strides, itemsize, self.ndim, order)
    6282             :  * 
    6283             :  *         self.free_data = allocate_buffer             # <<<<<<<<<<<<<<
    6284             :  *         self.dtype_is_object = format == b'O'
    6285             :  * 
    6286             :  */
    6287           0 :   __pyx_v_self->free_data = __pyx_v_allocate_buffer;
    6288             : 
    6289             :   /* "View.MemoryView":177
    6290             :  * 
    6291             :  *         self.free_data = allocate_buffer
    6292             :  *         self.dtype_is_object = format == b'O'             # <<<<<<<<<<<<<<
    6293             :  * 
    6294             :  *         if allocate_buffer:
    6295             :  */
    6296           0 :   __pyx_t_6 = PyObject_RichCompare(__pyx_v_format, __pyx_n_b_O, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 177, __pyx_L1_error)
    6297           0 :   __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 177, __pyx_L1_error)
    6298           0 :   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    6299           0 :   __pyx_v_self->dtype_is_object = __pyx_t_3;
    6300             : 
    6301             :   /* "View.MemoryView":179
    6302             :  *         self.dtype_is_object = format == b'O'
    6303             :  * 
    6304             :  *         if allocate_buffer:             # <<<<<<<<<<<<<<
    6305             :  *             _allocate_buffer(self)
    6306             :  * 
    6307             :  */
    6308           0 :   if (__pyx_v_allocate_buffer) {
    6309             : 
    6310             :     /* "View.MemoryView":180
    6311             :  * 
    6312             :  *         if allocate_buffer:
    6313             :  *             _allocate_buffer(self)             # <<<<<<<<<<<<<<
    6314             :  * 
    6315             :  *     @cname('getbuffer')
    6316             :  */
    6317           0 :     __pyx_t_9 = __pyx_array_allocate_buffer(__pyx_v_self); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 180, __pyx_L1_error)
    6318             : 
    6319             :     /* "View.MemoryView":179
    6320             :  *         self.dtype_is_object = format == b'O'
    6321             :  * 
    6322             :  *         if allocate_buffer:             # <<<<<<<<<<<<<<
    6323             :  *             _allocate_buffer(self)
    6324             :  * 
    6325             :  */
    6326             :   }
    6327             : 
    6328             :   /* "View.MemoryView":131
    6329             :  *         cdef bint dtype_is_object
    6330             :  * 
    6331             :  *     def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None,             # <<<<<<<<<<<<<<
    6332             :  *                   mode="c", bint allocate_buffer=True):
    6333             :  * 
    6334             :  */
    6335             : 
    6336             :   /* function exit code */
    6337           0 :   __pyx_r = 0;
    6338           0 :   goto __pyx_L0;
    6339           0 :   __pyx_L1_error:;
    6340           0 :   __Pyx_XDECREF(__pyx_t_4);
    6341           0 :   __Pyx_XDECREF(__pyx_t_5);
    6342           0 :   __Pyx_XDECREF(__pyx_t_6);
    6343           0 :   __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    6344           0 :   __pyx_r = -1;
    6345           0 :   __pyx_L0:;
    6346           0 :   __Pyx_XDECREF(__pyx_v_format);
    6347           0 :   __Pyx_RefNannyFinishContext();
    6348           0 :   return __pyx_r;
    6349             : }
    6350             : 
    6351             : /* "View.MemoryView":182
    6352             :  *             _allocate_buffer(self)
    6353             :  * 
    6354             :  *     @cname('getbuffer')             # <<<<<<<<<<<<<<
    6355             :  *     def __getbuffer__(self, Py_buffer *info, int flags):
    6356             :  *         cdef int bufmode = -1
    6357             :  */
    6358             : 
    6359             : /* Python wrapper */
    6360             : CYTHON_UNUSED static int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
    6361           0 : CYTHON_UNUSED static int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
    6362           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    6363           0 :   int __pyx_r;
    6364             :   __Pyx_RefNannyDeclarations
    6365           0 :   __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0);
    6366           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
    6367           0 :   __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(((struct __pyx_array_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags));
    6368             : 
    6369             :   /* function exit code */
    6370           0 :   __Pyx_RefNannyFinishContext();
    6371           0 :   return __pyx_r;
    6372             : }
    6373             : 
    6374           0 : static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
    6375           0 :   int __pyx_v_bufmode;
    6376           0 :   int __pyx_r;
    6377             :   __Pyx_RefNannyDeclarations
    6378           0 :   int __pyx_t_1;
    6379           0 :   char *__pyx_t_2;
    6380           0 :   Py_ssize_t __pyx_t_3;
    6381           0 :   int __pyx_t_4;
    6382           0 :   Py_ssize_t *__pyx_t_5;
    6383           0 :   int __pyx_lineno = 0;
    6384           0 :   const char *__pyx_filename = NULL;
    6385           0 :   int __pyx_clineno = 0;
    6386           0 :   if (unlikely(__pyx_v_info == NULL)) {
    6387           0 :     PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete");
    6388           0 :     return -1;
    6389             :   }
    6390           0 :   __Pyx_RefNannySetupContext("__getbuffer__", 0);
    6391           0 :   __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None);
    6392           0 :   __Pyx_GIVEREF(__pyx_v_info->obj);
    6393             : 
    6394             :   /* "View.MemoryView":184
    6395             :  *     @cname('getbuffer')
    6396             :  *     def __getbuffer__(self, Py_buffer *info, int flags):
    6397             :  *         cdef int bufmode = -1             # <<<<<<<<<<<<<<
    6398             :  *         if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS):
    6399             :  *             if self.mode == u"c":
    6400             :  */
    6401           0 :   __pyx_v_bufmode = -1;
    6402             : 
    6403             :   /* "View.MemoryView":185
    6404             :  *     def __getbuffer__(self, Py_buffer *info, int flags):
    6405             :  *         cdef int bufmode = -1
    6406             :  *         if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS):             # <<<<<<<<<<<<<<
    6407             :  *             if self.mode == u"c":
    6408             :  *                 bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
    6409             :  */
    6410           0 :   __pyx_t_1 = ((__pyx_v_flags & ((PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS) | PyBUF_ANY_CONTIGUOUS)) != 0);
    6411           0 :   if (__pyx_t_1) {
    6412             : 
    6413             :     /* "View.MemoryView":186
    6414             :  *         cdef int bufmode = -1
    6415             :  *         if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS):
    6416             :  *             if self.mode == u"c":             # <<<<<<<<<<<<<<
    6417             :  *                 bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
    6418             :  *             elif self.mode == u"fortran":
    6419             :  */
    6420           0 :     __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_c, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 186, __pyx_L1_error)
    6421           0 :     if (__pyx_t_1) {
    6422             : 
    6423             :       /* "View.MemoryView":187
    6424             :  *         if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS):
    6425             :  *             if self.mode == u"c":
    6426             :  *                 bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS             # <<<<<<<<<<<<<<
    6427             :  *             elif self.mode == u"fortran":
    6428             :  *                 bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
    6429             :  */
    6430           0 :       __pyx_v_bufmode = (PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS);
    6431             : 
    6432             :       /* "View.MemoryView":186
    6433             :  *         cdef int bufmode = -1
    6434             :  *         if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS):
    6435             :  *             if self.mode == u"c":             # <<<<<<<<<<<<<<
    6436             :  *                 bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
    6437             :  *             elif self.mode == u"fortran":
    6438             :  */
    6439           0 :       goto __pyx_L4;
    6440             :     }
    6441             : 
    6442             :     /* "View.MemoryView":188
    6443             :  *             if self.mode == u"c":
    6444             :  *                 bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
    6445             :  *             elif self.mode == u"fortran":             # <<<<<<<<<<<<<<
    6446             :  *                 bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
    6447             :  *             if not (flags & bufmode):
    6448             :  */
    6449           0 :     __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_fortran, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 188, __pyx_L1_error)
    6450           0 :     if (__pyx_t_1) {
    6451             : 
    6452             :       /* "View.MemoryView":189
    6453             :  *                 bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
    6454             :  *             elif self.mode == u"fortran":
    6455             :  *                 bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS             # <<<<<<<<<<<<<<
    6456             :  *             if not (flags & bufmode):
    6457             :  *                 raise ValueError, "Can only create a buffer that is contiguous in memory."
    6458             :  */
    6459           0 :       __pyx_v_bufmode = (PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS);
    6460             : 
    6461             :       /* "View.MemoryView":188
    6462             :  *             if self.mode == u"c":
    6463             :  *                 bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
    6464             :  *             elif self.mode == u"fortran":             # <<<<<<<<<<<<<<
    6465             :  *                 bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
    6466             :  *             if not (flags & bufmode):
    6467             :  */
    6468             :     }
    6469           0 :     __pyx_L4:;
    6470             : 
    6471             :     /* "View.MemoryView":190
    6472             :  *             elif self.mode == u"fortran":
    6473             :  *                 bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
    6474             :  *             if not (flags & bufmode):             # <<<<<<<<<<<<<<
    6475             :  *                 raise ValueError, "Can only create a buffer that is contiguous in memory."
    6476             :  *         info.buf = self.data
    6477             :  */
    6478           0 :     __pyx_t_1 = (!((__pyx_v_flags & __pyx_v_bufmode) != 0));
    6479           0 :     if (unlikely(__pyx_t_1)) {
    6480             : 
    6481             :       /* "View.MemoryView":191
    6482             :  *                 bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
    6483             :  *             if not (flags & bufmode):
    6484             :  *                 raise ValueError, "Can only create a buffer that is contiguous in memory."             # <<<<<<<<<<<<<<
    6485             :  *         info.buf = self.data
    6486             :  *         info.len = self.len
    6487             :  */
    6488           0 :       __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Can_only_create_a_buffer_that_is, 0, 0);
    6489           0 :       __PYX_ERR(1, 191, __pyx_L1_error)
    6490             : 
    6491             :       /* "View.MemoryView":190
    6492             :  *             elif self.mode == u"fortran":
    6493             :  *                 bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
    6494             :  *             if not (flags & bufmode):             # <<<<<<<<<<<<<<
    6495             :  *                 raise ValueError, "Can only create a buffer that is contiguous in memory."
    6496             :  *         info.buf = self.data
    6497             :  */
    6498             :     }
    6499             : 
    6500             :     /* "View.MemoryView":185
    6501             :  *     def __getbuffer__(self, Py_buffer *info, int flags):
    6502             :  *         cdef int bufmode = -1
    6503             :  *         if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS):             # <<<<<<<<<<<<<<
    6504             :  *             if self.mode == u"c":
    6505             :  *                 bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
    6506             :  */
    6507             :   }
    6508             : 
    6509             :   /* "View.MemoryView":192
    6510             :  *             if not (flags & bufmode):
    6511             :  *                 raise ValueError, "Can only create a buffer that is contiguous in memory."
    6512             :  *         info.buf = self.data             # <<<<<<<<<<<<<<
    6513             :  *         info.len = self.len
    6514             :  * 
    6515             :  */
    6516           0 :   __pyx_t_2 = __pyx_v_self->data;
    6517           0 :   __pyx_v_info->buf = __pyx_t_2;
    6518             : 
    6519             :   /* "View.MemoryView":193
    6520             :  *                 raise ValueError, "Can only create a buffer that is contiguous in memory."
    6521             :  *         info.buf = self.data
    6522             :  *         info.len = self.len             # <<<<<<<<<<<<<<
    6523             :  * 
    6524             :  *         if flags & PyBUF_STRIDES:
    6525             :  */
    6526           0 :   __pyx_t_3 = __pyx_v_self->len;
    6527           0 :   __pyx_v_info->len = __pyx_t_3;
    6528             : 
    6529             :   /* "View.MemoryView":195
    6530             :  *         info.len = self.len
    6531             :  * 
    6532             :  *         if flags & PyBUF_STRIDES:             # <<<<<<<<<<<<<<
    6533             :  *             info.ndim = self.ndim
    6534             :  *             info.shape = self._shape
    6535             :  */
    6536           0 :   __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0);
    6537           0 :   if (__pyx_t_1) {
    6538             : 
    6539             :     /* "View.MemoryView":196
    6540             :  * 
    6541             :  *         if flags & PyBUF_STRIDES:
    6542             :  *             info.ndim = self.ndim             # <<<<<<<<<<<<<<
    6543             :  *             info.shape = self._shape
    6544             :  *             info.strides = self._strides
    6545             :  */
    6546           0 :     __pyx_t_4 = __pyx_v_self->ndim;
    6547           0 :     __pyx_v_info->ndim = __pyx_t_4;
    6548             : 
    6549             :     /* "View.MemoryView":197
    6550             :  *         if flags & PyBUF_STRIDES:
    6551             :  *             info.ndim = self.ndim
    6552             :  *             info.shape = self._shape             # <<<<<<<<<<<<<<
    6553             :  *             info.strides = self._strides
    6554             :  *         else:
    6555             :  */
    6556           0 :     __pyx_t_5 = __pyx_v_self->_shape;
    6557           0 :     __pyx_v_info->shape = __pyx_t_5;
    6558             : 
    6559             :     /* "View.MemoryView":198
    6560             :  *             info.ndim = self.ndim
    6561             :  *             info.shape = self._shape
    6562             :  *             info.strides = self._strides             # <<<<<<<<<<<<<<
    6563             :  *         else:
    6564             :  *             info.ndim = 1
    6565             :  */
    6566           0 :     __pyx_t_5 = __pyx_v_self->_strides;
    6567           0 :     __pyx_v_info->strides = __pyx_t_5;
    6568             : 
    6569             :     /* "View.MemoryView":195
    6570             :  *         info.len = self.len
    6571             :  * 
    6572             :  *         if flags & PyBUF_STRIDES:             # <<<<<<<<<<<<<<
    6573             :  *             info.ndim = self.ndim
    6574             :  *             info.shape = self._shape
    6575             :  */
    6576           0 :     goto __pyx_L6;
    6577             :   }
    6578             : 
    6579             :   /* "View.MemoryView":200
    6580             :  *             info.strides = self._strides
    6581             :  *         else:
    6582             :  *             info.ndim = 1             # <<<<<<<<<<<<<<
    6583             :  *             info.shape = &self.len if flags & PyBUF_ND else NULL
    6584             :  *             info.strides = NULL
    6585             :  */
    6586             :   /*else*/ {
    6587           0 :     __pyx_v_info->ndim = 1;
    6588             : 
    6589             :     /* "View.MemoryView":201
    6590             :  *         else:
    6591             :  *             info.ndim = 1
    6592             :  *             info.shape = &self.len if flags & PyBUF_ND else NULL             # <<<<<<<<<<<<<<
    6593             :  *             info.strides = NULL
    6594             :  * 
    6595             :  */
    6596           0 :     __pyx_t_1 = ((__pyx_v_flags & PyBUF_ND) != 0);
    6597           0 :     if (__pyx_t_1) {
    6598             :       __pyx_t_5 = (&__pyx_v_self->len);
    6599             :     } else {
    6600             :       __pyx_t_5 = NULL;
    6601             :     }
    6602           0 :     __pyx_v_info->shape = __pyx_t_5;
    6603             : 
    6604             :     /* "View.MemoryView":202
    6605             :  *             info.ndim = 1
    6606             :  *             info.shape = &self.len if flags & PyBUF_ND else NULL
    6607             :  *             info.strides = NULL             # <<<<<<<<<<<<<<
    6608             :  * 
    6609             :  *         info.suboffsets = NULL
    6610             :  */
    6611           0 :     __pyx_v_info->strides = NULL;
    6612             :   }
    6613           0 :   __pyx_L6:;
    6614             : 
    6615             :   /* "View.MemoryView":204
    6616             :  *             info.strides = NULL
    6617             :  * 
    6618             :  *         info.suboffsets = NULL             # <<<<<<<<<<<<<<
    6619             :  *         info.itemsize = self.itemsize
    6620             :  *         info.readonly = 0
    6621             :  */
    6622           0 :   __pyx_v_info->suboffsets = NULL;
    6623             : 
    6624             :   /* "View.MemoryView":205
    6625             :  * 
    6626             :  *         info.suboffsets = NULL
    6627             :  *         info.itemsize = self.itemsize             # <<<<<<<<<<<<<<
    6628             :  *         info.readonly = 0
    6629             :  *         info.format = self.format if flags & PyBUF_FORMAT else NULL
    6630             :  */
    6631           0 :   __pyx_t_3 = __pyx_v_self->itemsize;
    6632           0 :   __pyx_v_info->itemsize = __pyx_t_3;
    6633             : 
    6634             :   /* "View.MemoryView":206
    6635             :  *         info.suboffsets = NULL
    6636             :  *         info.itemsize = self.itemsize
    6637             :  *         info.readonly = 0             # <<<<<<<<<<<<<<
    6638             :  *         info.format = self.format if flags & PyBUF_FORMAT else NULL
    6639             :  *         info.obj = self
    6640             :  */
    6641           0 :   __pyx_v_info->readonly = 0;
    6642             : 
    6643             :   /* "View.MemoryView":207
    6644             :  *         info.itemsize = self.itemsize
    6645             :  *         info.readonly = 0
    6646             :  *         info.format = self.format if flags & PyBUF_FORMAT else NULL             # <<<<<<<<<<<<<<
    6647             :  *         info.obj = self
    6648             :  * 
    6649             :  */
    6650           0 :   __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
    6651           0 :   if (__pyx_t_1) {
    6652           0 :     __pyx_t_2 = __pyx_v_self->format;
    6653             :   } else {
    6654             :     __pyx_t_2 = NULL;
    6655             :   }
    6656           0 :   __pyx_v_info->format = __pyx_t_2;
    6657             : 
    6658             :   /* "View.MemoryView":208
    6659             :  *         info.readonly = 0
    6660             :  *         info.format = self.format if flags & PyBUF_FORMAT else NULL
    6661             :  *         info.obj = self             # <<<<<<<<<<<<<<
    6662             :  * 
    6663             :  *     def __dealloc__(array self):
    6664             :  */
    6665           0 :   __Pyx_INCREF((PyObject *)__pyx_v_self);
    6666           0 :   __Pyx_GIVEREF((PyObject *)__pyx_v_self);
    6667           0 :   __Pyx_GOTREF(__pyx_v_info->obj);
    6668           0 :   __Pyx_DECREF(__pyx_v_info->obj);
    6669           0 :   __pyx_v_info->obj = ((PyObject *)__pyx_v_self);
    6670             : 
    6671             :   /* "View.MemoryView":182
    6672             :  *             _allocate_buffer(self)
    6673             :  * 
    6674             :  *     @cname('getbuffer')             # <<<<<<<<<<<<<<
    6675             :  *     def __getbuffer__(self, Py_buffer *info, int flags):
    6676             :  *         cdef int bufmode = -1
    6677             :  */
    6678             : 
    6679             :   /* function exit code */
    6680           0 :   __pyx_r = 0;
    6681           0 :   goto __pyx_L0;
    6682           0 :   __pyx_L1_error:;
    6683           0 :   __Pyx_AddTraceback("View.MemoryView.array.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    6684           0 :   __pyx_r = -1;
    6685           0 :   if (__pyx_v_info->obj != NULL) {
    6686           0 :     __Pyx_GOTREF(__pyx_v_info->obj);
    6687           0 :     __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
    6688             :   }
    6689           0 :   goto __pyx_L2;
    6690           0 :   __pyx_L0:;
    6691           0 :   if (__pyx_v_info->obj == Py_None) {
    6692           0 :     __Pyx_GOTREF(__pyx_v_info->obj);
    6693           0 :     __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
    6694             :   }
    6695           0 :   __pyx_L2:;
    6696             :   __Pyx_RefNannyFinishContext();
    6697             :   return __pyx_r;
    6698             : }
    6699             : 
    6700             : /* "View.MemoryView":210
    6701             :  *         info.obj = self
    6702             :  * 
    6703             :  *     def __dealloc__(array self):             # <<<<<<<<<<<<<<
    6704             :  *         if self.callback_free_data != NULL:
    6705             :  *             self.callback_free_data(self.data)
    6706             :  */
    6707             : 
    6708             : /* Python wrapper */
    6709             : static void __pyx_array___dealloc__(PyObject *__pyx_v_self); /*proto*/
    6710           0 : static void __pyx_array___dealloc__(PyObject *__pyx_v_self) {
    6711           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    6712             :   __Pyx_RefNannyDeclarations
    6713           0 :   __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
    6714           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
    6715           0 :   __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(((struct __pyx_array_obj *)__pyx_v_self));
    6716             : 
    6717             :   /* function exit code */
    6718           0 :   __Pyx_RefNannyFinishContext();
    6719             : }
    6720             : 
    6721           0 : static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self) {
    6722           0 :   int __pyx_t_1;
    6723           0 :   int __pyx_t_2;
    6724             : 
    6725             :   /* "View.MemoryView":211
    6726             :  * 
    6727             :  *     def __dealloc__(array self):
    6728             :  *         if self.callback_free_data != NULL:             # <<<<<<<<<<<<<<
    6729             :  *             self.callback_free_data(self.data)
    6730             :  *         elif self.free_data and self.data is not NULL:
    6731             :  */
    6732           0 :   __pyx_t_1 = (__pyx_v_self->callback_free_data != NULL);
    6733           0 :   if (__pyx_t_1) {
    6734             : 
    6735             :     /* "View.MemoryView":212
    6736             :  *     def __dealloc__(array self):
    6737             :  *         if self.callback_free_data != NULL:
    6738             :  *             self.callback_free_data(self.data)             # <<<<<<<<<<<<<<
    6739             :  *         elif self.free_data and self.data is not NULL:
    6740             :  *             if self.dtype_is_object:
    6741             :  */
    6742           0 :     __pyx_v_self->callback_free_data(__pyx_v_self->data);
    6743             : 
    6744             :     /* "View.MemoryView":211
    6745             :  * 
    6746             :  *     def __dealloc__(array self):
    6747             :  *         if self.callback_free_data != NULL:             # <<<<<<<<<<<<<<
    6748             :  *             self.callback_free_data(self.data)
    6749             :  *         elif self.free_data and self.data is not NULL:
    6750             :  */
    6751           0 :     goto __pyx_L3;
    6752             :   }
    6753             : 
    6754             :   /* "View.MemoryView":213
    6755             :  *         if self.callback_free_data != NULL:
    6756             :  *             self.callback_free_data(self.data)
    6757             :  *         elif self.free_data and self.data is not NULL:             # <<<<<<<<<<<<<<
    6758             :  *             if self.dtype_is_object:
    6759             :  *                 refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
    6760             :  */
    6761           0 :   if (__pyx_v_self->free_data) {
    6762           0 :   } else {
    6763           0 :     __pyx_t_1 = __pyx_v_self->free_data;
    6764           0 :     goto __pyx_L4_bool_binop_done;
    6765             :   }
    6766           0 :   __pyx_t_2 = (__pyx_v_self->data != NULL);
    6767           0 :   __pyx_t_1 = __pyx_t_2;
    6768           0 :   __pyx_L4_bool_binop_done:;
    6769           0 :   if (__pyx_t_1) {
    6770             : 
    6771             :     /* "View.MemoryView":214
    6772             :  *             self.callback_free_data(self.data)
    6773             :  *         elif self.free_data and self.data is not NULL:
    6774             :  *             if self.dtype_is_object:             # <<<<<<<<<<<<<<
    6775             :  *                 refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
    6776             :  *             free(self.data)
    6777             :  */
    6778           0 :     if (__pyx_v_self->dtype_is_object) {
    6779             : 
    6780             :       /* "View.MemoryView":215
    6781             :  *         elif self.free_data and self.data is not NULL:
    6782             :  *             if self.dtype_is_object:
    6783             :  *                 refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)             # <<<<<<<<<<<<<<
    6784             :  *             free(self.data)
    6785             :  *         PyObject_Free(self._shape)
    6786             :  */
    6787           0 :       __pyx_memoryview_refcount_objects_in_slice(__pyx_v_self->data, __pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_self->ndim, 0);
    6788             : 
    6789             :       /* "View.MemoryView":214
    6790             :  *             self.callback_free_data(self.data)
    6791             :  *         elif self.free_data and self.data is not NULL:
    6792             :  *             if self.dtype_is_object:             # <<<<<<<<<<<<<<
    6793             :  *                 refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
    6794             :  *             free(self.data)
    6795             :  */
    6796             :     }
    6797             : 
    6798             :     /* "View.MemoryView":216
    6799             :  *             if self.dtype_is_object:
    6800             :  *                 refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
    6801             :  *             free(self.data)             # <<<<<<<<<<<<<<
    6802             :  *         PyObject_Free(self._shape)
    6803             :  * 
    6804             :  */
    6805           0 :     free(__pyx_v_self->data);
    6806             : 
    6807             :     /* "View.MemoryView":213
    6808             :  *         if self.callback_free_data != NULL:
    6809             :  *             self.callback_free_data(self.data)
    6810             :  *         elif self.free_data and self.data is not NULL:             # <<<<<<<<<<<<<<
    6811             :  *             if self.dtype_is_object:
    6812             :  *                 refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
    6813             :  */
    6814             :   }
    6815           0 :   __pyx_L3:;
    6816             : 
    6817             :   /* "View.MemoryView":217
    6818             :  *                 refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
    6819             :  *             free(self.data)
    6820             :  *         PyObject_Free(self._shape)             # <<<<<<<<<<<<<<
    6821             :  * 
    6822             :  *     @property
    6823             :  */
    6824           0 :   PyObject_Free(__pyx_v_self->_shape);
    6825             : 
    6826             :   /* "View.MemoryView":210
    6827             :  *         info.obj = self
    6828             :  * 
    6829             :  *     def __dealloc__(array self):             # <<<<<<<<<<<<<<
    6830             :  *         if self.callback_free_data != NULL:
    6831             :  *             self.callback_free_data(self.data)
    6832             :  */
    6833             : 
    6834             :   /* function exit code */
    6835           0 : }
    6836             : 
    6837             : /* "View.MemoryView":219
    6838             :  *         PyObject_Free(self._shape)
    6839             :  * 
    6840             :  *     @property             # <<<<<<<<<<<<<<
    6841             :  *     def memview(self):
    6842             :  *         return self.get_memview()
    6843             :  */
    6844             : 
    6845             : /* Python wrapper */
    6846             : static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self); /*proto*/
    6847           0 : static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self) {
    6848           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    6849           0 :   PyObject *__pyx_r = 0;
    6850             :   __Pyx_RefNannyDeclarations
    6851           0 :   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
    6852           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
    6853           0 :   __pyx_r = __pyx_pf_15View_dot_MemoryView_5array_7memview___get__(((struct __pyx_array_obj *)__pyx_v_self));
    6854             : 
    6855             :   /* function exit code */
    6856           0 :   __Pyx_RefNannyFinishContext();
    6857           0 :   return __pyx_r;
    6858             : }
    6859             : 
    6860           0 : static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self) {
    6861           0 :   PyObject *__pyx_r = NULL;
    6862             :   __Pyx_RefNannyDeclarations
    6863           0 :   PyObject *__pyx_t_1 = NULL;
    6864           0 :   int __pyx_lineno = 0;
    6865           0 :   const char *__pyx_filename = NULL;
    6866           0 :   int __pyx_clineno = 0;
    6867           0 :   __Pyx_RefNannySetupContext("__get__", 1);
    6868             : 
    6869             :   /* "View.MemoryView":221
    6870             :  *     @property
    6871             :  *     def memview(self):
    6872             :  *         return self.get_memview()             # <<<<<<<<<<<<<<
    6873             :  * 
    6874             :  *     @cname('get_memview')
    6875             :  */
    6876           0 :   __Pyx_XDECREF(__pyx_r);
    6877           0 :   __pyx_t_1 = ((struct __pyx_vtabstruct_array *)__pyx_v_self->__pyx_vtab)->get_memview(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 221, __pyx_L1_error)
    6878           0 :   __Pyx_GOTREF(__pyx_t_1);
    6879           0 :   __pyx_r = __pyx_t_1;
    6880           0 :   __pyx_t_1 = 0;
    6881           0 :   goto __pyx_L0;
    6882             : 
    6883             :   /* "View.MemoryView":219
    6884             :  *         PyObject_Free(self._shape)
    6885             :  * 
    6886             :  *     @property             # <<<<<<<<<<<<<<
    6887             :  *     def memview(self):
    6888             :  *         return self.get_memview()
    6889             :  */
    6890             : 
    6891             :   /* function exit code */
    6892           0 :   __pyx_L1_error:;
    6893           0 :   __Pyx_XDECREF(__pyx_t_1);
    6894           0 :   __Pyx_AddTraceback("View.MemoryView.array.memview.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    6895           0 :   __pyx_r = NULL;
    6896           0 :   __pyx_L0:;
    6897           0 :   __Pyx_XGIVEREF(__pyx_r);
    6898           0 :   __Pyx_RefNannyFinishContext();
    6899           0 :   return __pyx_r;
    6900             : }
    6901             : 
    6902             : /* "View.MemoryView":224
    6903             :  * 
    6904             :  *     @cname('get_memview')
    6905             :  *     cdef get_memview(self):             # <<<<<<<<<<<<<<
    6906             :  *         flags =  PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE
    6907             :  *         return  memoryview(self, flags, self.dtype_is_object)
    6908             :  */
    6909             : 
    6910           0 : static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self) {
    6911           0 :   int __pyx_v_flags;
    6912           0 :   PyObject *__pyx_r = NULL;
    6913             :   __Pyx_RefNannyDeclarations
    6914           0 :   PyObject *__pyx_t_1 = NULL;
    6915           0 :   PyObject *__pyx_t_2 = NULL;
    6916           0 :   PyObject *__pyx_t_3 = NULL;
    6917           0 :   int __pyx_lineno = 0;
    6918           0 :   const char *__pyx_filename = NULL;
    6919           0 :   int __pyx_clineno = 0;
    6920           0 :   __Pyx_RefNannySetupContext("get_memview", 1);
    6921             : 
    6922             :   /* "View.MemoryView":225
    6923             :  *     @cname('get_memview')
    6924             :  *     cdef get_memview(self):
    6925             :  *         flags =  PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE             # <<<<<<<<<<<<<<
    6926             :  *         return  memoryview(self, flags, self.dtype_is_object)
    6927             :  * 
    6928             :  */
    6929           0 :   __pyx_v_flags = ((PyBUF_ANY_CONTIGUOUS | PyBUF_FORMAT) | PyBUF_WRITABLE);
    6930             : 
    6931             :   /* "View.MemoryView":226
    6932             :  *     cdef get_memview(self):
    6933             :  *         flags =  PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE
    6934             :  *         return  memoryview(self, flags, self.dtype_is_object)             # <<<<<<<<<<<<<<
    6935             :  * 
    6936             :  *     def __len__(self):
    6937             :  */
    6938           0 :   __Pyx_XDECREF(__pyx_r);
    6939           0 :   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 226, __pyx_L1_error)
    6940           0 :   __Pyx_GOTREF(__pyx_t_1);
    6941           0 :   __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 226, __pyx_L1_error)
    6942           0 :   __Pyx_GOTREF(__pyx_t_2);
    6943           0 :   __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 226, __pyx_L1_error)
    6944           0 :   __Pyx_GOTREF(__pyx_t_3);
    6945           0 :   __Pyx_INCREF((PyObject *)__pyx_v_self);
    6946           0 :   __Pyx_GIVEREF((PyObject *)__pyx_v_self);
    6947           0 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self))) __PYX_ERR(1, 226, __pyx_L1_error);
    6948           0 :   __Pyx_GIVEREF(__pyx_t_1);
    6949           0 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(1, 226, __pyx_L1_error);
    6950           0 :   __Pyx_GIVEREF(__pyx_t_2);
    6951           0 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(1, 226, __pyx_L1_error);
    6952           0 :   __pyx_t_1 = 0;
    6953           0 :   __pyx_t_2 = 0;
    6954           0 :   __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 226, __pyx_L1_error)
    6955           0 :   __Pyx_GOTREF(__pyx_t_2);
    6956           0 :   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    6957           0 :   __pyx_r = __pyx_t_2;
    6958           0 :   __pyx_t_2 = 0;
    6959           0 :   goto __pyx_L0;
    6960             : 
    6961             :   /* "View.MemoryView":224
    6962             :  * 
    6963             :  *     @cname('get_memview')
    6964             :  *     cdef get_memview(self):             # <<<<<<<<<<<<<<
    6965             :  *         flags =  PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE
    6966             :  *         return  memoryview(self, flags, self.dtype_is_object)
    6967             :  */
    6968             : 
    6969             :   /* function exit code */
    6970           0 :   __pyx_L1_error:;
    6971           0 :   __Pyx_XDECREF(__pyx_t_1);
    6972           0 :   __Pyx_XDECREF(__pyx_t_2);
    6973           0 :   __Pyx_XDECREF(__pyx_t_3);
    6974           0 :   __Pyx_AddTraceback("View.MemoryView.array.get_memview", __pyx_clineno, __pyx_lineno, __pyx_filename);
    6975           0 :   __pyx_r = 0;
    6976           0 :   __pyx_L0:;
    6977           0 :   __Pyx_XGIVEREF(__pyx_r);
    6978           0 :   __Pyx_RefNannyFinishContext();
    6979           0 :   return __pyx_r;
    6980             : }
    6981             : 
    6982             : /* "View.MemoryView":228
    6983             :  *         return  memoryview(self, flags, self.dtype_is_object)
    6984             :  * 
    6985             :  *     def __len__(self):             # <<<<<<<<<<<<<<
    6986             :  *         return self._shape[0]
    6987             :  * 
    6988             :  */
    6989             : 
    6990             : /* Python wrapper */
    6991             : static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self); /*proto*/
    6992           0 : static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self) {
    6993           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    6994           0 :   Py_ssize_t __pyx_r;
    6995             :   __Pyx_RefNannyDeclarations
    6996           0 :   __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
    6997           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
    6998           0 :   __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(((struct __pyx_array_obj *)__pyx_v_self));
    6999             : 
    7000             :   /* function exit code */
    7001           0 :   __Pyx_RefNannyFinishContext();
    7002           0 :   return __pyx_r;
    7003             : }
    7004             : 
    7005           0 : static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self) {
    7006           0 :   Py_ssize_t __pyx_r;
    7007             : 
    7008             :   /* "View.MemoryView":229
    7009             :  * 
    7010             :  *     def __len__(self):
    7011             :  *         return self._shape[0]             # <<<<<<<<<<<<<<
    7012             :  * 
    7013             :  *     def __getattr__(self, attr):
    7014             :  */
    7015           0 :   __pyx_r = (__pyx_v_self->_shape[0]);
    7016           0 :   goto __pyx_L0;
    7017             : 
    7018             :   /* "View.MemoryView":228
    7019             :  *         return  memoryview(self, flags, self.dtype_is_object)
    7020             :  * 
    7021             :  *     def __len__(self):             # <<<<<<<<<<<<<<
    7022             :  *         return self._shape[0]
    7023             :  * 
    7024             :  */
    7025             : 
    7026             :   /* function exit code */
    7027           0 :   __pyx_L0:;
    7028           0 :   return __pyx_r;
    7029             : }
    7030             : 
    7031             : /* "View.MemoryView":231
    7032             :  *         return self._shape[0]
    7033             :  * 
    7034             :  *     def __getattr__(self, attr):             # <<<<<<<<<<<<<<
    7035             :  *         return getattr(self.memview, attr)
    7036             :  * 
    7037             :  */
    7038             : 
    7039             : /* Python wrapper */
    7040             : static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr); /*proto*/
    7041           0 : static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr) {
    7042           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    7043           0 :   PyObject *__pyx_r = 0;
    7044             :   __Pyx_RefNannyDeclarations
    7045           0 :   __Pyx_RefNannySetupContext("__getattr__ (wrapper)", 0);
    7046           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
    7047           0 :   __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_attr));
    7048             : 
    7049             :   /* function exit code */
    7050           0 :   __Pyx_RefNannyFinishContext();
    7051           0 :   return __pyx_r;
    7052             : }
    7053             : 
    7054           0 : static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr) {
    7055           0 :   PyObject *__pyx_r = NULL;
    7056             :   __Pyx_RefNannyDeclarations
    7057           0 :   PyObject *__pyx_t_1 = NULL;
    7058           0 :   PyObject *__pyx_t_2 = NULL;
    7059           0 :   int __pyx_lineno = 0;
    7060           0 :   const char *__pyx_filename = NULL;
    7061           0 :   int __pyx_clineno = 0;
    7062           0 :   __Pyx_RefNannySetupContext("__getattr__", 1);
    7063             : 
    7064             :   /* "View.MemoryView":232
    7065             :  * 
    7066             :  *     def __getattr__(self, attr):
    7067             :  *         return getattr(self.memview, attr)             # <<<<<<<<<<<<<<
    7068             :  * 
    7069             :  *     def __getitem__(self, item):
    7070             :  */
    7071           0 :   __Pyx_XDECREF(__pyx_r);
    7072           0 :   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 232, __pyx_L1_error)
    7073           0 :   __Pyx_GOTREF(__pyx_t_1);
    7074           0 :   __pyx_t_2 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 232, __pyx_L1_error)
    7075           0 :   __Pyx_GOTREF(__pyx_t_2);
    7076           0 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    7077           0 :   __pyx_r = __pyx_t_2;
    7078           0 :   __pyx_t_2 = 0;
    7079           0 :   goto __pyx_L0;
    7080             : 
    7081             :   /* "View.MemoryView":231
    7082             :  *         return self._shape[0]
    7083             :  * 
    7084             :  *     def __getattr__(self, attr):             # <<<<<<<<<<<<<<
    7085             :  *         return getattr(self.memview, attr)
    7086             :  * 
    7087             :  */
    7088             : 
    7089             :   /* function exit code */
    7090           0 :   __pyx_L1_error:;
    7091           0 :   __Pyx_XDECREF(__pyx_t_1);
    7092           0 :   __Pyx_XDECREF(__pyx_t_2);
    7093           0 :   __Pyx_AddTraceback("View.MemoryView.array.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    7094           0 :   __pyx_r = NULL;
    7095           0 :   __pyx_L0:;
    7096           0 :   __Pyx_XGIVEREF(__pyx_r);
    7097           0 :   __Pyx_RefNannyFinishContext();
    7098           0 :   return __pyx_r;
    7099             : }
    7100             : 
    7101             : /* "View.MemoryView":234
    7102             :  *         return getattr(self.memview, attr)
    7103             :  * 
    7104             :  *     def __getitem__(self, item):             # <<<<<<<<<<<<<<
    7105             :  *         return self.memview[item]
    7106             :  * 
    7107             :  */
    7108             : 
    7109             : /* Python wrapper */
    7110             : static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/
    7111           0 : static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) {
    7112           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    7113           0 :   PyObject *__pyx_r = 0;
    7114             :   __Pyx_RefNannyDeclarations
    7115           0 :   __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
    7116           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
    7117           0 :   __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item));
    7118             : 
    7119             :   /* function exit code */
    7120           0 :   __Pyx_RefNannyFinishContext();
    7121           0 :   return __pyx_r;
    7122             : }
    7123             : 
    7124           0 : static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item) {
    7125           0 :   PyObject *__pyx_r = NULL;
    7126             :   __Pyx_RefNannyDeclarations
    7127           0 :   PyObject *__pyx_t_1 = NULL;
    7128           0 :   PyObject *__pyx_t_2 = NULL;
    7129           0 :   int __pyx_lineno = 0;
    7130           0 :   const char *__pyx_filename = NULL;
    7131           0 :   int __pyx_clineno = 0;
    7132           0 :   __Pyx_RefNannySetupContext("__getitem__", 1);
    7133             : 
    7134             :   /* "View.MemoryView":235
    7135             :  * 
    7136             :  *     def __getitem__(self, item):
    7137             :  *         return self.memview[item]             # <<<<<<<<<<<<<<
    7138             :  * 
    7139             :  *     def __setitem__(self, item, value):
    7140             :  */
    7141           0 :   __Pyx_XDECREF(__pyx_r);
    7142           0 :   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 235, __pyx_L1_error)
    7143           0 :   __Pyx_GOTREF(__pyx_t_1);
    7144           0 :   __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_item); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 235, __pyx_L1_error)
    7145           0 :   __Pyx_GOTREF(__pyx_t_2);
    7146           0 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    7147           0 :   __pyx_r = __pyx_t_2;
    7148           0 :   __pyx_t_2 = 0;
    7149           0 :   goto __pyx_L0;
    7150             : 
    7151             :   /* "View.MemoryView":234
    7152             :  *         return getattr(self.memview, attr)
    7153             :  * 
    7154             :  *     def __getitem__(self, item):             # <<<<<<<<<<<<<<
    7155             :  *         return self.memview[item]
    7156             :  * 
    7157             :  */
    7158             : 
    7159             :   /* function exit code */
    7160           0 :   __pyx_L1_error:;
    7161           0 :   __Pyx_XDECREF(__pyx_t_1);
    7162           0 :   __Pyx_XDECREF(__pyx_t_2);
    7163           0 :   __Pyx_AddTraceback("View.MemoryView.array.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    7164           0 :   __pyx_r = NULL;
    7165           0 :   __pyx_L0:;
    7166           0 :   __Pyx_XGIVEREF(__pyx_r);
    7167           0 :   __Pyx_RefNannyFinishContext();
    7168           0 :   return __pyx_r;
    7169             : }
    7170             : 
    7171             : /* "View.MemoryView":237
    7172             :  *         return self.memview[item]
    7173             :  * 
    7174             :  *     def __setitem__(self, item, value):             # <<<<<<<<<<<<<<
    7175             :  *         self.memview[item] = value
    7176             :  * 
    7177             :  */
    7178             : 
    7179             : /* Python wrapper */
    7180             : static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /*proto*/
    7181           0 : static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) {
    7182           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    7183           0 :   int __pyx_r;
    7184             :   __Pyx_RefNannyDeclarations
    7185           0 :   __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0);
    7186           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
    7187           0 :   __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item), ((PyObject *)__pyx_v_value));
    7188             : 
    7189             :   /* function exit code */
    7190           0 :   __Pyx_RefNannyFinishContext();
    7191           0 :   return __pyx_r;
    7192             : }
    7193             : 
    7194           0 : static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) {
    7195           0 :   int __pyx_r;
    7196             :   __Pyx_RefNannyDeclarations
    7197           0 :   PyObject *__pyx_t_1 = NULL;
    7198           0 :   int __pyx_lineno = 0;
    7199           0 :   const char *__pyx_filename = NULL;
    7200           0 :   int __pyx_clineno = 0;
    7201           0 :   __Pyx_RefNannySetupContext("__setitem__", 1);
    7202             : 
    7203             :   /* "View.MemoryView":238
    7204             :  * 
    7205             :  *     def __setitem__(self, item, value):
    7206             :  *         self.memview[item] = value             # <<<<<<<<<<<<<<
    7207             :  * 
    7208             :  * 
    7209             :  */
    7210           0 :   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 238, __pyx_L1_error)
    7211           0 :   __Pyx_GOTREF(__pyx_t_1);
    7212           0 :   if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_item, __pyx_v_value) < 0))) __PYX_ERR(1, 238, __pyx_L1_error)
    7213           0 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    7214             : 
    7215             :   /* "View.MemoryView":237
    7216             :  *         return self.memview[item]
    7217             :  * 
    7218             :  *     def __setitem__(self, item, value):             # <<<<<<<<<<<<<<
    7219             :  *         self.memview[item] = value
    7220             :  * 
    7221             :  */
    7222             : 
    7223             :   /* function exit code */
    7224           0 :   __pyx_r = 0;
    7225           0 :   goto __pyx_L0;
    7226           0 :   __pyx_L1_error:;
    7227           0 :   __Pyx_XDECREF(__pyx_t_1);
    7228           0 :   __Pyx_AddTraceback("View.MemoryView.array.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    7229           0 :   __pyx_r = -1;
    7230           0 :   __pyx_L0:;
    7231           0 :   __Pyx_RefNannyFinishContext();
    7232           0 :   return __pyx_r;
    7233             : }
    7234             : 
    7235             : /* "(tree fragment)":1
    7236             :  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
    7237             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
    7238             :  * def __setstate_cython__(self, __pyx_state):
    7239             :  */
    7240             : 
    7241             : /* Python wrapper */
    7242             : static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, 
    7243             : #if CYTHON_METH_FASTCALL
    7244             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
    7245             : #else
    7246             : PyObject *__pyx_args, PyObject *__pyx_kwds
    7247             : #endif
    7248             : ); /*proto*/
    7249           0 : static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, 
    7250             : #if CYTHON_METH_FASTCALL
    7251             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
    7252             : #else
    7253             : PyObject *__pyx_args, PyObject *__pyx_kwds
    7254             : #endif
    7255             : ) {
    7256             :   #if !CYTHON_METH_FASTCALL
    7257             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
    7258             :   #endif
    7259           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    7260           0 :   PyObject *__pyx_r = 0;
    7261             :   __Pyx_RefNannyDeclarations
    7262           0 :   __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
    7263             :   #if !CYTHON_METH_FASTCALL
    7264             :   #if CYTHON_ASSUME_SAFE_MACROS
    7265             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
    7266             :   #else
    7267             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
    7268             :   #endif
    7269             :   #endif
    7270           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
    7271           0 :   if (unlikely(__pyx_nargs > 0)) {
    7272           0 :     __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
    7273           0 :   if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
    7274           0 :   __pyx_r = __pyx_pf___pyx_array___reduce_cython__(((struct __pyx_array_obj *)__pyx_v_self));
    7275             : 
    7276             :   /* function exit code */
    7277           0 :   __Pyx_RefNannyFinishContext();
    7278           0 :   return __pyx_r;
    7279             : }
    7280             : 
    7281           0 : static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self) {
    7282           0 :   PyObject *__pyx_r = NULL;
    7283             :   __Pyx_RefNannyDeclarations
    7284           0 :   int __pyx_lineno = 0;
    7285           0 :   const char *__pyx_filename = NULL;
    7286           0 :   int __pyx_clineno = 0;
    7287           0 :   __Pyx_RefNannySetupContext("__reduce_cython__", 1);
    7288             : 
    7289             :   /* "(tree fragment)":2
    7290             :  * def __reduce_cython__(self):
    7291             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
    7292             :  * def __setstate_cython__(self, __pyx_state):
    7293             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
    7294             :  */
    7295           0 :   __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
    7296           0 :   __PYX_ERR(1, 2, __pyx_L1_error)
    7297             : 
    7298             :   /* "(tree fragment)":1
    7299             :  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
    7300             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
    7301             :  * def __setstate_cython__(self, __pyx_state):
    7302             :  */
    7303             : 
    7304             :   /* function exit code */
    7305           0 :   __pyx_L1_error:;
    7306           0 :   __Pyx_AddTraceback("View.MemoryView.array.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    7307           0 :   __pyx_r = NULL;
    7308           0 :   __Pyx_XGIVEREF(__pyx_r);
    7309           0 :   __Pyx_RefNannyFinishContext();
    7310           0 :   return __pyx_r;
    7311             : }
    7312             : 
    7313             : /* "(tree fragment)":3
    7314             :  * def __reduce_cython__(self):
    7315             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
    7316             :  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
    7317             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
    7318             :  */
    7319             : 
    7320             : /* Python wrapper */
    7321             : static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, 
    7322             : #if CYTHON_METH_FASTCALL
    7323             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
    7324             : #else
    7325             : PyObject *__pyx_args, PyObject *__pyx_kwds
    7326             : #endif
    7327             : ); /*proto*/
    7328           0 : static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, 
    7329             : #if CYTHON_METH_FASTCALL
    7330             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
    7331             : #else
    7332             : PyObject *__pyx_args, PyObject *__pyx_kwds
    7333             : #endif
    7334             : ) {
    7335           0 :   CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
    7336             :   #if !CYTHON_METH_FASTCALL
    7337             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
    7338             :   #endif
    7339           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    7340           0 :   PyObject* values[1] = {0};
    7341           0 :   int __pyx_lineno = 0;
    7342           0 :   const char *__pyx_filename = NULL;
    7343           0 :   int __pyx_clineno = 0;
    7344           0 :   PyObject *__pyx_r = 0;
    7345             :   __Pyx_RefNannyDeclarations
    7346           0 :   __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
    7347             :   #if !CYTHON_METH_FASTCALL
    7348             :   #if CYTHON_ASSUME_SAFE_MACROS
    7349             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
    7350             :   #else
    7351             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
    7352             :   #endif
    7353             :   #endif
    7354           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
    7355             :   {
    7356           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    7357           0 :     if (__pyx_kwds) {
    7358           0 :       Py_ssize_t kw_args;
    7359           0 :       switch (__pyx_nargs) {
    7360           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    7361           0 :         CYTHON_FALLTHROUGH;
    7362           0 :         case  0: break;
    7363           0 :         default: goto __pyx_L5_argtuple_error;
    7364             :       }
    7365           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
    7366           0 :       switch (__pyx_nargs) {
    7367             :         case  0:
    7368           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
    7369           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
    7370           0 :           kw_args--;
    7371             :         }
    7372           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error)
    7373           0 :         else goto __pyx_L5_argtuple_error;
    7374             :       }
    7375           0 :       if (unlikely(kw_args > 0)) {
    7376           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
    7377           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error)
    7378             :       }
    7379           0 :     } else if (unlikely(__pyx_nargs != 1)) {
    7380           0 :       goto __pyx_L5_argtuple_error;
    7381             :     } else {
    7382           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    7383             :     }
    7384           0 :     __pyx_v___pyx_state = values[0];
    7385             :   }
    7386           0 :   goto __pyx_L6_skip;
    7387           0 :   __pyx_L5_argtuple_error:;
    7388           0 :   __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
    7389           0 :   __pyx_L6_skip:;
    7390           0 :   goto __pyx_L4_argument_unpacking_done;
    7391           0 :   __pyx_L3_error:;
    7392             :   {
    7393           0 :     Py_ssize_t __pyx_temp;
    7394           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    7395             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    7396             :     }
    7397             :   }
    7398           0 :   __Pyx_AddTraceback("View.MemoryView.array.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    7399           0 :   __Pyx_RefNannyFinishContext();
    7400           0 :   return NULL;
    7401           0 :   __pyx_L4_argument_unpacking_done:;
    7402           0 :   __pyx_r = __pyx_pf___pyx_array_2__setstate_cython__(((struct __pyx_array_obj *)__pyx_v_self), __pyx_v___pyx_state);
    7403             : 
    7404             :   /* function exit code */
    7405             :   {
    7406           0 :     Py_ssize_t __pyx_temp;
    7407           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    7408             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    7409             :     }
    7410             :   }
    7411             :   __Pyx_RefNannyFinishContext();
    7412             :   return __pyx_r;
    7413             : }
    7414             : 
    7415           0 : static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
    7416           0 :   PyObject *__pyx_r = NULL;
    7417             :   __Pyx_RefNannyDeclarations
    7418           0 :   int __pyx_lineno = 0;
    7419           0 :   const char *__pyx_filename = NULL;
    7420           0 :   int __pyx_clineno = 0;
    7421           0 :   __Pyx_RefNannySetupContext("__setstate_cython__", 1);
    7422             : 
    7423             :   /* "(tree fragment)":4
    7424             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
    7425             :  * def __setstate_cython__(self, __pyx_state):
    7426             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
    7427             :  */
    7428           0 :   __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
    7429           0 :   __PYX_ERR(1, 4, __pyx_L1_error)
    7430             : 
    7431             :   /* "(tree fragment)":3
    7432             :  * def __reduce_cython__(self):
    7433             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
    7434             :  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
    7435             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
    7436             :  */
    7437             : 
    7438             :   /* function exit code */
    7439           0 :   __pyx_L1_error:;
    7440           0 :   __Pyx_AddTraceback("View.MemoryView.array.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    7441           0 :   __pyx_r = NULL;
    7442           0 :   __Pyx_XGIVEREF(__pyx_r);
    7443           0 :   __Pyx_RefNannyFinishContext();
    7444           0 :   return __pyx_r;
    7445             : }
    7446             : 
    7447             : /* "View.MemoryView":248
    7448             :  * 
    7449             :  * @cname("__pyx_array_allocate_buffer")
    7450             :  * cdef int _allocate_buffer(array self) except -1:             # <<<<<<<<<<<<<<
    7451             :  * 
    7452             :  * 
    7453             :  */
    7454             : 
    7455           0 : static int __pyx_array_allocate_buffer(struct __pyx_array_obj *__pyx_v_self) {
    7456           0 :   Py_ssize_t __pyx_v_i;
    7457           0 :   PyObject **__pyx_v_p;
    7458           0 :   int __pyx_r;
    7459           0 :   int __pyx_t_1;
    7460           0 :   Py_ssize_t __pyx_t_2;
    7461           0 :   Py_ssize_t __pyx_t_3;
    7462           0 :   Py_ssize_t __pyx_t_4;
    7463           0 :   int __pyx_lineno = 0;
    7464           0 :   const char *__pyx_filename = NULL;
    7465           0 :   int __pyx_clineno = 0;
    7466             : 
    7467             :   /* "View.MemoryView":254
    7468             :  *     cdef PyObject **p
    7469             :  * 
    7470             :  *     self.free_data = True             # <<<<<<<<<<<<<<
    7471             :  *     self.data = <char *>malloc(self.len)
    7472             :  *     if not self.data:
    7473             :  */
    7474           0 :   __pyx_v_self->free_data = 1;
    7475             : 
    7476             :   /* "View.MemoryView":255
    7477             :  * 
    7478             :  *     self.free_data = True
    7479             :  *     self.data = <char *>malloc(self.len)             # <<<<<<<<<<<<<<
    7480             :  *     if not self.data:
    7481             :  *         raise MemoryError, "unable to allocate array data."
    7482             :  */
    7483           0 :   __pyx_v_self->data = ((char *)malloc(__pyx_v_self->len));
    7484             : 
    7485             :   /* "View.MemoryView":256
    7486             :  *     self.free_data = True
    7487             :  *     self.data = <char *>malloc(self.len)
    7488             :  *     if not self.data:             # <<<<<<<<<<<<<<
    7489             :  *         raise MemoryError, "unable to allocate array data."
    7490             :  * 
    7491             :  */
    7492           0 :   __pyx_t_1 = (!(__pyx_v_self->data != 0));
    7493           0 :   if (unlikely(__pyx_t_1)) {
    7494             : 
    7495             :     /* "View.MemoryView":257
    7496             :  *     self.data = <char *>malloc(self.len)
    7497             :  *     if not self.data:
    7498             :  *         raise MemoryError, "unable to allocate array data."             # <<<<<<<<<<<<<<
    7499             :  * 
    7500             :  *     if self.dtype_is_object:
    7501             :  */
    7502           0 :     __Pyx_Raise(__pyx_builtin_MemoryError, __pyx_kp_s_unable_to_allocate_array_data, 0, 0);
    7503           0 :     __PYX_ERR(1, 257, __pyx_L1_error)
    7504             : 
    7505             :     /* "View.MemoryView":256
    7506             :  *     self.free_data = True
    7507             :  *     self.data = <char *>malloc(self.len)
    7508             :  *     if not self.data:             # <<<<<<<<<<<<<<
    7509             :  *         raise MemoryError, "unable to allocate array data."
    7510             :  * 
    7511             :  */
    7512             :   }
    7513             : 
    7514             :   /* "View.MemoryView":259
    7515             :  *         raise MemoryError, "unable to allocate array data."
    7516             :  * 
    7517             :  *     if self.dtype_is_object:             # <<<<<<<<<<<<<<
    7518             :  *         p = <PyObject **> self.data
    7519             :  *         for i in range(self.len // self.itemsize):
    7520             :  */
    7521           0 :   if (__pyx_v_self->dtype_is_object) {
    7522             : 
    7523             :     /* "View.MemoryView":260
    7524             :  * 
    7525             :  *     if self.dtype_is_object:
    7526             :  *         p = <PyObject **> self.data             # <<<<<<<<<<<<<<
    7527             :  *         for i in range(self.len // self.itemsize):
    7528             :  *             p[i] = Py_None
    7529             :  */
    7530           0 :     __pyx_v_p = ((PyObject **)__pyx_v_self->data);
    7531             : 
    7532             :     /* "View.MemoryView":261
    7533             :  *     if self.dtype_is_object:
    7534             :  *         p = <PyObject **> self.data
    7535             :  *         for i in range(self.len // self.itemsize):             # <<<<<<<<<<<<<<
    7536             :  *             p[i] = Py_None
    7537             :  *             Py_INCREF(Py_None)
    7538             :  */
    7539           0 :     if (unlikely(__pyx_v_self->itemsize == 0)) {
    7540           0 :       PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
    7541           0 :       __PYX_ERR(1, 261, __pyx_L1_error)
    7542             :     }
    7543           0 :     else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_self->itemsize == (Py_ssize_t)-1)  && unlikely(__Pyx_UNARY_NEG_WOULD_OVERFLOW(__pyx_v_self->len))) {
    7544           0 :       PyErr_SetString(PyExc_OverflowError, "value too large to perform division");
    7545           0 :       __PYX_ERR(1, 261, __pyx_L1_error)
    7546             :     }
    7547           0 :     __pyx_t_2 = __Pyx_div_Py_ssize_t(__pyx_v_self->len, __pyx_v_self->itemsize);
    7548           0 :     __pyx_t_3 = __pyx_t_2;
    7549           0 :     for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    7550           0 :       __pyx_v_i = __pyx_t_4;
    7551             : 
    7552             :       /* "View.MemoryView":262
    7553             :  *         p = <PyObject **> self.data
    7554             :  *         for i in range(self.len // self.itemsize):
    7555             :  *             p[i] = Py_None             # <<<<<<<<<<<<<<
    7556             :  *             Py_INCREF(Py_None)
    7557             :  *     return 0
    7558             :  */
    7559           0 :       (__pyx_v_p[__pyx_v_i]) = Py_None;
    7560             : 
    7561             :       /* "View.MemoryView":263
    7562             :  *         for i in range(self.len // self.itemsize):
    7563             :  *             p[i] = Py_None
    7564             :  *             Py_INCREF(Py_None)             # <<<<<<<<<<<<<<
    7565             :  *     return 0
    7566             :  * 
    7567             :  */
    7568           0 :       Py_INCREF(Py_None);
    7569             :     }
    7570             : 
    7571             :     /* "View.MemoryView":259
    7572             :  *         raise MemoryError, "unable to allocate array data."
    7573             :  * 
    7574             :  *     if self.dtype_is_object:             # <<<<<<<<<<<<<<
    7575             :  *         p = <PyObject **> self.data
    7576             :  *         for i in range(self.len // self.itemsize):
    7577             :  */
    7578             :   }
    7579             : 
    7580             :   /* "View.MemoryView":264
    7581             :  *             p[i] = Py_None
    7582             :  *             Py_INCREF(Py_None)
    7583             :  *     return 0             # <<<<<<<<<<<<<<
    7584             :  * 
    7585             :  * 
    7586             :  */
    7587           0 :   __pyx_r = 0;
    7588           0 :   goto __pyx_L0;
    7589             : 
    7590             :   /* "View.MemoryView":248
    7591             :  * 
    7592             :  * @cname("__pyx_array_allocate_buffer")
    7593             :  * cdef int _allocate_buffer(array self) except -1:             # <<<<<<<<<<<<<<
    7594             :  * 
    7595             :  * 
    7596             :  */
    7597             : 
    7598             :   /* function exit code */
    7599           0 :   __pyx_L1_error:;
    7600           0 :   __Pyx_AddTraceback("View.MemoryView._allocate_buffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
    7601           0 :   __pyx_r = -1;
    7602           0 :   __pyx_L0:;
    7603           0 :   return __pyx_r;
    7604             : }
    7605             : 
    7606             : /* "View.MemoryView":268
    7607             :  * 
    7608             :  * @cname("__pyx_array_new")
    7609             :  * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, char *c_mode, char *buf):             # <<<<<<<<<<<<<<
    7610             :  *     cdef array result
    7611             :  *     cdef str mode = "fortran" if c_mode[0] == b'f' else "c"  # this often comes from a constant C string.
    7612             :  */
    7613             : 
    7614           0 : static struct __pyx_array_obj *__pyx_array_new(PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, char *__pyx_v_format, char *__pyx_v_c_mode, char *__pyx_v_buf) {
    7615           0 :   struct __pyx_array_obj *__pyx_v_result = 0;
    7616           0 :   PyObject *__pyx_v_mode = 0;
    7617           0 :   struct __pyx_array_obj *__pyx_r = NULL;
    7618             :   __Pyx_RefNannyDeclarations
    7619           0 :   PyObject *__pyx_t_1 = NULL;
    7620           0 :   int __pyx_t_2;
    7621           0 :   PyObject *__pyx_t_3 = NULL;
    7622           0 :   PyObject *__pyx_t_4 = NULL;
    7623           0 :   int __pyx_lineno = 0;
    7624           0 :   const char *__pyx_filename = NULL;
    7625           0 :   int __pyx_clineno = 0;
    7626           0 :   __Pyx_RefNannySetupContext("array_cwrapper", 1);
    7627             : 
    7628             :   /* "View.MemoryView":270
    7629             :  * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, char *c_mode, char *buf):
    7630             :  *     cdef array result
    7631             :  *     cdef str mode = "fortran" if c_mode[0] == b'f' else "c"  # this often comes from a constant C string.             # <<<<<<<<<<<<<<
    7632             :  * 
    7633             :  *     if buf is NULL:
    7634             :  */
    7635           0 :   __pyx_t_2 = ((__pyx_v_c_mode[0]) == 'f');
    7636           0 :   if (__pyx_t_2) {
    7637           0 :     __Pyx_INCREF(__pyx_n_s_fortran);
    7638             :     __pyx_t_1 = __pyx_n_s_fortran;
    7639             :   } else {
    7640           0 :     __Pyx_INCREF(__pyx_n_s_c);
    7641             :     __pyx_t_1 = __pyx_n_s_c;
    7642             :   }
    7643           0 :   __pyx_v_mode = ((PyObject*)__pyx_t_1);
    7644           0 :   __pyx_t_1 = 0;
    7645             : 
    7646             :   /* "View.MemoryView":272
    7647             :  *     cdef str mode = "fortran" if c_mode[0] == b'f' else "c"  # this often comes from a constant C string.
    7648             :  * 
    7649             :  *     if buf is NULL:             # <<<<<<<<<<<<<<
    7650             :  *         result = array.__new__(array, shape, itemsize, format, mode)
    7651             :  *     else:
    7652             :  */
    7653           0 :   __pyx_t_2 = (__pyx_v_buf == NULL);
    7654           0 :   if (__pyx_t_2) {
    7655             : 
    7656             :     /* "View.MemoryView":273
    7657             :  * 
    7658             :  *     if buf is NULL:
    7659             :  *         result = array.__new__(array, shape, itemsize, format, mode)             # <<<<<<<<<<<<<<
    7660             :  *     else:
    7661             :  *         result = array.__new__(array, shape, itemsize, format, mode, allocate_buffer=False)
    7662             :  */
    7663           0 :     __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 273, __pyx_L1_error)
    7664           0 :     __Pyx_GOTREF(__pyx_t_1);
    7665           0 :     __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 273, __pyx_L1_error)
    7666           0 :     __Pyx_GOTREF(__pyx_t_3);
    7667           0 :     __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 273, __pyx_L1_error)
    7668           0 :     __Pyx_GOTREF(__pyx_t_4);
    7669           0 :     __Pyx_INCREF(__pyx_v_shape);
    7670           0 :     __Pyx_GIVEREF(__pyx_v_shape);
    7671           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_shape)) __PYX_ERR(1, 273, __pyx_L1_error);
    7672           0 :     __Pyx_GIVEREF(__pyx_t_1);
    7673           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(1, 273, __pyx_L1_error);
    7674           0 :     __Pyx_GIVEREF(__pyx_t_3);
    7675           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 273, __pyx_L1_error);
    7676           0 :     __Pyx_INCREF(__pyx_v_mode);
    7677           0 :     __Pyx_GIVEREF(__pyx_v_mode);
    7678           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_v_mode)) __PYX_ERR(1, 273, __pyx_L1_error);
    7679           0 :     __pyx_t_1 = 0;
    7680           0 :     __pyx_t_3 = 0;
    7681           0 :     __pyx_t_3 = ((PyObject *)__pyx_tp_new_array(((PyTypeObject *)__pyx_array_type), __pyx_t_4, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 273, __pyx_L1_error)
    7682           0 :     __Pyx_GOTREF((PyObject *)__pyx_t_3);
    7683           0 :     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    7684           0 :     __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_3);
    7685           0 :     __pyx_t_3 = 0;
    7686             : 
    7687             :     /* "View.MemoryView":272
    7688             :  *     cdef str mode = "fortran" if c_mode[0] == b'f' else "c"  # this often comes from a constant C string.
    7689             :  * 
    7690             :  *     if buf is NULL:             # <<<<<<<<<<<<<<
    7691             :  *         result = array.__new__(array, shape, itemsize, format, mode)
    7692             :  *     else:
    7693             :  */
    7694           0 :     goto __pyx_L3;
    7695             :   }
    7696             : 
    7697             :   /* "View.MemoryView":275
    7698             :  *         result = array.__new__(array, shape, itemsize, format, mode)
    7699             :  *     else:
    7700             :  *         result = array.__new__(array, shape, itemsize, format, mode, allocate_buffer=False)             # <<<<<<<<<<<<<<
    7701             :  *         result.data = buf
    7702             :  * 
    7703             :  */
    7704             :   /*else*/ {
    7705           0 :     __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 275, __pyx_L1_error)
    7706           0 :     __Pyx_GOTREF(__pyx_t_3);
    7707           0 :     __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 275, __pyx_L1_error)
    7708           0 :     __Pyx_GOTREF(__pyx_t_4);
    7709           0 :     __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 275, __pyx_L1_error)
    7710           0 :     __Pyx_GOTREF(__pyx_t_1);
    7711           0 :     __Pyx_INCREF(__pyx_v_shape);
    7712           0 :     __Pyx_GIVEREF(__pyx_v_shape);
    7713           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_shape)) __PYX_ERR(1, 275, __pyx_L1_error);
    7714           0 :     __Pyx_GIVEREF(__pyx_t_3);
    7715           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3)) __PYX_ERR(1, 275, __pyx_L1_error);
    7716           0 :     __Pyx_GIVEREF(__pyx_t_4);
    7717           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4)) __PYX_ERR(1, 275, __pyx_L1_error);
    7718           0 :     __Pyx_INCREF(__pyx_v_mode);
    7719           0 :     __Pyx_GIVEREF(__pyx_v_mode);
    7720           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_mode)) __PYX_ERR(1, 275, __pyx_L1_error);
    7721           0 :     __pyx_t_3 = 0;
    7722           0 :     __pyx_t_4 = 0;
    7723           0 :     __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 275, __pyx_L1_error)
    7724           0 :     __Pyx_GOTREF(__pyx_t_4);
    7725           0 :     if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_allocate_buffer, Py_False) < 0) __PYX_ERR(1, 275, __pyx_L1_error)
    7726           0 :     __pyx_t_3 = ((PyObject *)__pyx_tp_new_array(((PyTypeObject *)__pyx_array_type), __pyx_t_1, __pyx_t_4)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 275, __pyx_L1_error)
    7727           0 :     __Pyx_GOTREF((PyObject *)__pyx_t_3);
    7728           0 :     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    7729           0 :     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    7730           0 :     __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_3);
    7731           0 :     __pyx_t_3 = 0;
    7732             : 
    7733             :     /* "View.MemoryView":276
    7734             :  *     else:
    7735             :  *         result = array.__new__(array, shape, itemsize, format, mode, allocate_buffer=False)
    7736             :  *         result.data = buf             # <<<<<<<<<<<<<<
    7737             :  * 
    7738             :  *     return result
    7739             :  */
    7740           0 :     __pyx_v_result->data = __pyx_v_buf;
    7741             :   }
    7742           0 :   __pyx_L3:;
    7743             : 
    7744             :   /* "View.MemoryView":278
    7745             :  *         result.data = buf
    7746             :  * 
    7747             :  *     return result             # <<<<<<<<<<<<<<
    7748             :  * 
    7749             :  * 
    7750             :  */
    7751           0 :   __Pyx_XDECREF((PyObject *)__pyx_r);
    7752           0 :   __Pyx_INCREF((PyObject *)__pyx_v_result);
    7753           0 :   __pyx_r = __pyx_v_result;
    7754           0 :   goto __pyx_L0;
    7755             : 
    7756             :   /* "View.MemoryView":268
    7757             :  * 
    7758             :  * @cname("__pyx_array_new")
    7759             :  * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, char *c_mode, char *buf):             # <<<<<<<<<<<<<<
    7760             :  *     cdef array result
    7761             :  *     cdef str mode = "fortran" if c_mode[0] == b'f' else "c"  # this often comes from a constant C string.
    7762             :  */
    7763             : 
    7764             :   /* function exit code */
    7765           0 :   __pyx_L1_error:;
    7766           0 :   __Pyx_XDECREF(__pyx_t_1);
    7767           0 :   __Pyx_XDECREF(__pyx_t_3);
    7768           0 :   __Pyx_XDECREF(__pyx_t_4);
    7769           0 :   __Pyx_AddTraceback("View.MemoryView.array_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
    7770           0 :   __pyx_r = 0;
    7771           0 :   __pyx_L0:;
    7772           0 :   __Pyx_XDECREF((PyObject *)__pyx_v_result);
    7773           0 :   __Pyx_XDECREF(__pyx_v_mode);
    7774           0 :   __Pyx_XGIVEREF((PyObject *)__pyx_r);
    7775           0 :   __Pyx_RefNannyFinishContext();
    7776           0 :   return __pyx_r;
    7777             : }
    7778             : 
    7779             : /* "View.MemoryView":304
    7780             :  * cdef class Enum(object):
    7781             :  *     cdef object name
    7782             :  *     def __init__(self, name):             # <<<<<<<<<<<<<<
    7783             :  *         self.name = name
    7784             :  *     def __repr__(self):
    7785             :  */
    7786             : 
    7787             : /* Python wrapper */
    7788             : static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
    7789          15 : static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
    7790          15 :   PyObject *__pyx_v_name = 0;
    7791          15 :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
    7792          15 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    7793          15 :   PyObject* values[1] = {0};
    7794          15 :   int __pyx_lineno = 0;
    7795          15 :   const char *__pyx_filename = NULL;
    7796          15 :   int __pyx_clineno = 0;
    7797          15 :   int __pyx_r;
    7798             :   __Pyx_RefNannyDeclarations
    7799          15 :   __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
    7800             :   #if CYTHON_ASSUME_SAFE_MACROS
    7801          15 :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
    7802             :   #else
    7803             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
    7804             :   #endif
    7805          15 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
    7806             :   {
    7807          15 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
    7808          15 :     if (__pyx_kwds) {
    7809           0 :       Py_ssize_t kw_args;
    7810           0 :       switch (__pyx_nargs) {
    7811           0 :         case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    7812           0 :         CYTHON_FALLTHROUGH;
    7813           0 :         case  0: break;
    7814           0 :         default: goto __pyx_L5_argtuple_error;
    7815             :       }
    7816           0 :       kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
    7817           0 :       switch (__pyx_nargs) {
    7818           0 :         case  0:
    7819           0 :         if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
    7820           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
    7821           0 :           kw_args--;
    7822             :         }
    7823           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 304, __pyx_L3_error)
    7824           0 :         else goto __pyx_L5_argtuple_error;
    7825             :       }
    7826           0 :       if (unlikely(kw_args > 0)) {
    7827           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
    7828           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(1, 304, __pyx_L3_error)
    7829             :       }
    7830          15 :     } else if (unlikely(__pyx_nargs != 1)) {
    7831           0 :       goto __pyx_L5_argtuple_error;
    7832             :     } else {
    7833          15 :       values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    7834             :     }
    7835          15 :     __pyx_v_name = values[0];
    7836             :   }
    7837          15 :   goto __pyx_L6_skip;
    7838           0 :   __pyx_L5_argtuple_error:;
    7839           0 :   __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 304, __pyx_L3_error)
    7840          15 :   __pyx_L6_skip:;
    7841          15 :   goto __pyx_L4_argument_unpacking_done;
    7842           0 :   __pyx_L3_error:;
    7843             :   {
    7844           0 :     Py_ssize_t __pyx_temp;
    7845           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    7846             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    7847             :     }
    7848             :   }
    7849           0 :   __Pyx_AddTraceback("View.MemoryView.Enum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    7850           0 :   __Pyx_RefNannyFinishContext();
    7851           0 :   return -1;
    7852          15 :   __pyx_L4_argument_unpacking_done:;
    7853          15 :   __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v_name);
    7854             : 
    7855             :   /* function exit code */
    7856             :   {
    7857          15 :     Py_ssize_t __pyx_temp;
    7858          15 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    7859             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    7860             :     }
    7861             :   }
    7862             :   __Pyx_RefNannyFinishContext();
    7863             :   return __pyx_r;
    7864             : }
    7865             : 
    7866          15 : static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name) {
    7867          15 :   int __pyx_r;
    7868             :   __Pyx_RefNannyDeclarations
    7869          15 :   __Pyx_RefNannySetupContext("__init__", 1);
    7870             : 
    7871             :   /* "View.MemoryView":305
    7872             :  *     cdef object name
    7873             :  *     def __init__(self, name):
    7874             :  *         self.name = name             # <<<<<<<<<<<<<<
    7875             :  *     def __repr__(self):
    7876             :  *         return self.name
    7877             :  */
    7878          15 :   __Pyx_INCREF(__pyx_v_name);
    7879          15 :   __Pyx_GIVEREF(__pyx_v_name);
    7880          15 :   __Pyx_GOTREF(__pyx_v_self->name);
    7881          15 :   __Pyx_DECREF(__pyx_v_self->name);
    7882          15 :   __pyx_v_self->name = __pyx_v_name;
    7883             : 
    7884             :   /* "View.MemoryView":304
    7885             :  * cdef class Enum(object):
    7886             :  *     cdef object name
    7887             :  *     def __init__(self, name):             # <<<<<<<<<<<<<<
    7888             :  *         self.name = name
    7889             :  *     def __repr__(self):
    7890             :  */
    7891             : 
    7892             :   /* function exit code */
    7893          15 :   __pyx_r = 0;
    7894          15 :   __Pyx_RefNannyFinishContext();
    7895          15 :   return __pyx_r;
    7896             : }
    7897             : 
    7898             : /* "View.MemoryView":306
    7899             :  *     def __init__(self, name):
    7900             :  *         self.name = name
    7901             :  *     def __repr__(self):             # <<<<<<<<<<<<<<
    7902             :  *         return self.name
    7903             :  * 
    7904             :  */
    7905             : 
    7906             : /* Python wrapper */
    7907             : static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self); /*proto*/
    7908           0 : static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self) {
    7909           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    7910           0 :   PyObject *__pyx_r = 0;
    7911             :   __Pyx_RefNannyDeclarations
    7912           0 :   __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
    7913           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
    7914           0 :   __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self));
    7915             : 
    7916             :   /* function exit code */
    7917           0 :   __Pyx_RefNannyFinishContext();
    7918           0 :   return __pyx_r;
    7919             : }
    7920             : 
    7921           0 : static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self) {
    7922           0 :   PyObject *__pyx_r = NULL;
    7923             :   __Pyx_RefNannyDeclarations
    7924           0 :   __Pyx_RefNannySetupContext("__repr__", 1);
    7925             : 
    7926             :   /* "View.MemoryView":307
    7927             :  *         self.name = name
    7928             :  *     def __repr__(self):
    7929             :  *         return self.name             # <<<<<<<<<<<<<<
    7930             :  * 
    7931             :  * cdef generic = Enum("<strided and direct or indirect>")
    7932             :  */
    7933           0 :   __Pyx_XDECREF(__pyx_r);
    7934           0 :   __Pyx_INCREF(__pyx_v_self->name);
    7935           0 :   __pyx_r = __pyx_v_self->name;
    7936           0 :   goto __pyx_L0;
    7937             : 
    7938             :   /* "View.MemoryView":306
    7939             :  *     def __init__(self, name):
    7940             :  *         self.name = name
    7941             :  *     def __repr__(self):             # <<<<<<<<<<<<<<
    7942             :  *         return self.name
    7943             :  * 
    7944             :  */
    7945             : 
    7946             :   /* function exit code */
    7947           0 :   __pyx_L0:;
    7948           0 :   __Pyx_XGIVEREF(__pyx_r);
    7949           0 :   __Pyx_RefNannyFinishContext();
    7950           0 :   return __pyx_r;
    7951             : }
    7952             : 
    7953             : /* "(tree fragment)":1
    7954             :  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
    7955             :  *     cdef tuple state
    7956             :  *     cdef object _dict
    7957             :  */
    7958             : 
    7959             : /* Python wrapper */
    7960             : static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, 
    7961             : #if CYTHON_METH_FASTCALL
    7962             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
    7963             : #else
    7964             : PyObject *__pyx_args, PyObject *__pyx_kwds
    7965             : #endif
    7966             : ); /*proto*/
    7967           0 : static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, 
    7968             : #if CYTHON_METH_FASTCALL
    7969             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
    7970             : #else
    7971             : PyObject *__pyx_args, PyObject *__pyx_kwds
    7972             : #endif
    7973             : ) {
    7974             :   #if !CYTHON_METH_FASTCALL
    7975             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
    7976             :   #endif
    7977           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    7978           0 :   PyObject *__pyx_r = 0;
    7979             :   __Pyx_RefNannyDeclarations
    7980           0 :   __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
    7981             :   #if !CYTHON_METH_FASTCALL
    7982             :   #if CYTHON_ASSUME_SAFE_MACROS
    7983             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
    7984             :   #else
    7985             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
    7986             :   #endif
    7987             :   #endif
    7988           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
    7989           0 :   if (unlikely(__pyx_nargs > 0)) {
    7990           0 :     __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
    7991           0 :   if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
    7992           0 :   __pyx_r = __pyx_pf___pyx_MemviewEnum___reduce_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self));
    7993             : 
    7994             :   /* function exit code */
    7995           0 :   __Pyx_RefNannyFinishContext();
    7996           0 :   return __pyx_r;
    7997             : }
    7998             : 
    7999           0 : static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self) {
    8000           0 :   PyObject *__pyx_v_state = 0;
    8001           0 :   PyObject *__pyx_v__dict = 0;
    8002           0 :   int __pyx_v_use_setstate;
    8003           0 :   PyObject *__pyx_r = NULL;
    8004             :   __Pyx_RefNannyDeclarations
    8005           0 :   PyObject *__pyx_t_1 = NULL;
    8006           0 :   int __pyx_t_2;
    8007           0 :   PyObject *__pyx_t_3 = NULL;
    8008           0 :   PyObject *__pyx_t_4 = NULL;
    8009           0 :   int __pyx_lineno = 0;
    8010           0 :   const char *__pyx_filename = NULL;
    8011           0 :   int __pyx_clineno = 0;
    8012           0 :   __Pyx_RefNannySetupContext("__reduce_cython__", 1);
    8013             : 
    8014             :   /* "(tree fragment)":5
    8015             :  *     cdef object _dict
    8016             :  *     cdef bint use_setstate
    8017             :  *     state = (self.name,)             # <<<<<<<<<<<<<<
    8018             :  *     _dict = getattr(self, '__dict__', None)
    8019             :  *     if _dict is not None:
    8020             :  */
    8021           0 :   __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    8022           0 :   __Pyx_GOTREF(__pyx_t_1);
    8023           0 :   __Pyx_INCREF(__pyx_v_self->name);
    8024           0 :   __Pyx_GIVEREF(__pyx_v_self->name);
    8025           0 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->name)) __PYX_ERR(1, 5, __pyx_L1_error);
    8026           0 :   __pyx_v_state = ((PyObject*)__pyx_t_1);
    8027           0 :   __pyx_t_1 = 0;
    8028             : 
    8029             :   /* "(tree fragment)":6
    8030             :  *     cdef bint use_setstate
    8031             :  *     state = (self.name,)
    8032             :  *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
    8033             :  *     if _dict is not None:
    8034             :  *         state += (_dict,)
    8035             :  */
    8036           0 :   __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    8037           0 :   __Pyx_GOTREF(__pyx_t_1);
    8038           0 :   __pyx_v__dict = __pyx_t_1;
    8039           0 :   __pyx_t_1 = 0;
    8040             : 
    8041             :   /* "(tree fragment)":7
    8042             :  *     state = (self.name,)
    8043             :  *     _dict = getattr(self, '__dict__', None)
    8044             :  *     if _dict is not None:             # <<<<<<<<<<<<<<
    8045             :  *         state += (_dict,)
    8046             :  *         use_setstate = True
    8047             :  */
    8048           0 :   __pyx_t_2 = (__pyx_v__dict != Py_None);
    8049           0 :   if (__pyx_t_2) {
    8050             : 
    8051             :     /* "(tree fragment)":8
    8052             :  *     _dict = getattr(self, '__dict__', None)
    8053             :  *     if _dict is not None:
    8054             :  *         state += (_dict,)             # <<<<<<<<<<<<<<
    8055             :  *         use_setstate = True
    8056             :  *     else:
    8057             :  */
    8058           0 :     __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
    8059           0 :     __Pyx_GOTREF(__pyx_t_1);
    8060           0 :     __Pyx_INCREF(__pyx_v__dict);
    8061           0 :     __Pyx_GIVEREF(__pyx_v__dict);
    8062           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    8063           0 :     __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    8064           0 :     __Pyx_GOTREF(__pyx_t_3);
    8065           0 :     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    8066           0 :     __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    8067           0 :     __pyx_t_3 = 0;
    8068             : 
    8069             :     /* "(tree fragment)":9
    8070             :  *     if _dict is not None:
    8071             :  *         state += (_dict,)
    8072             :  *         use_setstate = True             # <<<<<<<<<<<<<<
    8073             :  *     else:
    8074             :  *         use_setstate = self.name is not None
    8075             :  */
    8076           0 :     __pyx_v_use_setstate = 1;
    8077             : 
    8078             :     /* "(tree fragment)":7
    8079             :  *     state = (self.name,)
    8080             :  *     _dict = getattr(self, '__dict__', None)
    8081             :  *     if _dict is not None:             # <<<<<<<<<<<<<<
    8082             :  *         state += (_dict,)
    8083             :  *         use_setstate = True
    8084             :  */
    8085           0 :     goto __pyx_L3;
    8086             :   }
    8087             : 
    8088             :   /* "(tree fragment)":11
    8089             :  *         use_setstate = True
    8090             :  *     else:
    8091             :  *         use_setstate = self.name is not None             # <<<<<<<<<<<<<<
    8092             :  *     if use_setstate:
    8093             :  *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, None), state
    8094             :  */
    8095             :   /*else*/ {
    8096           0 :     __pyx_t_2 = (__pyx_v_self->name != Py_None);
    8097           0 :     __pyx_v_use_setstate = __pyx_t_2;
    8098             :   }
    8099           0 :   __pyx_L3:;
    8100             : 
    8101             :   /* "(tree fragment)":12
    8102             :  *     else:
    8103             :  *         use_setstate = self.name is not None
    8104             :  *     if use_setstate:             # <<<<<<<<<<<<<<
    8105             :  *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, None), state
    8106             :  *     else:
    8107             :  */
    8108           0 :   if (__pyx_v_use_setstate) {
    8109             : 
    8110             :     /* "(tree fragment)":13
    8111             :  *         use_setstate = self.name is not None
    8112             :  *     if use_setstate:
    8113             :  *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, None), state             # <<<<<<<<<<<<<<
    8114             :  *     else:
    8115             :  *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, state)
    8116             :  */
    8117           0 :     __Pyx_XDECREF(__pyx_r);
    8118           0 :     __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    8119           0 :     __Pyx_GOTREF(__pyx_t_3);
    8120           0 :     __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    8121           0 :     __Pyx_GOTREF(__pyx_t_1);
    8122           0 :     __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    8123           0 :     __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    8124           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    8125           0 :     __Pyx_INCREF(__pyx_int_136983863);
    8126           0 :     __Pyx_GIVEREF(__pyx_int_136983863);
    8127           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_136983863)) __PYX_ERR(1, 13, __pyx_L1_error);
    8128           0 :     __Pyx_INCREF(Py_None);
    8129           0 :     __Pyx_GIVEREF(Py_None);
    8130           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    8131           0 :     __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    8132           0 :     __Pyx_GOTREF(__pyx_t_4);
    8133           0 :     __Pyx_GIVEREF(__pyx_t_3);
    8134           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    8135           0 :     __Pyx_GIVEREF(__pyx_t_1);
    8136           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error);
    8137           0 :     __Pyx_INCREF(__pyx_v_state);
    8138           0 :     __Pyx_GIVEREF(__pyx_v_state);
    8139           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    8140           0 :     __pyx_t_3 = 0;
    8141           0 :     __pyx_t_1 = 0;
    8142           0 :     __pyx_r = __pyx_t_4;
    8143           0 :     __pyx_t_4 = 0;
    8144           0 :     goto __pyx_L0;
    8145             : 
    8146             :     /* "(tree fragment)":12
    8147             :  *     else:
    8148             :  *         use_setstate = self.name is not None
    8149             :  *     if use_setstate:             # <<<<<<<<<<<<<<
    8150             :  *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, None), state
    8151             :  *     else:
    8152             :  */
    8153             :   }
    8154             : 
    8155             :   /* "(tree fragment)":15
    8156             :  *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, None), state
    8157             :  *     else:
    8158             :  *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, state)             # <<<<<<<<<<<<<<
    8159             :  * def __setstate_cython__(self, __pyx_state):
    8160             :  *     __pyx_unpickle_Enum__set_state(self, __pyx_state)
    8161             :  */
    8162             :   /*else*/ {
    8163           0 :     __Pyx_XDECREF(__pyx_r);
    8164           0 :     __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    8165           0 :     __Pyx_GOTREF(__pyx_t_4);
    8166           0 :     __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    8167           0 :     __Pyx_GOTREF(__pyx_t_1);
    8168           0 :     __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    8169           0 :     __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    8170           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    8171           0 :     __Pyx_INCREF(__pyx_int_136983863);
    8172           0 :     __Pyx_GIVEREF(__pyx_int_136983863);
    8173           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_136983863)) __PYX_ERR(1, 15, __pyx_L1_error);
    8174           0 :     __Pyx_INCREF(__pyx_v_state);
    8175           0 :     __Pyx_GIVEREF(__pyx_v_state);
    8176           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    8177           0 :     __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    8178           0 :     __Pyx_GOTREF(__pyx_t_3);
    8179           0 :     __Pyx_GIVEREF(__pyx_t_4);
    8180           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    8181           0 :     __Pyx_GIVEREF(__pyx_t_1);
    8182           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error);
    8183           0 :     __pyx_t_4 = 0;
    8184           0 :     __pyx_t_1 = 0;
    8185           0 :     __pyx_r = __pyx_t_3;
    8186           0 :     __pyx_t_3 = 0;
    8187           0 :     goto __pyx_L0;
    8188             :   }
    8189             : 
    8190             :   /* "(tree fragment)":1
    8191             :  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
    8192             :  *     cdef tuple state
    8193             :  *     cdef object _dict
    8194             :  */
    8195             : 
    8196             :   /* function exit code */
    8197           0 :   __pyx_L1_error:;
    8198           0 :   __Pyx_XDECREF(__pyx_t_1);
    8199           0 :   __Pyx_XDECREF(__pyx_t_3);
    8200           0 :   __Pyx_XDECREF(__pyx_t_4);
    8201           0 :   __Pyx_AddTraceback("View.MemoryView.Enum.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    8202           0 :   __pyx_r = NULL;
    8203           0 :   __pyx_L0:;
    8204           0 :   __Pyx_XDECREF(__pyx_v_state);
    8205           0 :   __Pyx_XDECREF(__pyx_v__dict);
    8206           0 :   __Pyx_XGIVEREF(__pyx_r);
    8207           0 :   __Pyx_RefNannyFinishContext();
    8208           0 :   return __pyx_r;
    8209             : }
    8210             : 
    8211             : /* "(tree fragment)":16
    8212             :  *     else:
    8213             :  *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, state)
    8214             :  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
    8215             :  *     __pyx_unpickle_Enum__set_state(self, __pyx_state)
    8216             :  */
    8217             : 
    8218             : /* Python wrapper */
    8219             : static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, 
    8220             : #if CYTHON_METH_FASTCALL
    8221             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
    8222             : #else
    8223             : PyObject *__pyx_args, PyObject *__pyx_kwds
    8224             : #endif
    8225             : ); /*proto*/
    8226           0 : static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, 
    8227             : #if CYTHON_METH_FASTCALL
    8228             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
    8229             : #else
    8230             : PyObject *__pyx_args, PyObject *__pyx_kwds
    8231             : #endif
    8232             : ) {
    8233           0 :   PyObject *__pyx_v___pyx_state = 0;
    8234             :   #if !CYTHON_METH_FASTCALL
    8235             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
    8236             :   #endif
    8237           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    8238           0 :   PyObject* values[1] = {0};
    8239           0 :   int __pyx_lineno = 0;
    8240           0 :   const char *__pyx_filename = NULL;
    8241           0 :   int __pyx_clineno = 0;
    8242           0 :   PyObject *__pyx_r = 0;
    8243             :   __Pyx_RefNannyDeclarations
    8244           0 :   __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
    8245             :   #if !CYTHON_METH_FASTCALL
    8246             :   #if CYTHON_ASSUME_SAFE_MACROS
    8247             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
    8248             :   #else
    8249             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
    8250             :   #endif
    8251             :   #endif
    8252           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
    8253             :   {
    8254           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    8255           0 :     if (__pyx_kwds) {
    8256           0 :       Py_ssize_t kw_args;
    8257           0 :       switch (__pyx_nargs) {
    8258           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    8259           0 :         CYTHON_FALLTHROUGH;
    8260           0 :         case  0: break;
    8261           0 :         default: goto __pyx_L5_argtuple_error;
    8262             :       }
    8263           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
    8264           0 :       switch (__pyx_nargs) {
    8265             :         case  0:
    8266           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
    8267           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
    8268           0 :           kw_args--;
    8269             :         }
    8270           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
    8271           0 :         else goto __pyx_L5_argtuple_error;
    8272             :       }
    8273           0 :       if (unlikely(kw_args > 0)) {
    8274           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
    8275           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
    8276             :       }
    8277           0 :     } else if (unlikely(__pyx_nargs != 1)) {
    8278           0 :       goto __pyx_L5_argtuple_error;
    8279             :     } else {
    8280           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    8281             :     }
    8282           0 :     __pyx_v___pyx_state = values[0];
    8283             :   }
    8284           0 :   goto __pyx_L6_skip;
    8285           0 :   __pyx_L5_argtuple_error:;
    8286           0 :   __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
    8287           0 :   __pyx_L6_skip:;
    8288           0 :   goto __pyx_L4_argument_unpacking_done;
    8289           0 :   __pyx_L3_error:;
    8290             :   {
    8291           0 :     Py_ssize_t __pyx_temp;
    8292           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    8293             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    8294             :     }
    8295             :   }
    8296           0 :   __Pyx_AddTraceback("View.MemoryView.Enum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    8297           0 :   __Pyx_RefNannyFinishContext();
    8298           0 :   return NULL;
    8299           0 :   __pyx_L4_argument_unpacking_done:;
    8300           0 :   __pyx_r = __pyx_pf___pyx_MemviewEnum_2__setstate_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v___pyx_state);
    8301             : 
    8302             :   /* function exit code */
    8303             :   {
    8304           0 :     Py_ssize_t __pyx_temp;
    8305           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    8306             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    8307             :     }
    8308             :   }
    8309             :   __Pyx_RefNannyFinishContext();
    8310             :   return __pyx_r;
    8311             : }
    8312             : 
    8313           0 : static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
    8314           0 :   PyObject *__pyx_r = NULL;
    8315             :   __Pyx_RefNannyDeclarations
    8316           0 :   PyObject *__pyx_t_1 = NULL;
    8317           0 :   int __pyx_lineno = 0;
    8318           0 :   const char *__pyx_filename = NULL;
    8319           0 :   int __pyx_clineno = 0;
    8320           0 :   __Pyx_RefNannySetupContext("__setstate_cython__", 1);
    8321             : 
    8322             :   /* "(tree fragment)":17
    8323             :  *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, state)
    8324             :  * def __setstate_cython__(self, __pyx_state):
    8325             :  *     __pyx_unpickle_Enum__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
    8326             :  */
    8327           0 :   if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
    8328           0 :   __pyx_t_1 = __pyx_unpickle_Enum__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
    8329           0 :   __Pyx_GOTREF(__pyx_t_1);
    8330           0 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    8331             : 
    8332             :   /* "(tree fragment)":16
    8333             :  *     else:
    8334             :  *         return __pyx_unpickle_Enum, (type(self), 0x82a3537, state)
    8335             :  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
    8336             :  *     __pyx_unpickle_Enum__set_state(self, __pyx_state)
    8337             :  */
    8338             : 
    8339             :   /* function exit code */
    8340           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    8341           0 :   goto __pyx_L0;
    8342           0 :   __pyx_L1_error:;
    8343           0 :   __Pyx_XDECREF(__pyx_t_1);
    8344           0 :   __Pyx_AddTraceback("View.MemoryView.Enum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    8345           0 :   __pyx_r = NULL;
    8346           0 :   __pyx_L0:;
    8347           0 :   __Pyx_XGIVEREF(__pyx_r);
    8348           0 :   __Pyx_RefNannyFinishContext();
    8349           0 :   return __pyx_r;
    8350             : }
    8351             : 
    8352             : /* "View.MemoryView":349
    8353             :  *     cdef __Pyx_TypeInfo *typeinfo
    8354             :  * 
    8355             :  *     def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False):             # <<<<<<<<<<<<<<
    8356             :  *         self.obj = obj
    8357             :  *         self.flags = flags
    8358             :  */
    8359             : 
    8360             : /* Python wrapper */
    8361             : static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
    8362      536853 : static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
    8363      536853 :   PyObject *__pyx_v_obj = 0;
    8364      536853 :   int __pyx_v_flags;
    8365      536853 :   int __pyx_v_dtype_is_object;
    8366      536853 :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
    8367      536853 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    8368      536853 :   PyObject* values[3] = {0,0,0};
    8369      536853 :   int __pyx_lineno = 0;
    8370      536853 :   const char *__pyx_filename = NULL;
    8371      536853 :   int __pyx_clineno = 0;
    8372      536853 :   int __pyx_r;
    8373             :   __Pyx_RefNannyDeclarations
    8374      536853 :   __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
    8375             :   #if CYTHON_ASSUME_SAFE_MACROS
    8376      536853 :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
    8377             :   #else
    8378             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
    8379             :   #endif
    8380      536853 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
    8381             :   {
    8382      536853 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,&__pyx_n_s_flags,&__pyx_n_s_dtype_is_object,0};
    8383      536853 :     if (__pyx_kwds) {
    8384           0 :       Py_ssize_t kw_args;
    8385           0 :       switch (__pyx_nargs) {
    8386           0 :         case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
    8387           0 :         CYTHON_FALLTHROUGH;
    8388           0 :         case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    8389           0 :         CYTHON_FALLTHROUGH;
    8390           0 :         case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    8391           0 :         CYTHON_FALLTHROUGH;
    8392           0 :         case  0: break;
    8393           0 :         default: goto __pyx_L5_argtuple_error;
    8394             :       }
    8395           0 :       kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
    8396           0 :       switch (__pyx_nargs) {
    8397           0 :         case  0:
    8398           0 :         if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_obj)) != 0)) {
    8399           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
    8400           0 :           kw_args--;
    8401             :         }
    8402           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 349, __pyx_L3_error)
    8403           0 :         else goto __pyx_L5_argtuple_error;
    8404           0 :         CYTHON_FALLTHROUGH;
    8405             :         case  1:
    8406           0 :         if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flags)) != 0)) {
    8407           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
    8408           0 :           kw_args--;
    8409             :         }
    8410           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 349, __pyx_L3_error)
    8411             :         else {
    8412           0 :           __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, 1); __PYX_ERR(1, 349, __pyx_L3_error)
    8413             :         }
    8414           0 :         CYTHON_FALLTHROUGH;
    8415             :         case  2:
    8416           0 :         if (kw_args > 0) {
    8417           0 :           PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dtype_is_object);
    8418           0 :           if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
    8419           0 :           else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 349, __pyx_L3_error)
    8420             :         }
    8421             :       }
    8422           0 :       if (unlikely(kw_args > 0)) {
    8423           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
    8424           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(1, 349, __pyx_L3_error)
    8425             :       }
    8426             :     } else {
    8427      536853 :       switch (__pyx_nargs) {
    8428      536853 :         case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
    8429      536853 :         CYTHON_FALLTHROUGH;
    8430      536853 :         case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    8431      536853 :         values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    8432      536853 :         break;
    8433           0 :         default: goto __pyx_L5_argtuple_error;
    8434             :       }
    8435             :     }
    8436      536853 :     __pyx_v_obj = values[0];
    8437      536853 :     __pyx_v_flags = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 349, __pyx_L3_error)
    8438      536853 :     if (values[2]) {
    8439      536853 :       __pyx_v_dtype_is_object = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_dtype_is_object == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 349, __pyx_L3_error)
    8440             :     } else {
    8441             :       __pyx_v_dtype_is_object = ((int)0);
    8442             :     }
    8443             :   }
    8444      536853 :   goto __pyx_L6_skip;
    8445           0 :   __pyx_L5_argtuple_error:;
    8446           0 :   __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, __pyx_nargs); __PYX_ERR(1, 349, __pyx_L3_error)
    8447      536853 :   __pyx_L6_skip:;
    8448      536853 :   goto __pyx_L4_argument_unpacking_done;
    8449           0 :   __pyx_L3_error:;
    8450             :   {
    8451           0 :     Py_ssize_t __pyx_temp;
    8452           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    8453             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    8454             :     }
    8455             :   }
    8456           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    8457           0 :   __Pyx_RefNannyFinishContext();
    8458           0 :   return -1;
    8459      536853 :   __pyx_L4_argument_unpacking_done:;
    8460      536853 :   __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_obj, __pyx_v_flags, __pyx_v_dtype_is_object);
    8461             : 
    8462             :   /* function exit code */
    8463             :   {
    8464      536853 :     Py_ssize_t __pyx_temp;
    8465      536853 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    8466             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    8467             :     }
    8468             :   }
    8469             :   __Pyx_RefNannyFinishContext();
    8470             :   return __pyx_r;
    8471             : }
    8472             : 
    8473      536853 : static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object) {
    8474      536853 :   int __pyx_r;
    8475             :   __Pyx_RefNannyDeclarations
    8476      536853 :   int __pyx_t_1;
    8477      536853 :   int __pyx_t_2;
    8478      536853 :   int __pyx_t_3;
    8479      536853 :   Py_intptr_t __pyx_t_4;
    8480      536853 :   size_t __pyx_t_5;
    8481      536853 :   int __pyx_lineno = 0;
    8482      536853 :   const char *__pyx_filename = NULL;
    8483      536853 :   int __pyx_clineno = 0;
    8484      536853 :   __Pyx_RefNannySetupContext("__cinit__", 1);
    8485             : 
    8486             :   /* "View.MemoryView":350
    8487             :  * 
    8488             :  *     def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False):
    8489             :  *         self.obj = obj             # <<<<<<<<<<<<<<
    8490             :  *         self.flags = flags
    8491             :  *         if type(self) is memoryview or obj is not None:
    8492             :  */
    8493      536853 :   __Pyx_INCREF(__pyx_v_obj);
    8494      536853 :   __Pyx_GIVEREF(__pyx_v_obj);
    8495      536853 :   __Pyx_GOTREF(__pyx_v_self->obj);
    8496      536853 :   __Pyx_DECREF(__pyx_v_self->obj);
    8497      536853 :   __pyx_v_self->obj = __pyx_v_obj;
    8498             : 
    8499             :   /* "View.MemoryView":351
    8500             :  *     def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False):
    8501             :  *         self.obj = obj
    8502             :  *         self.flags = flags             # <<<<<<<<<<<<<<
    8503             :  *         if type(self) is memoryview or obj is not None:
    8504             :  *             __Pyx_GetBuffer(obj, &self.view, flags)
    8505             :  */
    8506      536853 :   __pyx_v_self->flags = __pyx_v_flags;
    8507             : 
    8508             :   /* "View.MemoryView":352
    8509             :  *         self.obj = obj
    8510             :  *         self.flags = flags
    8511             :  *         if type(self) is memoryview or obj is not None:             # <<<<<<<<<<<<<<
    8512             :  *             __Pyx_GetBuffer(obj, &self.view, flags)
    8513             :  *             if <PyObject *> self.view.obj == NULL:
    8514             :  */
    8515      536853 :   __pyx_t_2 = (((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))) == ((PyObject *)__pyx_memoryview_type));
    8516      536853 :   if (!__pyx_t_2) {
    8517      136725 :   } else {
    8518      400128 :     __pyx_t_1 = __pyx_t_2;
    8519      400128 :     goto __pyx_L4_bool_binop_done;
    8520             :   }
    8521      136725 :   __pyx_t_2 = (__pyx_v_obj != Py_None);
    8522      136725 :   __pyx_t_1 = __pyx_t_2;
    8523      536853 :   __pyx_L4_bool_binop_done:;
    8524      536853 :   if (__pyx_t_1) {
    8525             : 
    8526             :     /* "View.MemoryView":353
    8527             :  *         self.flags = flags
    8528             :  *         if type(self) is memoryview or obj is not None:
    8529             :  *             __Pyx_GetBuffer(obj, &self.view, flags)             # <<<<<<<<<<<<<<
    8530             :  *             if <PyObject *> self.view.obj == NULL:
    8531             :  *                 (<__pyx_buffer *> &self.view).obj = Py_None
    8532             :  */
    8533      400128 :     __pyx_t_3 = __Pyx_GetBuffer(__pyx_v_obj, (&__pyx_v_self->view), __pyx_v_flags); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 353, __pyx_L1_error)
    8534             : 
    8535             :     /* "View.MemoryView":354
    8536             :  *         if type(self) is memoryview or obj is not None:
    8537             :  *             __Pyx_GetBuffer(obj, &self.view, flags)
    8538             :  *             if <PyObject *> self.view.obj == NULL:             # <<<<<<<<<<<<<<
    8539             :  *                 (<__pyx_buffer *> &self.view).obj = Py_None
    8540             :  *                 Py_INCREF(Py_None)
    8541             :  */
    8542      400128 :     __pyx_t_1 = (((PyObject *)__pyx_v_self->view.obj) == NULL);
    8543      400128 :     if (__pyx_t_1) {
    8544             : 
    8545             :       /* "View.MemoryView":355
    8546             :  *             __Pyx_GetBuffer(obj, &self.view, flags)
    8547             :  *             if <PyObject *> self.view.obj == NULL:
    8548             :  *                 (<__pyx_buffer *> &self.view).obj = Py_None             # <<<<<<<<<<<<<<
    8549             :  *                 Py_INCREF(Py_None)
    8550             :  * 
    8551             :  */
    8552           0 :       ((Py_buffer *)(&__pyx_v_self->view))->obj = Py_None;
    8553             : 
    8554             :       /* "View.MemoryView":356
    8555             :  *             if <PyObject *> self.view.obj == NULL:
    8556             :  *                 (<__pyx_buffer *> &self.view).obj = Py_None
    8557             :  *                 Py_INCREF(Py_None)             # <<<<<<<<<<<<<<
    8558             :  * 
    8559             :  *         if not __PYX_CYTHON_ATOMICS_ENABLED():
    8560             :  */
    8561           0 :       Py_INCREF(Py_None);
    8562             : 
    8563             :       /* "View.MemoryView":354
    8564             :  *         if type(self) is memoryview or obj is not None:
    8565             :  *             __Pyx_GetBuffer(obj, &self.view, flags)
    8566             :  *             if <PyObject *> self.view.obj == NULL:             # <<<<<<<<<<<<<<
    8567             :  *                 (<__pyx_buffer *> &self.view).obj = Py_None
    8568             :  *                 Py_INCREF(Py_None)
    8569             :  */
    8570             :     }
    8571             : 
    8572             :     /* "View.MemoryView":352
    8573             :  *         self.obj = obj
    8574             :  *         self.flags = flags
    8575             :  *         if type(self) is memoryview or obj is not None:             # <<<<<<<<<<<<<<
    8576             :  *             __Pyx_GetBuffer(obj, &self.view, flags)
    8577             :  *             if <PyObject *> self.view.obj == NULL:
    8578             :  */
    8579             :   }
    8580             : 
    8581             :   /* "View.MemoryView":358
    8582             :  *                 Py_INCREF(Py_None)
    8583             :  * 
    8584             :  *         if not __PYX_CYTHON_ATOMICS_ENABLED():             # <<<<<<<<<<<<<<
    8585             :  *             global __pyx_memoryview_thread_locks_used
    8586             :  *             if __pyx_memoryview_thread_locks_used < 8:
    8587             :  */
    8588      536853 :   __pyx_t_1 = (!__PYX_CYTHON_ATOMICS_ENABLED());
    8589      536853 :   if (__pyx_t_1) {
    8590             : 
    8591             :     /* "View.MemoryView":360
    8592             :  *         if not __PYX_CYTHON_ATOMICS_ENABLED():
    8593             :  *             global __pyx_memoryview_thread_locks_used
    8594             :  *             if __pyx_memoryview_thread_locks_used < 8:             # <<<<<<<<<<<<<<
    8595             :  *                 self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
    8596             :  *                 __pyx_memoryview_thread_locks_used += 1
    8597             :  */
    8598             :     __pyx_t_1 = (__pyx_memoryview_thread_locks_used < 8);
    8599             :     if (__pyx_t_1) {
    8600             : 
    8601             :       /* "View.MemoryView":361
    8602             :  *             global __pyx_memoryview_thread_locks_used
    8603             :  *             if __pyx_memoryview_thread_locks_used < 8:
    8604             :  *                 self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]             # <<<<<<<<<<<<<<
    8605             :  *                 __pyx_memoryview_thread_locks_used += 1
    8606             :  *             if self.lock is NULL:
    8607             :  */
    8608             :       __pyx_v_self->lock = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]);
    8609             : 
    8610             :       /* "View.MemoryView":362
    8611             :  *             if __pyx_memoryview_thread_locks_used < 8:
    8612             :  *                 self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
    8613             :  *                 __pyx_memoryview_thread_locks_used += 1             # <<<<<<<<<<<<<<
    8614             :  *             if self.lock is NULL:
    8615             :  *                 self.lock = PyThread_allocate_lock()
    8616             :  */
    8617             :       __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used + 1);
    8618             : 
    8619             :       /* "View.MemoryView":360
    8620             :  *         if not __PYX_CYTHON_ATOMICS_ENABLED():
    8621             :  *             global __pyx_memoryview_thread_locks_used
    8622             :  *             if __pyx_memoryview_thread_locks_used < 8:             # <<<<<<<<<<<<<<
    8623             :  *                 self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
    8624             :  *                 __pyx_memoryview_thread_locks_used += 1
    8625             :  */
    8626             :     }
    8627             : 
    8628             :     /* "View.MemoryView":363
    8629             :  *                 self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
    8630             :  *                 __pyx_memoryview_thread_locks_used += 1
    8631             :  *             if self.lock is NULL:             # <<<<<<<<<<<<<<
    8632             :  *                 self.lock = PyThread_allocate_lock()
    8633             :  *                 if self.lock is NULL:
    8634             :  */
    8635             :     __pyx_t_1 = (__pyx_v_self->lock == NULL);
    8636             :     if (__pyx_t_1) {
    8637             : 
    8638             :       /* "View.MemoryView":364
    8639             :  *                 __pyx_memoryview_thread_locks_used += 1
    8640             :  *             if self.lock is NULL:
    8641             :  *                 self.lock = PyThread_allocate_lock()             # <<<<<<<<<<<<<<
    8642             :  *                 if self.lock is NULL:
    8643             :  *                     raise MemoryError
    8644             :  */
    8645             :       __pyx_v_self->lock = PyThread_allocate_lock();
    8646             : 
    8647             :       /* "View.MemoryView":365
    8648             :  *             if self.lock is NULL:
    8649             :  *                 self.lock = PyThread_allocate_lock()
    8650             :  *                 if self.lock is NULL:             # <<<<<<<<<<<<<<
    8651             :  *                     raise MemoryError
    8652             :  * 
    8653             :  */
    8654             :       __pyx_t_1 = (__pyx_v_self->lock == NULL);
    8655             :       if (unlikely(__pyx_t_1)) {
    8656             : 
    8657             :         /* "View.MemoryView":366
    8658             :  *                 self.lock = PyThread_allocate_lock()
    8659             :  *                 if self.lock is NULL:
    8660             :  *                     raise MemoryError             # <<<<<<<<<<<<<<
    8661             :  * 
    8662             :  *         if flags & PyBUF_FORMAT:
    8663             :  */
    8664             :         PyErr_NoMemory(); __PYX_ERR(1, 366, __pyx_L1_error)
    8665             : 
    8666             :         /* "View.MemoryView":365
    8667             :  *             if self.lock is NULL:
    8668             :  *                 self.lock = PyThread_allocate_lock()
    8669             :  *                 if self.lock is NULL:             # <<<<<<<<<<<<<<
    8670             :  *                     raise MemoryError
    8671             :  * 
    8672             :  */
    8673             :       }
    8674             : 
    8675             :       /* "View.MemoryView":363
    8676             :  *                 self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
    8677             :  *                 __pyx_memoryview_thread_locks_used += 1
    8678             :  *             if self.lock is NULL:             # <<<<<<<<<<<<<<
    8679             :  *                 self.lock = PyThread_allocate_lock()
    8680             :  *                 if self.lock is NULL:
    8681             :  */
    8682             :     }
    8683             : 
    8684             :     /* "View.MemoryView":358
    8685             :  *                 Py_INCREF(Py_None)
    8686             :  * 
    8687             :  *         if not __PYX_CYTHON_ATOMICS_ENABLED():             # <<<<<<<<<<<<<<
    8688             :  *             global __pyx_memoryview_thread_locks_used
    8689             :  *             if __pyx_memoryview_thread_locks_used < 8:
    8690             :  */
    8691             :   }
    8692             : 
    8693             :   /* "View.MemoryView":368
    8694             :  *                     raise MemoryError
    8695             :  * 
    8696             :  *         if flags & PyBUF_FORMAT:             # <<<<<<<<<<<<<<
    8697             :  *             self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0')
    8698             :  *         else:
    8699             :  */
    8700      536853 :   __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
    8701      536853 :   if (__pyx_t_1) {
    8702             : 
    8703             :     /* "View.MemoryView":369
    8704             :  * 
    8705             :  *         if flags & PyBUF_FORMAT:
    8706             :  *             self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0')             # <<<<<<<<<<<<<<
    8707             :  *         else:
    8708             :  *             self.dtype_is_object = dtype_is_object
    8709             :  */
    8710      400128 :     __pyx_t_2 = ((__pyx_v_self->view.format[0]) == 'O');
    8711      400128 :     if (__pyx_t_2) {
    8712      390772 :     } else {
    8713        9356 :       __pyx_t_1 = __pyx_t_2;
    8714        9356 :       goto __pyx_L12_bool_binop_done;
    8715             :     }
    8716      390772 :     __pyx_t_2 = ((__pyx_v_self->view.format[1]) == '\x00');
    8717      390772 :     __pyx_t_1 = __pyx_t_2;
    8718      400128 :     __pyx_L12_bool_binop_done:;
    8719      400128 :     __pyx_v_self->dtype_is_object = __pyx_t_1;
    8720             : 
    8721             :     /* "View.MemoryView":368
    8722             :  *                     raise MemoryError
    8723             :  * 
    8724             :  *         if flags & PyBUF_FORMAT:             # <<<<<<<<<<<<<<
    8725             :  *             self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0')
    8726             :  *         else:
    8727             :  */
    8728      400128 :     goto __pyx_L11;
    8729             :   }
    8730             : 
    8731             :   /* "View.MemoryView":371
    8732             :  *             self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0')
    8733             :  *         else:
    8734             :  *             self.dtype_is_object = dtype_is_object             # <<<<<<<<<<<<<<
    8735             :  * 
    8736             :  *         assert <Py_intptr_t><void*>(&self.acquisition_count) % sizeof(__pyx_atomic_int_type) == 0
    8737             :  */
    8738             :   /*else*/ {
    8739      136725 :     __pyx_v_self->dtype_is_object = __pyx_v_dtype_is_object;
    8740             :   }
    8741      536853 :   __pyx_L11:;
    8742             : 
    8743             :   /* "View.MemoryView":373
    8744             :  *             self.dtype_is_object = dtype_is_object
    8745             :  * 
    8746             :  *         assert <Py_intptr_t><void*>(&self.acquisition_count) % sizeof(__pyx_atomic_int_type) == 0             # <<<<<<<<<<<<<<
    8747             :  *         self.typeinfo = NULL
    8748             :  * 
    8749             :  */
    8750             :   #ifndef CYTHON_WITHOUT_ASSERTIONS
    8751      536853 :   if (unlikely(__pyx_assertions_enabled())) {
    8752      536853 :     __pyx_t_4 = ((Py_intptr_t)((void *)(&__pyx_v_self->acquisition_count)));
    8753      536853 :     __pyx_t_5 = (sizeof(__pyx_atomic_int_type));
    8754      536853 :     if (unlikely(__pyx_t_5 == 0)) {
    8755             :       PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
    8756             :       __PYX_ERR(1, 373, __pyx_L1_error)
    8757             :     }
    8758      536853 :     __pyx_t_1 = ((__pyx_t_4 % __pyx_t_5) == 0);
    8759      536853 :     if (unlikely(!__pyx_t_1)) {
    8760           0 :       __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
    8761           0 :       __PYX_ERR(1, 373, __pyx_L1_error)
    8762             :     }
    8763             :   }
    8764             :   #else
    8765             :   if ((1)); else __PYX_ERR(1, 373, __pyx_L1_error)
    8766             :   #endif
    8767             : 
    8768             :   /* "View.MemoryView":374
    8769             :  * 
    8770             :  *         assert <Py_intptr_t><void*>(&self.acquisition_count) % sizeof(__pyx_atomic_int_type) == 0
    8771             :  *         self.typeinfo = NULL             # <<<<<<<<<<<<<<
    8772             :  * 
    8773             :  *     def __dealloc__(memoryview self):
    8774             :  */
    8775      536853 :   __pyx_v_self->typeinfo = NULL;
    8776             : 
    8777             :   /* "View.MemoryView":349
    8778             :  *     cdef __Pyx_TypeInfo *typeinfo
    8779             :  * 
    8780             :  *     def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False):             # <<<<<<<<<<<<<<
    8781             :  *         self.obj = obj
    8782             :  *         self.flags = flags
    8783             :  */
    8784             : 
    8785             :   /* function exit code */
    8786      536853 :   __pyx_r = 0;
    8787      536853 :   goto __pyx_L0;
    8788           0 :   __pyx_L1_error:;
    8789           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    8790           0 :   __pyx_r = -1;
    8791      536853 :   __pyx_L0:;
    8792      536853 :   __Pyx_RefNannyFinishContext();
    8793      536853 :   return __pyx_r;
    8794             : }
    8795             : 
    8796             : /* "View.MemoryView":376
    8797             :  *         self.typeinfo = NULL
    8798             :  * 
    8799             :  *     def __dealloc__(memoryview self):             # <<<<<<<<<<<<<<
    8800             :  *         if self.obj is not None:
    8801             :  *             __Pyx_ReleaseBuffer(&self.view)
    8802             :  */
    8803             : 
    8804             : /* Python wrapper */
    8805             : static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self); /*proto*/
    8806      536853 : static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self) {
    8807      536853 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    8808             :   __Pyx_RefNannyDeclarations
    8809      536853 :   __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
    8810      536853 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
    8811      536853 :   __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(((struct __pyx_memoryview_obj *)__pyx_v_self));
    8812             : 
    8813             :   /* function exit code */
    8814      536853 :   __Pyx_RefNannyFinishContext();
    8815             : }
    8816             : 
    8817      536853 : static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self) {
    8818      536853 :   int __pyx_v_i;
    8819      536853 :   int __pyx_t_1;
    8820      536853 :   int __pyx_t_2;
    8821      536853 :   int __pyx_t_3;
    8822      536853 :   int __pyx_t_4;
    8823      536853 :   PyThread_type_lock __pyx_t_5;
    8824      536853 :   PyThread_type_lock __pyx_t_6;
    8825             : 
    8826             :   /* "View.MemoryView":377
    8827             :  * 
    8828             :  *     def __dealloc__(memoryview self):
    8829             :  *         if self.obj is not None:             # <<<<<<<<<<<<<<
    8830             :  *             __Pyx_ReleaseBuffer(&self.view)
    8831             :  *         elif (<__pyx_buffer *> &self.view).obj == Py_None:
    8832             :  */
    8833      536853 :   __pyx_t_1 = (__pyx_v_self->obj != Py_None);
    8834      536853 :   if (__pyx_t_1) {
    8835             : 
    8836             :     /* "View.MemoryView":378
    8837             :  *     def __dealloc__(memoryview self):
    8838             :  *         if self.obj is not None:
    8839             :  *             __Pyx_ReleaseBuffer(&self.view)             # <<<<<<<<<<<<<<
    8840             :  *         elif (<__pyx_buffer *> &self.view).obj == Py_None:
    8841             :  * 
    8842             :  */
    8843      400128 :     __Pyx_ReleaseBuffer((&__pyx_v_self->view));
    8844             : 
    8845             :     /* "View.MemoryView":377
    8846             :  * 
    8847             :  *     def __dealloc__(memoryview self):
    8848             :  *         if self.obj is not None:             # <<<<<<<<<<<<<<
    8849             :  *             __Pyx_ReleaseBuffer(&self.view)
    8850             :  *         elif (<__pyx_buffer *> &self.view).obj == Py_None:
    8851             :  */
    8852      400128 :     goto __pyx_L3;
    8853             :   }
    8854             : 
    8855             :   /* "View.MemoryView":379
    8856             :  *         if self.obj is not None:
    8857             :  *             __Pyx_ReleaseBuffer(&self.view)
    8858             :  *         elif (<__pyx_buffer *> &self.view).obj == Py_None:             # <<<<<<<<<<<<<<
    8859             :  * 
    8860             :  *             (<__pyx_buffer *> &self.view).obj = NULL
    8861             :  */
    8862      136725 :   __pyx_t_1 = (((Py_buffer *)(&__pyx_v_self->view))->obj == Py_None);
    8863      136725 :   if (__pyx_t_1) {
    8864             : 
    8865             :     /* "View.MemoryView":381
    8866             :  *         elif (<__pyx_buffer *> &self.view).obj == Py_None:
    8867             :  * 
    8868             :  *             (<__pyx_buffer *> &self.view).obj = NULL             # <<<<<<<<<<<<<<
    8869             :  *             Py_DECREF(Py_None)
    8870             :  * 
    8871             :  */
    8872      136725 :     ((Py_buffer *)(&__pyx_v_self->view))->obj = NULL;
    8873             : 
    8874             :     /* "View.MemoryView":382
    8875             :  * 
    8876             :  *             (<__pyx_buffer *> &self.view).obj = NULL
    8877             :  *             Py_DECREF(Py_None)             # <<<<<<<<<<<<<<
    8878             :  * 
    8879             :  *         cdef int i
    8880             :  */
    8881      136725 :     Py_DECREF(Py_None);
    8882             : 
    8883             :     /* "View.MemoryView":379
    8884             :  *         if self.obj is not None:
    8885             :  *             __Pyx_ReleaseBuffer(&self.view)
    8886             :  *         elif (<__pyx_buffer *> &self.view).obj == Py_None:             # <<<<<<<<<<<<<<
    8887             :  * 
    8888             :  *             (<__pyx_buffer *> &self.view).obj = NULL
    8889             :  */
    8890             :   }
    8891           0 :   __pyx_L3:;
    8892             : 
    8893             :   /* "View.MemoryView":386
    8894             :  *         cdef int i
    8895             :  *         global __pyx_memoryview_thread_locks_used
    8896             :  *         if self.lock != NULL:             # <<<<<<<<<<<<<<
    8897             :  *             for i in range(__pyx_memoryview_thread_locks_used):
    8898             :  *                 if __pyx_memoryview_thread_locks[i] is self.lock:
    8899             :  */
    8900      536853 :   __pyx_t_1 = (__pyx_v_self->lock != NULL);
    8901      536853 :   if (__pyx_t_1) {
    8902             : 
    8903             :     /* "View.MemoryView":387
    8904             :  *         global __pyx_memoryview_thread_locks_used
    8905             :  *         if self.lock != NULL:
    8906             :  *             for i in range(__pyx_memoryview_thread_locks_used):             # <<<<<<<<<<<<<<
    8907             :  *                 if __pyx_memoryview_thread_locks[i] is self.lock:
    8908             :  *                     __pyx_memoryview_thread_locks_used -= 1
    8909             :  */
    8910           0 :     __pyx_t_2 = __pyx_memoryview_thread_locks_used;
    8911           0 :     __pyx_t_3 = __pyx_t_2;
    8912           0 :     for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    8913           0 :       __pyx_v_i = __pyx_t_4;
    8914             : 
    8915             :       /* "View.MemoryView":388
    8916             :  *         if self.lock != NULL:
    8917             :  *             for i in range(__pyx_memoryview_thread_locks_used):
    8918             :  *                 if __pyx_memoryview_thread_locks[i] is self.lock:             # <<<<<<<<<<<<<<
    8919             :  *                     __pyx_memoryview_thread_locks_used -= 1
    8920             :  *                     if i != __pyx_memoryview_thread_locks_used:
    8921             :  */
    8922           0 :       __pyx_t_1 = ((__pyx_memoryview_thread_locks[__pyx_v_i]) == __pyx_v_self->lock);
    8923           0 :       if (__pyx_t_1) {
    8924             : 
    8925             :         /* "View.MemoryView":389
    8926             :  *             for i in range(__pyx_memoryview_thread_locks_used):
    8927             :  *                 if __pyx_memoryview_thread_locks[i] is self.lock:
    8928             :  *                     __pyx_memoryview_thread_locks_used -= 1             # <<<<<<<<<<<<<<
    8929             :  *                     if i != __pyx_memoryview_thread_locks_used:
    8930             :  *                         __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
    8931             :  */
    8932           0 :         __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used - 1);
    8933             : 
    8934             :         /* "View.MemoryView":390
    8935             :  *                 if __pyx_memoryview_thread_locks[i] is self.lock:
    8936             :  *                     __pyx_memoryview_thread_locks_used -= 1
    8937             :  *                     if i != __pyx_memoryview_thread_locks_used:             # <<<<<<<<<<<<<<
    8938             :  *                         __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
    8939             :  *                             __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])
    8940             :  */
    8941           0 :         __pyx_t_1 = (__pyx_v_i != __pyx_memoryview_thread_locks_used);
    8942           0 :         if (__pyx_t_1) {
    8943             : 
    8944             :           /* "View.MemoryView":392
    8945             :  *                     if i != __pyx_memoryview_thread_locks_used:
    8946             :  *                         __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
    8947             :  *                             __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])             # <<<<<<<<<<<<<<
    8948             :  *                     break
    8949             :  *             else:
    8950             :  */
    8951           0 :           __pyx_t_5 = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]);
    8952           0 :           __pyx_t_6 = (__pyx_memoryview_thread_locks[__pyx_v_i]);
    8953             : 
    8954             :           /* "View.MemoryView":391
    8955             :  *                     __pyx_memoryview_thread_locks_used -= 1
    8956             :  *                     if i != __pyx_memoryview_thread_locks_used:
    8957             :  *                         __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (             # <<<<<<<<<<<<<<
    8958             :  *                             __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])
    8959             :  *                     break
    8960             :  */
    8961           0 :           (__pyx_memoryview_thread_locks[__pyx_v_i]) = __pyx_t_5;
    8962           0 :           (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]) = __pyx_t_6;
    8963             : 
    8964             :           /* "View.MemoryView":390
    8965             :  *                 if __pyx_memoryview_thread_locks[i] is self.lock:
    8966             :  *                     __pyx_memoryview_thread_locks_used -= 1
    8967             :  *                     if i != __pyx_memoryview_thread_locks_used:             # <<<<<<<<<<<<<<
    8968             :  *                         __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
    8969             :  *                             __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])
    8970             :  */
    8971             :         }
    8972             : 
    8973             :         /* "View.MemoryView":393
    8974             :  *                         __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
    8975             :  *                             __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])
    8976             :  *                     break             # <<<<<<<<<<<<<<
    8977             :  *             else:
    8978             :  *                 PyThread_free_lock(self.lock)
    8979             :  */
    8980           0 :         goto __pyx_L6_break;
    8981             : 
    8982             :         /* "View.MemoryView":388
    8983             :  *         if self.lock != NULL:
    8984             :  *             for i in range(__pyx_memoryview_thread_locks_used):
    8985             :  *                 if __pyx_memoryview_thread_locks[i] is self.lock:             # <<<<<<<<<<<<<<
    8986             :  *                     __pyx_memoryview_thread_locks_used -= 1
    8987             :  *                     if i != __pyx_memoryview_thread_locks_used:
    8988             :  */
    8989             :       }
    8990             :     }
    8991             :     /*else*/ {
    8992             : 
    8993             :       /* "View.MemoryView":395
    8994             :  *                     break
    8995             :  *             else:
    8996             :  *                 PyThread_free_lock(self.lock)             # <<<<<<<<<<<<<<
    8997             :  * 
    8998             :  *     cdef char *get_item_pointer(memoryview self, object index) except NULL:
    8999             :  */
    9000           0 :       PyThread_free_lock(__pyx_v_self->lock);
    9001             :     }
    9002      536853 :     __pyx_L6_break:;
    9003             : 
    9004             :     /* "View.MemoryView":386
    9005             :  *         cdef int i
    9006             :  *         global __pyx_memoryview_thread_locks_used
    9007             :  *         if self.lock != NULL:             # <<<<<<<<<<<<<<
    9008             :  *             for i in range(__pyx_memoryview_thread_locks_used):
    9009             :  *                 if __pyx_memoryview_thread_locks[i] is self.lock:
    9010             :  */
    9011             :   }
    9012             : 
    9013             :   /* "View.MemoryView":376
    9014             :  *         self.typeinfo = NULL
    9015             :  * 
    9016             :  *     def __dealloc__(memoryview self):             # <<<<<<<<<<<<<<
    9017             :  *         if self.obj is not None:
    9018             :  *             __Pyx_ReleaseBuffer(&self.view)
    9019             :  */
    9020             : 
    9021             :   /* function exit code */
    9022      536853 : }
    9023             : 
    9024             : /* "View.MemoryView":397
    9025             :  *                 PyThread_free_lock(self.lock)
    9026             :  * 
    9027             :  *     cdef char *get_item_pointer(memoryview self, object index) except NULL:             # <<<<<<<<<<<<<<
    9028             :  *         cdef Py_ssize_t dim
    9029             :  *         cdef char *itemp = <char *> self.view.buf
    9030             :  */
    9031             : 
    9032           0 : static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) {
    9033           0 :   Py_ssize_t __pyx_v_dim;
    9034           0 :   char *__pyx_v_itemp;
    9035           0 :   PyObject *__pyx_v_idx = NULL;
    9036           0 :   char *__pyx_r;
    9037             :   __Pyx_RefNannyDeclarations
    9038           0 :   Py_ssize_t __pyx_t_1;
    9039           0 :   PyObject *__pyx_t_2 = NULL;
    9040           0 :   Py_ssize_t __pyx_t_3;
    9041           0 :   PyObject *(*__pyx_t_4)(PyObject *);
    9042           0 :   PyObject *__pyx_t_5 = NULL;
    9043           0 :   Py_ssize_t __pyx_t_6;
    9044           0 :   char *__pyx_t_7;
    9045           0 :   int __pyx_lineno = 0;
    9046           0 :   const char *__pyx_filename = NULL;
    9047           0 :   int __pyx_clineno = 0;
    9048           0 :   __Pyx_RefNannySetupContext("get_item_pointer", 1);
    9049             : 
    9050             :   /* "View.MemoryView":399
    9051             :  *     cdef char *get_item_pointer(memoryview self, object index) except NULL:
    9052             :  *         cdef Py_ssize_t dim
    9053             :  *         cdef char *itemp = <char *> self.view.buf             # <<<<<<<<<<<<<<
    9054             :  * 
    9055             :  *         for dim, idx in enumerate(index):
    9056             :  */
    9057           0 :   __pyx_v_itemp = ((char *)__pyx_v_self->view.buf);
    9058             : 
    9059             :   /* "View.MemoryView":401
    9060             :  *         cdef char *itemp = <char *> self.view.buf
    9061             :  * 
    9062             :  *         for dim, idx in enumerate(index):             # <<<<<<<<<<<<<<
    9063             :  *             itemp = pybuffer_index(&self.view, itemp, idx, dim)
    9064             :  * 
    9065             :  */
    9066           0 :   __pyx_t_1 = 0;
    9067           0 :   if (likely(PyList_CheckExact(__pyx_v_index)) || PyTuple_CheckExact(__pyx_v_index)) {
    9068           0 :     __pyx_t_2 = __pyx_v_index; __Pyx_INCREF(__pyx_t_2);
    9069           0 :     __pyx_t_3 = 0;
    9070           0 :     __pyx_t_4 = NULL;
    9071             :   } else {
    9072           0 :     __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 401, __pyx_L1_error)
    9073           0 :     __Pyx_GOTREF(__pyx_t_2);
    9074           0 :     __pyx_t_4 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 401, __pyx_L1_error)
    9075             :   }
    9076           0 :   for (;;) {
    9077           0 :     if (likely(!__pyx_t_4)) {
    9078           0 :       if (likely(PyList_CheckExact(__pyx_t_2))) {
    9079             :         {
    9080           0 :           Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
    9081             :           #if !CYTHON_ASSUME_SAFE_MACROS
    9082             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 401, __pyx_L1_error)
    9083             :           #endif
    9084           0 :           if (__pyx_t_3 >= __pyx_temp) break;
    9085             :         }
    9086             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    9087           0 :         __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(1, 401, __pyx_L1_error)
    9088             :         #else
    9089             :         __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 401, __pyx_L1_error)
    9090             :         __Pyx_GOTREF(__pyx_t_5);
    9091             :         #endif
    9092             :       } else {
    9093             :         {
    9094           0 :           Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
    9095             :           #if !CYTHON_ASSUME_SAFE_MACROS
    9096             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 401, __pyx_L1_error)
    9097             :           #endif
    9098           0 :           if (__pyx_t_3 >= __pyx_temp) break;
    9099             :         }
    9100             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    9101           0 :         __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(1, 401, __pyx_L1_error)
    9102             :         #else
    9103             :         __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 401, __pyx_L1_error)
    9104             :         __Pyx_GOTREF(__pyx_t_5);
    9105             :         #endif
    9106             :       }
    9107             :     } else {
    9108           0 :       __pyx_t_5 = __pyx_t_4(__pyx_t_2);
    9109           0 :       if (unlikely(!__pyx_t_5)) {
    9110           0 :         PyObject* exc_type = PyErr_Occurred();
    9111           0 :         if (exc_type) {
    9112           0 :           if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
    9113           0 :           else __PYX_ERR(1, 401, __pyx_L1_error)
    9114             :         }
    9115             :         break;
    9116             :       }
    9117           0 :       __Pyx_GOTREF(__pyx_t_5);
    9118             :     }
    9119           0 :     __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5);
    9120           0 :     __pyx_t_5 = 0;
    9121           0 :     __pyx_v_dim = __pyx_t_1;
    9122           0 :     __pyx_t_1 = (__pyx_t_1 + 1);
    9123             : 
    9124             :     /* "View.MemoryView":402
    9125             :  * 
    9126             :  *         for dim, idx in enumerate(index):
    9127             :  *             itemp = pybuffer_index(&self.view, itemp, idx, dim)             # <<<<<<<<<<<<<<
    9128             :  * 
    9129             :  *         return itemp
    9130             :  */
    9131           0 :     __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 402, __pyx_L1_error)
    9132           0 :     __pyx_t_7 = __pyx_pybuffer_index((&__pyx_v_self->view), __pyx_v_itemp, __pyx_t_6, __pyx_v_dim); if (unlikely(__pyx_t_7 == ((char *)NULL))) __PYX_ERR(1, 402, __pyx_L1_error)
    9133             :     __pyx_v_itemp = __pyx_t_7;
    9134             : 
    9135             :     /* "View.MemoryView":401
    9136             :  *         cdef char *itemp = <char *> self.view.buf
    9137             :  * 
    9138             :  *         for dim, idx in enumerate(index):             # <<<<<<<<<<<<<<
    9139             :  *             itemp = pybuffer_index(&self.view, itemp, idx, dim)
    9140             :  * 
    9141             :  */
    9142             :   }
    9143           0 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    9144             : 
    9145             :   /* "View.MemoryView":404
    9146             :  *             itemp = pybuffer_index(&self.view, itemp, idx, dim)
    9147             :  * 
    9148             :  *         return itemp             # <<<<<<<<<<<<<<
    9149             :  * 
    9150             :  * 
    9151             :  */
    9152           0 :   __pyx_r = __pyx_v_itemp;
    9153           0 :   goto __pyx_L0;
    9154             : 
    9155             :   /* "View.MemoryView":397
    9156             :  *                 PyThread_free_lock(self.lock)
    9157             :  * 
    9158             :  *     cdef char *get_item_pointer(memoryview self, object index) except NULL:             # <<<<<<<<<<<<<<
    9159             :  *         cdef Py_ssize_t dim
    9160             :  *         cdef char *itemp = <char *> self.view.buf
    9161             :  */
    9162             : 
    9163             :   /* function exit code */
    9164           0 :   __pyx_L1_error:;
    9165           0 :   __Pyx_XDECREF(__pyx_t_2);
    9166           0 :   __Pyx_XDECREF(__pyx_t_5);
    9167           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.get_item_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename);
    9168           0 :   __pyx_r = NULL;
    9169           0 :   __pyx_L0:;
    9170           0 :   __Pyx_XDECREF(__pyx_v_idx);
    9171           0 :   __Pyx_RefNannyFinishContext();
    9172           0 :   return __pyx_r;
    9173             : }
    9174             : 
    9175             : /* "View.MemoryView":407
    9176             :  * 
    9177             :  * 
    9178             :  *     def __getitem__(memoryview self, object index):             # <<<<<<<<<<<<<<
    9179             :  *         if index is Ellipsis:
    9180             :  *             return self
    9181             :  */
    9182             : 
    9183             : /* Python wrapper */
    9184             : static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/
    9185           0 : static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) {
    9186           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    9187           0 :   PyObject *__pyx_r = 0;
    9188             :   __Pyx_RefNannyDeclarations
    9189           0 :   __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
    9190           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
    9191           0 :   __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index));
    9192             : 
    9193             :   /* function exit code */
    9194           0 :   __Pyx_RefNannyFinishContext();
    9195           0 :   return __pyx_r;
    9196             : }
    9197             : 
    9198           0 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) {
    9199           0 :   PyObject *__pyx_v_have_slices = NULL;
    9200           0 :   PyObject *__pyx_v_indices = NULL;
    9201           0 :   char *__pyx_v_itemp;
    9202           0 :   PyObject *__pyx_r = NULL;
    9203             :   __Pyx_RefNannyDeclarations
    9204           0 :   int __pyx_t_1;
    9205           0 :   PyObject *__pyx_t_2 = NULL;
    9206           0 :   PyObject *__pyx_t_3 = NULL;
    9207           0 :   PyObject *__pyx_t_4 = NULL;
    9208           0 :   char *__pyx_t_5;
    9209           0 :   int __pyx_lineno = 0;
    9210           0 :   const char *__pyx_filename = NULL;
    9211           0 :   int __pyx_clineno = 0;
    9212           0 :   __Pyx_RefNannySetupContext("__getitem__", 1);
    9213             : 
    9214             :   /* "View.MemoryView":408
    9215             :  * 
    9216             :  *     def __getitem__(memoryview self, object index):
    9217             :  *         if index is Ellipsis:             # <<<<<<<<<<<<<<
    9218             :  *             return self
    9219             :  * 
    9220             :  */
    9221           0 :   __pyx_t_1 = (__pyx_v_index == __pyx_builtin_Ellipsis);
    9222           0 :   if (__pyx_t_1) {
    9223             : 
    9224             :     /* "View.MemoryView":409
    9225             :  *     def __getitem__(memoryview self, object index):
    9226             :  *         if index is Ellipsis:
    9227             :  *             return self             # <<<<<<<<<<<<<<
    9228             :  * 
    9229             :  *         have_slices, indices = _unellipsify(index, self.view.ndim)
    9230             :  */
    9231           0 :     __Pyx_XDECREF(__pyx_r);
    9232           0 :     __Pyx_INCREF((PyObject *)__pyx_v_self);
    9233           0 :     __pyx_r = ((PyObject *)__pyx_v_self);
    9234           0 :     goto __pyx_L0;
    9235             : 
    9236             :     /* "View.MemoryView":408
    9237             :  * 
    9238             :  *     def __getitem__(memoryview self, object index):
    9239             :  *         if index is Ellipsis:             # <<<<<<<<<<<<<<
    9240             :  *             return self
    9241             :  * 
    9242             :  */
    9243             :   }
    9244             : 
    9245             :   /* "View.MemoryView":411
    9246             :  *             return self
    9247             :  * 
    9248             :  *         have_slices, indices = _unellipsify(index, self.view.ndim)             # <<<<<<<<<<<<<<
    9249             :  * 
    9250             :  *         cdef char *itemp
    9251             :  */
    9252           0 :   __pyx_t_2 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 411, __pyx_L1_error)
    9253           0 :   __Pyx_GOTREF(__pyx_t_2);
    9254           0 :   if (likely(__pyx_t_2 != Py_None)) {
    9255           0 :     PyObject* sequence = __pyx_t_2;
    9256           0 :     Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    9257           0 :     if (unlikely(size != 2)) {
    9258           0 :       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
    9259           0 :       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
    9260           0 :       __PYX_ERR(1, 411, __pyx_L1_error)
    9261             :     }
    9262             :     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    9263           0 :     __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
    9264           0 :     __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    9265           0 :     __Pyx_INCREF(__pyx_t_3);
    9266           0 :     __Pyx_INCREF(__pyx_t_4);
    9267             :     #else
    9268             :     __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 411, __pyx_L1_error)
    9269             :     __Pyx_GOTREF(__pyx_t_3);
    9270             :     __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 411, __pyx_L1_error)
    9271             :     __Pyx_GOTREF(__pyx_t_4);
    9272             :     #endif
    9273           0 :     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    9274             :   } else {
    9275           0 :     __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 411, __pyx_L1_error)
    9276             :   }
    9277           0 :   __pyx_v_have_slices = __pyx_t_3;
    9278           0 :   __pyx_t_3 = 0;
    9279           0 :   __pyx_v_indices = __pyx_t_4;
    9280           0 :   __pyx_t_4 = 0;
    9281             : 
    9282             :   /* "View.MemoryView":414
    9283             :  * 
    9284             :  *         cdef char *itemp
    9285             :  *         if have_slices:             # <<<<<<<<<<<<<<
    9286             :  *             return memview_slice(self, indices)
    9287             :  *         else:
    9288             :  */
    9289           0 :   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 414, __pyx_L1_error)
    9290           0 :   if (__pyx_t_1) {
    9291             : 
    9292             :     /* "View.MemoryView":415
    9293             :  *         cdef char *itemp
    9294             :  *         if have_slices:
    9295             :  *             return memview_slice(self, indices)             # <<<<<<<<<<<<<<
    9296             :  *         else:
    9297             :  *             itemp = self.get_item_pointer(indices)
    9298             :  */
    9299           0 :     __Pyx_XDECREF(__pyx_r);
    9300           0 :     __pyx_t_2 = ((PyObject *)__pyx_memview_slice(__pyx_v_self, __pyx_v_indices)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 415, __pyx_L1_error)
    9301           0 :     __Pyx_GOTREF(__pyx_t_2);
    9302           0 :     __pyx_r = __pyx_t_2;
    9303           0 :     __pyx_t_2 = 0;
    9304           0 :     goto __pyx_L0;
    9305             : 
    9306             :     /* "View.MemoryView":414
    9307             :  * 
    9308             :  *         cdef char *itemp
    9309             :  *         if have_slices:             # <<<<<<<<<<<<<<
    9310             :  *             return memview_slice(self, indices)
    9311             :  *         else:
    9312             :  */
    9313             :   }
    9314             : 
    9315             :   /* "View.MemoryView":417
    9316             :  *             return memview_slice(self, indices)
    9317             :  *         else:
    9318             :  *             itemp = self.get_item_pointer(indices)             # <<<<<<<<<<<<<<
    9319             :  *             return self.convert_item_to_object(itemp)
    9320             :  * 
    9321             :  */
    9322             :   /*else*/ {
    9323           0 :     __pyx_t_5 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_indices); if (unlikely(__pyx_t_5 == ((char *)NULL))) __PYX_ERR(1, 417, __pyx_L1_error)
    9324           0 :     __pyx_v_itemp = __pyx_t_5;
    9325             : 
    9326             :     /* "View.MemoryView":418
    9327             :  *         else:
    9328             :  *             itemp = self.get_item_pointer(indices)
    9329             :  *             return self.convert_item_to_object(itemp)             # <<<<<<<<<<<<<<
    9330             :  * 
    9331             :  *     def __setitem__(memoryview self, object index, object value):
    9332             :  */
    9333           0 :     __Pyx_XDECREF(__pyx_r);
    9334           0 :     __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->convert_item_to_object(__pyx_v_self, __pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 418, __pyx_L1_error)
    9335           0 :     __Pyx_GOTREF(__pyx_t_2);
    9336           0 :     __pyx_r = __pyx_t_2;
    9337           0 :     __pyx_t_2 = 0;
    9338           0 :     goto __pyx_L0;
    9339             :   }
    9340             : 
    9341             :   /* "View.MemoryView":407
    9342             :  * 
    9343             :  * 
    9344             :  *     def __getitem__(memoryview self, object index):             # <<<<<<<<<<<<<<
    9345             :  *         if index is Ellipsis:
    9346             :  *             return self
    9347             :  */
    9348             : 
    9349             :   /* function exit code */
    9350           0 :   __pyx_L1_error:;
    9351           0 :   __Pyx_XDECREF(__pyx_t_2);
    9352           0 :   __Pyx_XDECREF(__pyx_t_3);
    9353           0 :   __Pyx_XDECREF(__pyx_t_4);
    9354           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    9355           0 :   __pyx_r = NULL;
    9356           0 :   __pyx_L0:;
    9357           0 :   __Pyx_XDECREF(__pyx_v_have_slices);
    9358           0 :   __Pyx_XDECREF(__pyx_v_indices);
    9359           0 :   __Pyx_XGIVEREF(__pyx_r);
    9360           0 :   __Pyx_RefNannyFinishContext();
    9361           0 :   return __pyx_r;
    9362             : }
    9363             : 
    9364             : /* "View.MemoryView":420
    9365             :  *             return self.convert_item_to_object(itemp)
    9366             :  * 
    9367             :  *     def __setitem__(memoryview self, object index, object value):             # <<<<<<<<<<<<<<
    9368             :  *         if self.view.readonly:
    9369             :  *             raise TypeError, "Cannot assign to read-only memoryview"
    9370             :  */
    9371             : 
    9372             : /* Python wrapper */
    9373             : static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/
    9374           0 : static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) {
    9375           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
    9376           0 :   int __pyx_r;
    9377             :   __Pyx_RefNannyDeclarations
    9378           0 :   __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0);
    9379           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
    9380           0 :   __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index), ((PyObject *)__pyx_v_value));
    9381             : 
    9382             :   /* function exit code */
    9383           0 :   __Pyx_RefNannyFinishContext();
    9384           0 :   return __pyx_r;
    9385             : }
    9386             : 
    9387           0 : static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) {
    9388           0 :   PyObject *__pyx_v_have_slices = NULL;
    9389           0 :   PyObject *__pyx_v_obj = NULL;
    9390           0 :   int __pyx_r;
    9391             :   __Pyx_RefNannyDeclarations
    9392           0 :   PyObject *__pyx_t_1 = NULL;
    9393           0 :   PyObject *__pyx_t_2 = NULL;
    9394           0 :   PyObject *__pyx_t_3 = NULL;
    9395           0 :   int __pyx_t_4;
    9396           0 :   int __pyx_lineno = 0;
    9397           0 :   const char *__pyx_filename = NULL;
    9398           0 :   int __pyx_clineno = 0;
    9399           0 :   __Pyx_RefNannySetupContext("__setitem__", 0);
    9400           0 :   __Pyx_INCREF(__pyx_v_index);
    9401             : 
    9402             :   /* "View.MemoryView":421
    9403             :  * 
    9404             :  *     def __setitem__(memoryview self, object index, object value):
    9405             :  *         if self.view.readonly:             # <<<<<<<<<<<<<<
    9406             :  *             raise TypeError, "Cannot assign to read-only memoryview"
    9407             :  * 
    9408             :  */
    9409           0 :   if (unlikely(__pyx_v_self->view.readonly)) {
    9410             : 
    9411             :     /* "View.MemoryView":422
    9412             :  *     def __setitem__(memoryview self, object index, object value):
    9413             :  *         if self.view.readonly:
    9414             :  *             raise TypeError, "Cannot assign to read-only memoryview"             # <<<<<<<<<<<<<<
    9415             :  * 
    9416             :  *         have_slices, index = _unellipsify(index, self.view.ndim)
    9417             :  */
    9418           0 :     __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_Cannot_assign_to_read_only_memor, 0, 0);
    9419           0 :     __PYX_ERR(1, 422, __pyx_L1_error)
    9420             : 
    9421             :     /* "View.MemoryView":421
    9422             :  * 
    9423             :  *     def __setitem__(memoryview self, object index, object value):
    9424             :  *         if self.view.readonly:             # <<<<<<<<<<<<<<
    9425             :  *             raise TypeError, "Cannot assign to read-only memoryview"
    9426             :  * 
    9427             :  */
    9428             :   }
    9429             : 
    9430             :   /* "View.MemoryView":424
    9431             :  *             raise TypeError, "Cannot assign to read-only memoryview"
    9432             :  * 
    9433             :  *         have_slices, index = _unellipsify(index, self.view.ndim)             # <<<<<<<<<<<<<<
    9434             :  * 
    9435             :  *         if have_slices:
    9436             :  */
    9437           0 :   __pyx_t_1 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 424, __pyx_L1_error)
    9438           0 :   __Pyx_GOTREF(__pyx_t_1);
    9439           0 :   if (likely(__pyx_t_1 != Py_None)) {
    9440           0 :     PyObject* sequence = __pyx_t_1;
    9441           0 :     Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    9442           0 :     if (unlikely(size != 2)) {
    9443           0 :       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
    9444           0 :       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
    9445           0 :       __PYX_ERR(1, 424, __pyx_L1_error)
    9446             :     }
    9447             :     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    9448           0 :     __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
    9449           0 :     __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    9450           0 :     __Pyx_INCREF(__pyx_t_2);
    9451           0 :     __Pyx_INCREF(__pyx_t_3);
    9452             :     #else
    9453             :     __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 424, __pyx_L1_error)
    9454             :     __Pyx_GOTREF(__pyx_t_2);
    9455             :     __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 424, __pyx_L1_error)
    9456             :     __Pyx_GOTREF(__pyx_t_3);
    9457             :     #endif
    9458           0 :     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    9459             :   } else {
    9460           0 :     __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 424, __pyx_L1_error)
    9461             :   }
    9462           0 :   __pyx_v_have_slices = __pyx_t_2;
    9463           0 :   __pyx_t_2 = 0;
    9464           0 :   __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_3);
    9465           0 :   __pyx_t_3 = 0;
    9466             : 
    9467             :   /* "View.MemoryView":426
    9468             :  *         have_slices, index = _unellipsify(index, self.view.ndim)
    9469             :  * 
    9470             :  *         if have_slices:             # <<<<<<<<<<<<<<
    9471             :  *             obj = self.is_slice(value)
    9472             :  *             if obj is not None:
    9473             :  */
    9474           0 :   __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(1, 426, __pyx_L1_error)
    9475           0 :   if (__pyx_t_4) {
    9476             : 
    9477             :     /* "View.MemoryView":427
    9478             :  * 
    9479             :  *         if have_slices:
    9480             :  *             obj = self.is_slice(value)             # <<<<<<<<<<<<<<
    9481             :  *             if obj is not None:
    9482             :  *                 self.setitem_slice_assignment(self[index], obj)
    9483             :  */
    9484           0 :     __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->is_slice(__pyx_v_self, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 427, __pyx_L1_error)
    9485           0 :     __Pyx_GOTREF(__pyx_t_1);
    9486           0 :     __pyx_v_obj = __pyx_t_1;
    9487           0 :     __pyx_t_1 = 0;
    9488             : 
    9489             :     /* "View.MemoryView":428
    9490             :  *         if have_slices:
    9491             :  *             obj = self.is_slice(value)
    9492             :  *             if obj is not None:             # <<<<<<<<<<<<<<
    9493             :  *                 self.setitem_slice_assignment(self[index], obj)
    9494             :  *             else:
    9495             :  */
    9496           0 :     __pyx_t_4 = (__pyx_v_obj != Py_None);
    9497           0 :     if (__pyx_t_4) {
    9498             : 
    9499             :       /* "View.MemoryView":429
    9500             :  *             obj = self.is_slice(value)
    9501             :  *             if obj is not None:
    9502             :  *                 self.setitem_slice_assignment(self[index], obj)             # <<<<<<<<<<<<<<
    9503             :  *             else:
    9504             :  *                 self.setitem_slice_assign_scalar(self[index], value)
    9505             :  */
    9506           0 :       __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 429, __pyx_L1_error)
    9507           0 :       __Pyx_GOTREF(__pyx_t_1);
    9508           0 :       __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assignment(__pyx_v_self, __pyx_t_1, __pyx_v_obj); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 429, __pyx_L1_error)
    9509           0 :       __Pyx_GOTREF(__pyx_t_3);
    9510           0 :       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    9511           0 :       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    9512             : 
    9513             :       /* "View.MemoryView":428
    9514             :  *         if have_slices:
    9515             :  *             obj = self.is_slice(value)
    9516             :  *             if obj is not None:             # <<<<<<<<<<<<<<
    9517             :  *                 self.setitem_slice_assignment(self[index], obj)
    9518             :  *             else:
    9519             :  */
    9520           0 :       goto __pyx_L5;
    9521             :     }
    9522             : 
    9523             :     /* "View.MemoryView":431
    9524             :  *                 self.setitem_slice_assignment(self[index], obj)
    9525             :  *             else:
    9526             :  *                 self.setitem_slice_assign_scalar(self[index], value)             # <<<<<<<<<<<<<<
    9527             :  *         else:
    9528             :  *             self.setitem_indexed(index, value)
    9529             :  */
    9530             :     /*else*/ {
    9531           0 :       __pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 431, __pyx_L1_error)
    9532           0 :       __Pyx_GOTREF(__pyx_t_3);
    9533           0 :       if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(1, 431, __pyx_L1_error)
    9534           0 :       __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assign_scalar(__pyx_v_self, ((struct __pyx_memoryview_obj *)__pyx_t_3), __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 431, __pyx_L1_error)
    9535           0 :       __Pyx_GOTREF(__pyx_t_1);
    9536           0 :       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    9537           0 :       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    9538             :     }
    9539           0 :     __pyx_L5:;
    9540             : 
    9541             :     /* "View.MemoryView":426
    9542             :  *         have_slices, index = _unellipsify(index, self.view.ndim)
    9543             :  * 
    9544             :  *         if have_slices:             # <<<<<<<<<<<<<<
    9545             :  *             obj = self.is_slice(value)
    9546             :  *             if obj is not None:
    9547             :  */
    9548           0 :     goto __pyx_L4;
    9549             :   }
    9550             : 
    9551             :   /* "View.MemoryView":433
    9552             :  *                 self.setitem_slice_assign_scalar(self[index], value)
    9553             :  *         else:
    9554             :  *             self.setitem_indexed(index, value)             # <<<<<<<<<<<<<<
    9555             :  * 
    9556             :  *     cdef is_slice(self, obj):
    9557             :  */
    9558             :   /*else*/ {
    9559           0 :     __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_indexed(__pyx_v_self, __pyx_v_index, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 433, __pyx_L1_error)
    9560           0 :     __Pyx_GOTREF(__pyx_t_1);
    9561           0 :     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    9562             :   }
    9563           0 :   __pyx_L4:;
    9564             : 
    9565             :   /* "View.MemoryView":420
    9566             :  *             return self.convert_item_to_object(itemp)
    9567             :  * 
    9568             :  *     def __setitem__(memoryview self, object index, object value):             # <<<<<<<<<<<<<<
    9569             :  *         if self.view.readonly:
    9570             :  *             raise TypeError, "Cannot assign to read-only memoryview"
    9571             :  */
    9572             : 
    9573             :   /* function exit code */
    9574           0 :   __pyx_r = 0;
    9575           0 :   goto __pyx_L0;
    9576           0 :   __pyx_L1_error:;
    9577           0 :   __Pyx_XDECREF(__pyx_t_1);
    9578           0 :   __Pyx_XDECREF(__pyx_t_2);
    9579           0 :   __Pyx_XDECREF(__pyx_t_3);
    9580           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
    9581           0 :   __pyx_r = -1;
    9582           0 :   __pyx_L0:;
    9583           0 :   __Pyx_XDECREF(__pyx_v_have_slices);
    9584           0 :   __Pyx_XDECREF(__pyx_v_obj);
    9585           0 :   __Pyx_XDECREF(__pyx_v_index);
    9586           0 :   __Pyx_RefNannyFinishContext();
    9587           0 :   return __pyx_r;
    9588             : }
    9589             : 
    9590             : /* "View.MemoryView":435
    9591             :  *             self.setitem_indexed(index, value)
    9592             :  * 
    9593             :  *     cdef is_slice(self, obj):             # <<<<<<<<<<<<<<
    9594             :  *         if not isinstance(obj, memoryview):
    9595             :  *             try:
    9596             :  */
    9597             : 
    9598           0 : static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj) {
    9599           0 :   PyObject *__pyx_r = NULL;
    9600             :   __Pyx_RefNannyDeclarations
    9601           0 :   int __pyx_t_1;
    9602           0 :   int __pyx_t_2;
    9603           0 :   PyObject *__pyx_t_3 = NULL;
    9604           0 :   PyObject *__pyx_t_4 = NULL;
    9605           0 :   PyObject *__pyx_t_5 = NULL;
    9606           0 :   PyObject *__pyx_t_6 = NULL;
    9607           0 :   PyObject *__pyx_t_7 = NULL;
    9608           0 :   PyObject *__pyx_t_8 = NULL;
    9609           0 :   int __pyx_t_9;
    9610           0 :   int __pyx_lineno = 0;
    9611           0 :   const char *__pyx_filename = NULL;
    9612           0 :   int __pyx_clineno = 0;
    9613           0 :   __Pyx_RefNannySetupContext("is_slice", 0);
    9614           0 :   __Pyx_INCREF(__pyx_v_obj);
    9615             : 
    9616             :   /* "View.MemoryView":436
    9617             :  * 
    9618             :  *     cdef is_slice(self, obj):
    9619             :  *         if not isinstance(obj, memoryview):             # <<<<<<<<<<<<<<
    9620             :  *             try:
    9621             :  *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
    9622             :  */
    9623           0 :   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_memoryview_type); 
    9624           0 :   __pyx_t_2 = (!__pyx_t_1);
    9625           0 :   if (__pyx_t_2) {
    9626             : 
    9627             :     /* "View.MemoryView":437
    9628             :  *     cdef is_slice(self, obj):
    9629             :  *         if not isinstance(obj, memoryview):
    9630             :  *             try:             # <<<<<<<<<<<<<<
    9631             :  *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
    9632             :  *                                  self.dtype_is_object)
    9633             :  */
    9634             :     {
    9635           0 :       __Pyx_PyThreadState_declare
    9636           0 :       __Pyx_PyThreadState_assign
    9637           0 :       __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    9638           0 :       __Pyx_XGOTREF(__pyx_t_3);
    9639           0 :       __Pyx_XGOTREF(__pyx_t_4);
    9640           0 :       __Pyx_XGOTREF(__pyx_t_5);
    9641             :       /*try:*/ {
    9642             : 
    9643             :         /* "View.MemoryView":438
    9644             :  *         if not isinstance(obj, memoryview):
    9645             :  *             try:
    9646             :  *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,             # <<<<<<<<<<<<<<
    9647             :  *                                  self.dtype_is_object)
    9648             :  *             except TypeError:
    9649             :  */
    9650           0 :         __pyx_t_6 = __Pyx_PyInt_From_int(((__pyx_v_self->flags & (~PyBUF_WRITABLE)) | PyBUF_ANY_CONTIGUOUS)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 438, __pyx_L4_error)
    9651           0 :         __Pyx_GOTREF(__pyx_t_6);
    9652             : 
    9653             :         /* "View.MemoryView":439
    9654             :  *             try:
    9655             :  *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
    9656             :  *                                  self.dtype_is_object)             # <<<<<<<<<<<<<<
    9657             :  *             except TypeError:
    9658             :  *                 return None
    9659             :  */
    9660           0 :         __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 439, __pyx_L4_error)
    9661           0 :         __Pyx_GOTREF(__pyx_t_7);
    9662             : 
    9663             :         /* "View.MemoryView":438
    9664             :  *         if not isinstance(obj, memoryview):
    9665             :  *             try:
    9666             :  *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,             # <<<<<<<<<<<<<<
    9667             :  *                                  self.dtype_is_object)
    9668             :  *             except TypeError:
    9669             :  */
    9670           0 :         __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 438, __pyx_L4_error)
    9671           0 :         __Pyx_GOTREF(__pyx_t_8);
    9672           0 :         __Pyx_INCREF(__pyx_v_obj);
    9673           0 :         __Pyx_GIVEREF(__pyx_v_obj);
    9674           0 :         if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_obj)) __PYX_ERR(1, 438, __pyx_L4_error);
    9675           0 :         __Pyx_GIVEREF(__pyx_t_6);
    9676           0 :         if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6)) __PYX_ERR(1, 438, __pyx_L4_error);
    9677           0 :         __Pyx_GIVEREF(__pyx_t_7);
    9678           0 :         if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7)) __PYX_ERR(1, 438, __pyx_L4_error);
    9679           0 :         __pyx_t_6 = 0;
    9680           0 :         __pyx_t_7 = 0;
    9681           0 :         __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 438, __pyx_L4_error)
    9682           0 :         __Pyx_GOTREF(__pyx_t_7);
    9683           0 :         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    9684           0 :         __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_7);
    9685           0 :         __pyx_t_7 = 0;
    9686             : 
    9687             :         /* "View.MemoryView":437
    9688             :  *     cdef is_slice(self, obj):
    9689             :  *         if not isinstance(obj, memoryview):
    9690             :  *             try:             # <<<<<<<<<<<<<<
    9691             :  *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
    9692             :  *                                  self.dtype_is_object)
    9693             :  */
    9694             :       }
    9695           0 :       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    9696           0 :       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    9697           0 :       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    9698           0 :       goto __pyx_L9_try_end;
    9699           0 :       __pyx_L4_error:;
    9700           0 :       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    9701           0 :       __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    9702           0 :       __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    9703             : 
    9704             :       /* "View.MemoryView":440
    9705             :  *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
    9706             :  *                                  self.dtype_is_object)
    9707             :  *             except TypeError:             # <<<<<<<<<<<<<<
    9708             :  *                 return None
    9709             :  * 
    9710             :  */
    9711           0 :       __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError);
    9712           0 :       if (__pyx_t_9) {
    9713           0 :         __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
    9714           0 :         if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(1, 440, __pyx_L6_except_error)
    9715           0 :         __Pyx_XGOTREF(__pyx_t_7);
    9716           0 :         __Pyx_XGOTREF(__pyx_t_8);
    9717           0 :         __Pyx_XGOTREF(__pyx_t_6);
    9718             : 
    9719             :         /* "View.MemoryView":441
    9720             :  *                                  self.dtype_is_object)
    9721             :  *             except TypeError:
    9722             :  *                 return None             # <<<<<<<<<<<<<<
    9723             :  * 
    9724             :  *         return obj
    9725             :  */
    9726           0 :         __Pyx_XDECREF(__pyx_r);
    9727           0 :         __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    9728           0 :         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    9729           0 :         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    9730           0 :         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    9731           0 :         goto __pyx_L7_except_return;
    9732             :       }
    9733           0 :       goto __pyx_L6_except_error;
    9734             : 
    9735             :       /* "View.MemoryView":437
    9736             :  *     cdef is_slice(self, obj):
    9737             :  *         if not isinstance(obj, memoryview):
    9738             :  *             try:             # <<<<<<<<<<<<<<
    9739             :  *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
    9740             :  *                                  self.dtype_is_object)
    9741             :  */
    9742           0 :       __pyx_L6_except_error:;
    9743           0 :       __Pyx_XGIVEREF(__pyx_t_3);
    9744           0 :       __Pyx_XGIVEREF(__pyx_t_4);
    9745           0 :       __Pyx_XGIVEREF(__pyx_t_5);
    9746           0 :       __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    9747           0 :       goto __pyx_L1_error;
    9748           0 :       __pyx_L7_except_return:;
    9749           0 :       __Pyx_XGIVEREF(__pyx_t_3);
    9750           0 :       __Pyx_XGIVEREF(__pyx_t_4);
    9751           0 :       __Pyx_XGIVEREF(__pyx_t_5);
    9752           0 :       __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    9753           0 :       goto __pyx_L0;
    9754           0 :       __pyx_L9_try_end:;
    9755             :     }
    9756             : 
    9757             :     /* "View.MemoryView":436
    9758             :  * 
    9759             :  *     cdef is_slice(self, obj):
    9760             :  *         if not isinstance(obj, memoryview):             # <<<<<<<<<<<<<<
    9761             :  *             try:
    9762             :  *                 obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
    9763             :  */
    9764             :   }
    9765             : 
    9766             :   /* "View.MemoryView":443
    9767             :  *                 return None
    9768             :  * 
    9769             :  *         return obj             # <<<<<<<<<<<<<<
    9770             :  * 
    9771             :  *     cdef setitem_slice_assignment(self, dst, src):
    9772             :  */
    9773           0 :   __Pyx_XDECREF(__pyx_r);
    9774           0 :   __Pyx_INCREF(__pyx_v_obj);
    9775           0 :   __pyx_r = __pyx_v_obj;
    9776           0 :   goto __pyx_L0;
    9777             : 
    9778             :   /* "View.MemoryView":435
    9779             :  *             self.setitem_indexed(index, value)
    9780             :  * 
    9781             :  *     cdef is_slice(self, obj):             # <<<<<<<<<<<<<<
    9782             :  *         if not isinstance(obj, memoryview):
    9783             :  *             try:
    9784             :  */
    9785             : 
    9786             :   /* function exit code */
    9787           0 :   __pyx_L1_error:;
    9788           0 :   __Pyx_XDECREF(__pyx_t_6);
    9789           0 :   __Pyx_XDECREF(__pyx_t_7);
    9790           0 :   __Pyx_XDECREF(__pyx_t_8);
    9791           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
    9792           0 :   __pyx_r = 0;
    9793           0 :   __pyx_L0:;
    9794           0 :   __Pyx_XDECREF(__pyx_v_obj);
    9795           0 :   __Pyx_XGIVEREF(__pyx_r);
    9796           0 :   __Pyx_RefNannyFinishContext();
    9797           0 :   return __pyx_r;
    9798             : }
    9799             : 
    9800             : /* "View.MemoryView":445
    9801             :  *         return obj
    9802             :  * 
    9803             :  *     cdef setitem_slice_assignment(self, dst, src):             # <<<<<<<<<<<<<<
    9804             :  *         cdef __Pyx_memviewslice dst_slice
    9805             :  *         cdef __Pyx_memviewslice src_slice
    9806             :  */
    9807             : 
    9808           0 : static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src) {
    9809           0 :   __Pyx_memviewslice __pyx_v_dst_slice;
    9810           0 :   __Pyx_memviewslice __pyx_v_src_slice;
    9811           0 :   __Pyx_memviewslice __pyx_v_msrc;
    9812           0 :   __Pyx_memviewslice __pyx_v_mdst;
    9813           0 :   PyObject *__pyx_r = NULL;
    9814             :   __Pyx_RefNannyDeclarations
    9815           0 :   __Pyx_memviewslice *__pyx_t_1;
    9816           0 :   PyObject *__pyx_t_2 = NULL;
    9817           0 :   int __pyx_t_3;
    9818           0 :   int __pyx_t_4;
    9819           0 :   int __pyx_t_5;
    9820           0 :   int __pyx_lineno = 0;
    9821           0 :   const char *__pyx_filename = NULL;
    9822           0 :   int __pyx_clineno = 0;
    9823           0 :   __Pyx_RefNannySetupContext("setitem_slice_assignment", 1);
    9824             : 
    9825             :   /* "View.MemoryView":448
    9826             :  *         cdef __Pyx_memviewslice dst_slice
    9827             :  *         cdef __Pyx_memviewslice src_slice
    9828             :  *         cdef __Pyx_memviewslice msrc = get_slice_from_memview(src, &src_slice)[0]             # <<<<<<<<<<<<<<
    9829             :  *         cdef __Pyx_memviewslice mdst = get_slice_from_memview(dst, &dst_slice)[0]
    9830             :  * 
    9831             :  */
    9832           0 :   if (!(likely(((__pyx_v_src) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_src, __pyx_memoryview_type))))) __PYX_ERR(1, 448, __pyx_L1_error)
    9833           0 :   __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_src), (&__pyx_v_src_slice)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(1, 448, __pyx_L1_error)
    9834           0 :   __pyx_v_msrc = (__pyx_t_1[0]);
    9835             : 
    9836             :   /* "View.MemoryView":449
    9837             :  *         cdef __Pyx_memviewslice src_slice
    9838             :  *         cdef __Pyx_memviewslice msrc = get_slice_from_memview(src, &src_slice)[0]
    9839             :  *         cdef __Pyx_memviewslice mdst = get_slice_from_memview(dst, &dst_slice)[0]             # <<<<<<<<<<<<<<
    9840             :  * 
    9841             :  *         memoryview_copy_contents(msrc, mdst, src.ndim, dst.ndim, self.dtype_is_object)
    9842             :  */
    9843           0 :   if (!(likely(((__pyx_v_dst) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_dst, __pyx_memoryview_type))))) __PYX_ERR(1, 449, __pyx_L1_error)
    9844           0 :   __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_dst), (&__pyx_v_dst_slice)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(1, 449, __pyx_L1_error)
    9845           0 :   __pyx_v_mdst = (__pyx_t_1[0]);
    9846             : 
    9847             :   /* "View.MemoryView":451
    9848             :  *         cdef __Pyx_memviewslice mdst = get_slice_from_memview(dst, &dst_slice)[0]
    9849             :  * 
    9850             :  *         memoryview_copy_contents(msrc, mdst, src.ndim, dst.ndim, self.dtype_is_object)             # <<<<<<<<<<<<<<
    9851             :  * 
    9852             :  *     cdef setitem_slice_assign_scalar(self, memoryview dst, value):
    9853             :  */
    9854           0 :   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_src, __pyx_n_s_ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 451, __pyx_L1_error)
    9855           0 :   __Pyx_GOTREF(__pyx_t_2);
    9856           0 :   __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 451, __pyx_L1_error)
    9857           0 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    9858           0 :   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_dst, __pyx_n_s_ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 451, __pyx_L1_error)
    9859           0 :   __Pyx_GOTREF(__pyx_t_2);
    9860           0 :   __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 451, __pyx_L1_error)
    9861           0 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    9862           0 :   __pyx_t_5 = __pyx_memoryview_copy_contents(__pyx_v_msrc, __pyx_v_mdst, __pyx_t_3, __pyx_t_4, __pyx_v_self->dtype_is_object); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 451, __pyx_L1_error)
    9863             : 
    9864             :   /* "View.MemoryView":445
    9865             :  *         return obj
    9866             :  * 
    9867             :  *     cdef setitem_slice_assignment(self, dst, src):             # <<<<<<<<<<<<<<
    9868             :  *         cdef __Pyx_memviewslice dst_slice
    9869             :  *         cdef __Pyx_memviewslice src_slice
    9870             :  */
    9871             : 
    9872             :   /* function exit code */
    9873           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    9874           0 :   goto __pyx_L0;
    9875           0 :   __pyx_L1_error:;
    9876           0 :   __Pyx_XDECREF(__pyx_t_2);
    9877           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assignment", __pyx_clineno, __pyx_lineno, __pyx_filename);
    9878           0 :   __pyx_r = 0;
    9879           0 :   __pyx_L0:;
    9880           0 :   __Pyx_XGIVEREF(__pyx_r);
    9881           0 :   __Pyx_RefNannyFinishContext();
    9882           0 :   return __pyx_r;
    9883             : }
    9884             : 
    9885             : /* "View.MemoryView":453
    9886             :  *         memoryview_copy_contents(msrc, mdst, src.ndim, dst.ndim, self.dtype_is_object)
    9887             :  * 
    9888             :  *     cdef setitem_slice_assign_scalar(self, memoryview dst, value):             # <<<<<<<<<<<<<<
    9889             :  *         cdef int array[128]
    9890             :  *         cdef void *tmp = NULL
    9891             :  */
    9892             : 
    9893           0 : static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value) {
    9894           0 :   int __pyx_v_array[0x80];
    9895           0 :   void *__pyx_v_tmp;
    9896           0 :   void *__pyx_v_item;
    9897           0 :   __Pyx_memviewslice *__pyx_v_dst_slice;
    9898           0 :   __Pyx_memviewslice __pyx_v_tmp_slice;
    9899           0 :   PyObject *__pyx_r = NULL;
    9900             :   __Pyx_RefNannyDeclarations
    9901           0 :   __Pyx_memviewslice *__pyx_t_1;
    9902           0 :   int __pyx_t_2;
    9903           0 :   PyObject *__pyx_t_3 = NULL;
    9904           0 :   int __pyx_t_4;
    9905           0 :   int __pyx_t_5;
    9906           0 :   char const *__pyx_t_6;
    9907           0 :   PyObject *__pyx_t_7 = NULL;
    9908           0 :   PyObject *__pyx_t_8 = NULL;
    9909           0 :   PyObject *__pyx_t_9 = NULL;
    9910           0 :   PyObject *__pyx_t_10 = NULL;
    9911           0 :   PyObject *__pyx_t_11 = NULL;
    9912           0 :   PyObject *__pyx_t_12 = NULL;
    9913           0 :   int __pyx_lineno = 0;
    9914           0 :   const char *__pyx_filename = NULL;
    9915           0 :   int __pyx_clineno = 0;
    9916           0 :   __Pyx_RefNannySetupContext("setitem_slice_assign_scalar", 1);
    9917             : 
    9918             :   /* "View.MemoryView":455
    9919             :  *     cdef setitem_slice_assign_scalar(self, memoryview dst, value):
    9920             :  *         cdef int array[128]
    9921             :  *         cdef void *tmp = NULL             # <<<<<<<<<<<<<<
    9922             :  *         cdef void *item
    9923             :  * 
    9924             :  */
    9925           0 :   __pyx_v_tmp = NULL;
    9926             : 
    9927             :   /* "View.MemoryView":460
    9928             :  *         cdef __Pyx_memviewslice *dst_slice
    9929             :  *         cdef __Pyx_memviewslice tmp_slice
    9930             :  *         dst_slice = get_slice_from_memview(dst, &tmp_slice)             # <<<<<<<<<<<<<<
    9931             :  * 
    9932             :  *         if <size_t>self.view.itemsize > sizeof(array):
    9933             :  */
    9934           0 :   __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_dst, (&__pyx_v_tmp_slice)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(1, 460, __pyx_L1_error)
    9935           0 :   __pyx_v_dst_slice = __pyx_t_1;
    9936             : 
    9937             :   /* "View.MemoryView":462
    9938             :  *         dst_slice = get_slice_from_memview(dst, &tmp_slice)
    9939             :  * 
    9940             :  *         if <size_t>self.view.itemsize > sizeof(array):             # <<<<<<<<<<<<<<
    9941             :  *             tmp = PyMem_Malloc(self.view.itemsize)
    9942             :  *             if tmp == NULL:
    9943             :  */
    9944           0 :   __pyx_t_2 = (((size_t)__pyx_v_self->view.itemsize) > (sizeof(__pyx_v_array)));
    9945           0 :   if (__pyx_t_2) {
    9946             : 
    9947             :     /* "View.MemoryView":463
    9948             :  * 
    9949             :  *         if <size_t>self.view.itemsize > sizeof(array):
    9950             :  *             tmp = PyMem_Malloc(self.view.itemsize)             # <<<<<<<<<<<<<<
    9951             :  *             if tmp == NULL:
    9952             :  *                 raise MemoryError
    9953             :  */
    9954           0 :     __pyx_v_tmp = PyMem_Malloc(__pyx_v_self->view.itemsize);
    9955             : 
    9956             :     /* "View.MemoryView":464
    9957             :  *         if <size_t>self.view.itemsize > sizeof(array):
    9958             :  *             tmp = PyMem_Malloc(self.view.itemsize)
    9959             :  *             if tmp == NULL:             # <<<<<<<<<<<<<<
    9960             :  *                 raise MemoryError
    9961             :  *             item = tmp
    9962             :  */
    9963           0 :     __pyx_t_2 = (__pyx_v_tmp == NULL);
    9964           0 :     if (unlikely(__pyx_t_2)) {
    9965             : 
    9966             :       /* "View.MemoryView":465
    9967             :  *             tmp = PyMem_Malloc(self.view.itemsize)
    9968             :  *             if tmp == NULL:
    9969             :  *                 raise MemoryError             # <<<<<<<<<<<<<<
    9970             :  *             item = tmp
    9971             :  *         else:
    9972             :  */
    9973           0 :       PyErr_NoMemory(); __PYX_ERR(1, 465, __pyx_L1_error)
    9974             : 
    9975             :       /* "View.MemoryView":464
    9976             :  *         if <size_t>self.view.itemsize > sizeof(array):
    9977             :  *             tmp = PyMem_Malloc(self.view.itemsize)
    9978             :  *             if tmp == NULL:             # <<<<<<<<<<<<<<
    9979             :  *                 raise MemoryError
    9980             :  *             item = tmp
    9981             :  */
    9982             :     }
    9983             : 
    9984             :     /* "View.MemoryView":466
    9985             :  *             if tmp == NULL:
    9986             :  *                 raise MemoryError
    9987             :  *             item = tmp             # <<<<<<<<<<<<<<
    9988             :  *         else:
    9989             :  *             item = <void *> array
    9990             :  */
    9991           0 :     __pyx_v_item = __pyx_v_tmp;
    9992             : 
    9993             :     /* "View.MemoryView":462
    9994             :  *         dst_slice = get_slice_from_memview(dst, &tmp_slice)
    9995             :  * 
    9996             :  *         if <size_t>self.view.itemsize > sizeof(array):             # <<<<<<<<<<<<<<
    9997             :  *             tmp = PyMem_Malloc(self.view.itemsize)
    9998             :  *             if tmp == NULL:
    9999             :  */
   10000           0 :     goto __pyx_L3;
   10001             :   }
   10002             : 
   10003             :   /* "View.MemoryView":468
   10004             :  *             item = tmp
   10005             :  *         else:
   10006             :  *             item = <void *> array             # <<<<<<<<<<<<<<
   10007             :  * 
   10008             :  *         try:
   10009             :  */
   10010             :   /*else*/ {
   10011             :     __pyx_v_item = ((void *)__pyx_v_array);
   10012             :   }
   10013           0 :   __pyx_L3:;
   10014             : 
   10015             :   /* "View.MemoryView":470
   10016             :  *             item = <void *> array
   10017             :  * 
   10018             :  *         try:             # <<<<<<<<<<<<<<
   10019             :  *             if self.dtype_is_object:
   10020             :  *                 (<PyObject **> item)[0] = <PyObject *> value
   10021             :  */
   10022             :   /*try:*/ {
   10023             : 
   10024             :     /* "View.MemoryView":471
   10025             :  * 
   10026             :  *         try:
   10027             :  *             if self.dtype_is_object:             # <<<<<<<<<<<<<<
   10028             :  *                 (<PyObject **> item)[0] = <PyObject *> value
   10029             :  *             else:
   10030             :  */
   10031           0 :     if (__pyx_v_self->dtype_is_object) {
   10032             : 
   10033             :       /* "View.MemoryView":472
   10034             :  *         try:
   10035             :  *             if self.dtype_is_object:
   10036             :  *                 (<PyObject **> item)[0] = <PyObject *> value             # <<<<<<<<<<<<<<
   10037             :  *             else:
   10038             :  *                 self.assign_item_from_object(<char *> item, value)
   10039             :  */
   10040           0 :       (((PyObject **)__pyx_v_item)[0]) = ((PyObject *)__pyx_v_value);
   10041             : 
   10042             :       /* "View.MemoryView":471
   10043             :  * 
   10044             :  *         try:
   10045             :  *             if self.dtype_is_object:             # <<<<<<<<<<<<<<
   10046             :  *                 (<PyObject **> item)[0] = <PyObject *> value
   10047             :  *             else:
   10048             :  */
   10049           0 :       goto __pyx_L8;
   10050             :     }
   10051             : 
   10052             :     /* "View.MemoryView":474
   10053             :  *                 (<PyObject **> item)[0] = <PyObject *> value
   10054             :  *             else:
   10055             :  *                 self.assign_item_from_object(<char *> item, value)             # <<<<<<<<<<<<<<
   10056             :  * 
   10057             :  * 
   10058             :  */
   10059             :     /*else*/ {
   10060           0 :       __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, ((char *)__pyx_v_item), __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 474, __pyx_L6_error)
   10061           0 :       __Pyx_GOTREF(__pyx_t_3);
   10062           0 :       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   10063             :     }
   10064           0 :     __pyx_L8:;
   10065             : 
   10066             :     /* "View.MemoryView":478
   10067             :  * 
   10068             :  * 
   10069             :  *             if self.view.suboffsets != NULL:             # <<<<<<<<<<<<<<
   10070             :  *                 assert_direct_dimensions(self.view.suboffsets, self.view.ndim)
   10071             :  *             slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize,
   10072             :  */
   10073           0 :     __pyx_t_2 = (__pyx_v_self->view.suboffsets != NULL);
   10074           0 :     if (__pyx_t_2) {
   10075             : 
   10076             :       /* "View.MemoryView":479
   10077             :  * 
   10078             :  *             if self.view.suboffsets != NULL:
   10079             :  *                 assert_direct_dimensions(self.view.suboffsets, self.view.ndim)             # <<<<<<<<<<<<<<
   10080             :  *             slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize,
   10081             :  *                                 item, self.dtype_is_object)
   10082             :  */
   10083           0 :       __pyx_t_4 = assert_direct_dimensions(__pyx_v_self->view.suboffsets, __pyx_v_self->view.ndim); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 479, __pyx_L6_error)
   10084             : 
   10085             :       /* "View.MemoryView":478
   10086             :  * 
   10087             :  * 
   10088             :  *             if self.view.suboffsets != NULL:             # <<<<<<<<<<<<<<
   10089             :  *                 assert_direct_dimensions(self.view.suboffsets, self.view.ndim)
   10090             :  *             slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize,
   10091             :  */
   10092             :     }
   10093             : 
   10094             :     /* "View.MemoryView":480
   10095             :  *             if self.view.suboffsets != NULL:
   10096             :  *                 assert_direct_dimensions(self.view.suboffsets, self.view.ndim)
   10097             :  *             slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize,             # <<<<<<<<<<<<<<
   10098             :  *                                 item, self.dtype_is_object)
   10099             :  *         finally:
   10100             :  */
   10101           0 :     __pyx_memoryview_slice_assign_scalar(__pyx_v_dst_slice, __pyx_v_dst->view.ndim, __pyx_v_self->view.itemsize, __pyx_v_item, __pyx_v_self->dtype_is_object);
   10102             :   }
   10103             : 
   10104             :   /* "View.MemoryView":483
   10105             :  *                                 item, self.dtype_is_object)
   10106             :  *         finally:
   10107             :  *             PyMem_Free(tmp)             # <<<<<<<<<<<<<<
   10108             :  * 
   10109             :  *     cdef setitem_indexed(self, index, value):
   10110             :  */
   10111             :   /*finally:*/ {
   10112             :     /*normal exit:*/{
   10113           0 :       PyMem_Free(__pyx_v_tmp);
   10114           0 :       goto __pyx_L7;
   10115             :     }
   10116           0 :     __pyx_L6_error:;
   10117             :     /*exception exit:*/{
   10118           0 :       __Pyx_PyThreadState_declare
   10119           0 :       __Pyx_PyThreadState_assign
   10120           0 :       __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0;
   10121           0 :       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
   10122           0 :       if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
   10123           0 :       if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
   10124           0 :       __Pyx_XGOTREF(__pyx_t_7);
   10125           0 :       __Pyx_XGOTREF(__pyx_t_8);
   10126           0 :       __Pyx_XGOTREF(__pyx_t_9);
   10127           0 :       __Pyx_XGOTREF(__pyx_t_10);
   10128           0 :       __Pyx_XGOTREF(__pyx_t_11);
   10129           0 :       __Pyx_XGOTREF(__pyx_t_12);
   10130           0 :       __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename;
   10131             :       {
   10132           0 :         PyMem_Free(__pyx_v_tmp);
   10133             :       }
   10134           0 :       if (PY_MAJOR_VERSION >= 3) {
   10135           0 :         __Pyx_XGIVEREF(__pyx_t_10);
   10136           0 :         __Pyx_XGIVEREF(__pyx_t_11);
   10137           0 :         __Pyx_XGIVEREF(__pyx_t_12);
   10138           0 :         __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
   10139             :       }
   10140           0 :       __Pyx_XGIVEREF(__pyx_t_7);
   10141           0 :       __Pyx_XGIVEREF(__pyx_t_8);
   10142           0 :       __Pyx_XGIVEREF(__pyx_t_9);
   10143           0 :       __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9);
   10144           0 :       __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0;
   10145           0 :       __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6;
   10146           0 :       goto __pyx_L1_error;
   10147             :     }
   10148           0 :     __pyx_L7:;
   10149             :   }
   10150             : 
   10151             :   /* "View.MemoryView":453
   10152             :  *         memoryview_copy_contents(msrc, mdst, src.ndim, dst.ndim, self.dtype_is_object)
   10153             :  * 
   10154             :  *     cdef setitem_slice_assign_scalar(self, memoryview dst, value):             # <<<<<<<<<<<<<<
   10155             :  *         cdef int array[128]
   10156             :  *         cdef void *tmp = NULL
   10157             :  */
   10158             : 
   10159             :   /* function exit code */
   10160           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   10161           0 :   goto __pyx_L0;
   10162           0 :   __pyx_L1_error:;
   10163           0 :   __Pyx_XDECREF(__pyx_t_3);
   10164           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assign_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename);
   10165           0 :   __pyx_r = 0;
   10166           0 :   __pyx_L0:;
   10167           0 :   __Pyx_XGIVEREF(__pyx_r);
   10168           0 :   __Pyx_RefNannyFinishContext();
   10169           0 :   return __pyx_r;
   10170             : }
   10171             : 
   10172             : /* "View.MemoryView":485
   10173             :  *             PyMem_Free(tmp)
   10174             :  * 
   10175             :  *     cdef setitem_indexed(self, index, value):             # <<<<<<<<<<<<<<
   10176             :  *         cdef char *itemp = self.get_item_pointer(index)
   10177             :  *         self.assign_item_from_object(itemp, value)
   10178             :  */
   10179             : 
   10180           0 : static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) {
   10181           0 :   char *__pyx_v_itemp;
   10182           0 :   PyObject *__pyx_r = NULL;
   10183             :   __Pyx_RefNannyDeclarations
   10184           0 :   char *__pyx_t_1;
   10185           0 :   PyObject *__pyx_t_2 = NULL;
   10186           0 :   int __pyx_lineno = 0;
   10187           0 :   const char *__pyx_filename = NULL;
   10188           0 :   int __pyx_clineno = 0;
   10189           0 :   __Pyx_RefNannySetupContext("setitem_indexed", 1);
   10190             : 
   10191             :   /* "View.MemoryView":486
   10192             :  * 
   10193             :  *     cdef setitem_indexed(self, index, value):
   10194             :  *         cdef char *itemp = self.get_item_pointer(index)             # <<<<<<<<<<<<<<
   10195             :  *         self.assign_item_from_object(itemp, value)
   10196             :  * 
   10197             :  */
   10198           0 :   __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_index); if (unlikely(__pyx_t_1 == ((char *)NULL))) __PYX_ERR(1, 486, __pyx_L1_error)
   10199           0 :   __pyx_v_itemp = __pyx_t_1;
   10200             : 
   10201             :   /* "View.MemoryView":487
   10202             :  *     cdef setitem_indexed(self, index, value):
   10203             :  *         cdef char *itemp = self.get_item_pointer(index)
   10204             :  *         self.assign_item_from_object(itemp, value)             # <<<<<<<<<<<<<<
   10205             :  * 
   10206             :  *     cdef convert_item_to_object(self, char *itemp):
   10207             :  */
   10208           0 :   __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 487, __pyx_L1_error)
   10209           0 :   __Pyx_GOTREF(__pyx_t_2);
   10210           0 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   10211             : 
   10212             :   /* "View.MemoryView":485
   10213             :  *             PyMem_Free(tmp)
   10214             :  * 
   10215             :  *     cdef setitem_indexed(self, index, value):             # <<<<<<<<<<<<<<
   10216             :  *         cdef char *itemp = self.get_item_pointer(index)
   10217             :  *         self.assign_item_from_object(itemp, value)
   10218             :  */
   10219             : 
   10220             :   /* function exit code */
   10221           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   10222           0 :   goto __pyx_L0;
   10223           0 :   __pyx_L1_error:;
   10224           0 :   __Pyx_XDECREF(__pyx_t_2);
   10225           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_indexed", __pyx_clineno, __pyx_lineno, __pyx_filename);
   10226           0 :   __pyx_r = 0;
   10227           0 :   __pyx_L0:;
   10228           0 :   __Pyx_XGIVEREF(__pyx_r);
   10229           0 :   __Pyx_RefNannyFinishContext();
   10230           0 :   return __pyx_r;
   10231             : }
   10232             : 
   10233             : /* "View.MemoryView":489
   10234             :  *         self.assign_item_from_object(itemp, value)
   10235             :  * 
   10236             :  *     cdef convert_item_to_object(self, char *itemp):             # <<<<<<<<<<<<<<
   10237             :  *         """Only used if instantiated manually by the user, or if Cython doesn't
   10238             :  *         know how to convert the type"""
   10239             :  */
   10240             : 
   10241           0 : static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp) {
   10242           0 :   PyObject *__pyx_v_struct = NULL;
   10243           0 :   PyObject *__pyx_v_bytesitem = 0;
   10244           0 :   PyObject *__pyx_v_result = NULL;
   10245           0 :   PyObject *__pyx_r = NULL;
   10246             :   __Pyx_RefNannyDeclarations
   10247           0 :   PyObject *__pyx_t_1 = NULL;
   10248           0 :   PyObject *__pyx_t_2 = NULL;
   10249           0 :   PyObject *__pyx_t_3 = NULL;
   10250           0 :   PyObject *__pyx_t_4 = NULL;
   10251           0 :   PyObject *__pyx_t_5 = NULL;
   10252           0 :   PyObject *__pyx_t_6 = NULL;
   10253           0 :   PyObject *__pyx_t_7 = NULL;
   10254           0 :   unsigned int __pyx_t_8;
   10255           0 :   Py_ssize_t __pyx_t_9;
   10256           0 :   int __pyx_t_10;
   10257           0 :   int __pyx_t_11;
   10258           0 :   int __pyx_lineno = 0;
   10259           0 :   const char *__pyx_filename = NULL;
   10260           0 :   int __pyx_clineno = 0;
   10261           0 :   __Pyx_RefNannySetupContext("convert_item_to_object", 1);
   10262             : 
   10263             :   /* "View.MemoryView":492
   10264             :  *         """Only used if instantiated manually by the user, or if Cython doesn't
   10265             :  *         know how to convert the type"""
   10266             :  *         import struct             # <<<<<<<<<<<<<<
   10267             :  *         cdef bytes bytesitem
   10268             :  * 
   10269             :  */
   10270           0 :   __pyx_t_1 = __Pyx_ImportDottedModule(__pyx_n_s_struct, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 492, __pyx_L1_error)
   10271           0 :   __Pyx_GOTREF(__pyx_t_1);
   10272           0 :   __pyx_v_struct = __pyx_t_1;
   10273           0 :   __pyx_t_1 = 0;
   10274             : 
   10275             :   /* "View.MemoryView":495
   10276             :  *         cdef bytes bytesitem
   10277             :  * 
   10278             :  *         bytesitem = itemp[:self.view.itemsize]             # <<<<<<<<<<<<<<
   10279             :  *         try:
   10280             :  *             result = struct.unpack(self.view.format, bytesitem)
   10281             :  */
   10282           0 :   __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_itemp + 0, __pyx_v_self->view.itemsize - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 495, __pyx_L1_error)
   10283           0 :   __Pyx_GOTREF(__pyx_t_1);
   10284           0 :   __pyx_v_bytesitem = ((PyObject*)__pyx_t_1);
   10285           0 :   __pyx_t_1 = 0;
   10286             : 
   10287             :   /* "View.MemoryView":496
   10288             :  * 
   10289             :  *         bytesitem = itemp[:self.view.itemsize]
   10290             :  *         try:             # <<<<<<<<<<<<<<
   10291             :  *             result = struct.unpack(self.view.format, bytesitem)
   10292             :  *         except struct.error:
   10293             :  */
   10294             :   {
   10295           0 :     __Pyx_PyThreadState_declare
   10296           0 :     __Pyx_PyThreadState_assign
   10297           0 :     __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
   10298           0 :     __Pyx_XGOTREF(__pyx_t_2);
   10299           0 :     __Pyx_XGOTREF(__pyx_t_3);
   10300           0 :     __Pyx_XGOTREF(__pyx_t_4);
   10301             :     /*try:*/ {
   10302             : 
   10303             :       /* "View.MemoryView":497
   10304             :  *         bytesitem = itemp[:self.view.itemsize]
   10305             :  *         try:
   10306             :  *             result = struct.unpack(self.view.format, bytesitem)             # <<<<<<<<<<<<<<
   10307             :  *         except struct.error:
   10308             :  *             raise ValueError, "Unable to convert item to object"
   10309             :  */
   10310           0 :       __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_unpack); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 497, __pyx_L3_error)
   10311           0 :       __Pyx_GOTREF(__pyx_t_5);
   10312           0 :       __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 497, __pyx_L3_error)
   10313           0 :       __Pyx_GOTREF(__pyx_t_6);
   10314           0 :       __pyx_t_7 = NULL;
   10315           0 :       __pyx_t_8 = 0;
   10316             :       #if CYTHON_UNPACK_METHODS
   10317           0 :       if (likely(PyMethod_Check(__pyx_t_5))) {
   10318           0 :         __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
   10319           0 :         if (likely(__pyx_t_7)) {
   10320           0 :           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
   10321           0 :           __Pyx_INCREF(__pyx_t_7);
   10322           0 :           __Pyx_INCREF(function);
   10323           0 :           __Pyx_DECREF_SET(__pyx_t_5, function);
   10324             :           __pyx_t_8 = 1;
   10325             :         }
   10326             :       }
   10327             :       #endif
   10328             :       {
   10329           0 :         PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem};
   10330           0 :         __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 2+__pyx_t_8);
   10331           0 :         __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
   10332           0 :         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   10333           0 :         if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 497, __pyx_L3_error)
   10334           0 :         __Pyx_GOTREF(__pyx_t_1);
   10335           0 :         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   10336             :       }
   10337           0 :       __pyx_v_result = __pyx_t_1;
   10338           0 :       __pyx_t_1 = 0;
   10339             : 
   10340             :       /* "View.MemoryView":496
   10341             :  * 
   10342             :  *         bytesitem = itemp[:self.view.itemsize]
   10343             :  *         try:             # <<<<<<<<<<<<<<
   10344             :  *             result = struct.unpack(self.view.format, bytesitem)
   10345             :  *         except struct.error:
   10346             :  */
   10347             :     }
   10348             : 
   10349             :     /* "View.MemoryView":501
   10350             :  *             raise ValueError, "Unable to convert item to object"
   10351             :  *         else:
   10352             :  *             if len(self.view.format) == 1:             # <<<<<<<<<<<<<<
   10353             :  *                 return result[0]
   10354             :  *             return result
   10355             :  */
   10356             :     /*else:*/ {
   10357           0 :       __pyx_t_9 = __Pyx_ssize_strlen(__pyx_v_self->view.format); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(1, 501, __pyx_L5_except_error)
   10358           0 :       __pyx_t_10 = (__pyx_t_9 == 1);
   10359           0 :       if (__pyx_t_10) {
   10360             : 
   10361             :         /* "View.MemoryView":502
   10362             :  *         else:
   10363             :  *             if len(self.view.format) == 1:
   10364             :  *                 return result[0]             # <<<<<<<<<<<<<<
   10365             :  *             return result
   10366             :  * 
   10367             :  */
   10368           0 :         __Pyx_XDECREF(__pyx_r);
   10369           0 :         __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_result, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 502, __pyx_L5_except_error)
   10370           0 :         __Pyx_GOTREF(__pyx_t_1);
   10371           0 :         __pyx_r = __pyx_t_1;
   10372           0 :         __pyx_t_1 = 0;
   10373           0 :         goto __pyx_L6_except_return;
   10374             : 
   10375             :         /* "View.MemoryView":501
   10376             :  *             raise ValueError, "Unable to convert item to object"
   10377             :  *         else:
   10378             :  *             if len(self.view.format) == 1:             # <<<<<<<<<<<<<<
   10379             :  *                 return result[0]
   10380             :  *             return result
   10381             :  */
   10382             :       }
   10383             : 
   10384             :       /* "View.MemoryView":503
   10385             :  *             if len(self.view.format) == 1:
   10386             :  *                 return result[0]
   10387             :  *             return result             # <<<<<<<<<<<<<<
   10388             :  * 
   10389             :  *     cdef assign_item_from_object(self, char *itemp, object value):
   10390             :  */
   10391           0 :       __Pyx_XDECREF(__pyx_r);
   10392           0 :       __Pyx_INCREF(__pyx_v_result);
   10393           0 :       __pyx_r = __pyx_v_result;
   10394           0 :       goto __pyx_L6_except_return;
   10395             :     }
   10396           0 :     __pyx_L3_error:;
   10397           0 :     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
   10398           0 :     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
   10399           0 :     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
   10400           0 :     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
   10401             : 
   10402             :     /* "View.MemoryView":498
   10403             :  *         try:
   10404             :  *             result = struct.unpack(self.view.format, bytesitem)
   10405             :  *         except struct.error:             # <<<<<<<<<<<<<<
   10406             :  *             raise ValueError, "Unable to convert item to object"
   10407             :  *         else:
   10408             :  */
   10409           0 :     __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_5, &__pyx_t_6);
   10410           0 :     __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 498, __pyx_L5_except_error)
   10411           0 :     __Pyx_GOTREF(__pyx_t_7);
   10412           0 :     __pyx_t_11 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_7);
   10413           0 :     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   10414           0 :     __Pyx_ErrRestore(__pyx_t_1, __pyx_t_5, __pyx_t_6);
   10415           0 :     __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0;
   10416           0 :     if (__pyx_t_11) {
   10417           0 :       __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
   10418           0 :       if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(1, 498, __pyx_L5_except_error)
   10419           0 :       __Pyx_XGOTREF(__pyx_t_6);
   10420           0 :       __Pyx_XGOTREF(__pyx_t_5);
   10421           0 :       __Pyx_XGOTREF(__pyx_t_1);
   10422             : 
   10423             :       /* "View.MemoryView":499
   10424             :  *             result = struct.unpack(self.view.format, bytesitem)
   10425             :  *         except struct.error:
   10426             :  *             raise ValueError, "Unable to convert item to object"             # <<<<<<<<<<<<<<
   10427             :  *         else:
   10428             :  *             if len(self.view.format) == 1:
   10429             :  */
   10430           0 :       __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Unable_to_convert_item_to_object, 0, 0);
   10431           0 :       __PYX_ERR(1, 499, __pyx_L5_except_error)
   10432             :     }
   10433           0 :     goto __pyx_L5_except_error;
   10434             : 
   10435             :     /* "View.MemoryView":496
   10436             :  * 
   10437             :  *         bytesitem = itemp[:self.view.itemsize]
   10438             :  *         try:             # <<<<<<<<<<<<<<
   10439             :  *             result = struct.unpack(self.view.format, bytesitem)
   10440             :  *         except struct.error:
   10441             :  */
   10442           0 :     __pyx_L5_except_error:;
   10443           0 :     __Pyx_XGIVEREF(__pyx_t_2);
   10444           0 :     __Pyx_XGIVEREF(__pyx_t_3);
   10445           0 :     __Pyx_XGIVEREF(__pyx_t_4);
   10446           0 :     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
   10447           0 :     goto __pyx_L1_error;
   10448           0 :     __pyx_L6_except_return:;
   10449           0 :     __Pyx_XGIVEREF(__pyx_t_2);
   10450           0 :     __Pyx_XGIVEREF(__pyx_t_3);
   10451           0 :     __Pyx_XGIVEREF(__pyx_t_4);
   10452           0 :     __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
   10453           0 :     goto __pyx_L0;
   10454             :   }
   10455             : 
   10456             :   /* "View.MemoryView":489
   10457             :  *         self.assign_item_from_object(itemp, value)
   10458             :  * 
   10459             :  *     cdef convert_item_to_object(self, char *itemp):             # <<<<<<<<<<<<<<
   10460             :  *         """Only used if instantiated manually by the user, or if Cython doesn't
   10461             :  *         know how to convert the type"""
   10462             :  */
   10463             : 
   10464             :   /* function exit code */
   10465           0 :   __pyx_L1_error:;
   10466           0 :   __Pyx_XDECREF(__pyx_t_1);
   10467           0 :   __Pyx_XDECREF(__pyx_t_5);
   10468           0 :   __Pyx_XDECREF(__pyx_t_6);
   10469           0 :   __Pyx_XDECREF(__pyx_t_7);
   10470           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
   10471           0 :   __pyx_r = 0;
   10472           0 :   __pyx_L0:;
   10473           0 :   __Pyx_XDECREF(__pyx_v_struct);
   10474           0 :   __Pyx_XDECREF(__pyx_v_bytesitem);
   10475           0 :   __Pyx_XDECREF(__pyx_v_result);
   10476           0 :   __Pyx_XGIVEREF(__pyx_r);
   10477           0 :   __Pyx_RefNannyFinishContext();
   10478           0 :   return __pyx_r;
   10479             : }
   10480             : 
   10481             : /* "View.MemoryView":505
   10482             :  *             return result
   10483             :  * 
   10484             :  *     cdef assign_item_from_object(self, char *itemp, object value):             # <<<<<<<<<<<<<<
   10485             :  *         """Only used if instantiated manually by the user, or if Cython doesn't
   10486             :  *         know how to convert the type"""
   10487             :  */
   10488             : 
   10489           0 : static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) {
   10490           0 :   PyObject *__pyx_v_struct = NULL;
   10491           0 :   char __pyx_v_c;
   10492           0 :   PyObject *__pyx_v_bytesvalue = 0;
   10493           0 :   Py_ssize_t __pyx_v_i;
   10494           0 :   PyObject *__pyx_r = NULL;
   10495             :   __Pyx_RefNannyDeclarations
   10496           0 :   PyObject *__pyx_t_1 = NULL;
   10497           0 :   int __pyx_t_2;
   10498           0 :   PyObject *__pyx_t_3 = NULL;
   10499           0 :   PyObject *__pyx_t_4 = NULL;
   10500           0 :   PyObject *__pyx_t_5 = NULL;
   10501           0 :   unsigned int __pyx_t_6;
   10502           0 :   Py_ssize_t __pyx_t_7;
   10503           0 :   PyObject *__pyx_t_8 = NULL;
   10504           0 :   char *__pyx_t_9;
   10505           0 :   char *__pyx_t_10;
   10506           0 :   char *__pyx_t_11;
   10507           0 :   char *__pyx_t_12;
   10508           0 :   int __pyx_lineno = 0;
   10509           0 :   const char *__pyx_filename = NULL;
   10510           0 :   int __pyx_clineno = 0;
   10511           0 :   __Pyx_RefNannySetupContext("assign_item_from_object", 1);
   10512             : 
   10513             :   /* "View.MemoryView":508
   10514             :  *         """Only used if instantiated manually by the user, or if Cython doesn't
   10515             :  *         know how to convert the type"""
   10516             :  *         import struct             # <<<<<<<<<<<<<<
   10517             :  *         cdef char c
   10518             :  *         cdef bytes bytesvalue
   10519             :  */
   10520           0 :   __pyx_t_1 = __Pyx_ImportDottedModule(__pyx_n_s_struct, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 508, __pyx_L1_error)
   10521           0 :   __Pyx_GOTREF(__pyx_t_1);
   10522           0 :   __pyx_v_struct = __pyx_t_1;
   10523           0 :   __pyx_t_1 = 0;
   10524             : 
   10525             :   /* "View.MemoryView":513
   10526             :  *         cdef Py_ssize_t i
   10527             :  * 
   10528             :  *         if isinstance(value, tuple):             # <<<<<<<<<<<<<<
   10529             :  *             bytesvalue = struct.pack(self.view.format, *value)
   10530             :  *         else:
   10531             :  */
   10532           0 :   __pyx_t_2 = PyTuple_Check(__pyx_v_value); 
   10533           0 :   if (__pyx_t_2) {
   10534             : 
   10535             :     /* "View.MemoryView":514
   10536             :  * 
   10537             :  *         if isinstance(value, tuple):
   10538             :  *             bytesvalue = struct.pack(self.view.format, *value)             # <<<<<<<<<<<<<<
   10539             :  *         else:
   10540             :  *             bytesvalue = struct.pack(self.view.format, value)
   10541             :  */
   10542           0 :     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 514, __pyx_L1_error)
   10543           0 :     __Pyx_GOTREF(__pyx_t_1);
   10544           0 :     __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 514, __pyx_L1_error)
   10545           0 :     __Pyx_GOTREF(__pyx_t_3);
   10546           0 :     __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 514, __pyx_L1_error)
   10547           0 :     __Pyx_GOTREF(__pyx_t_4);
   10548           0 :     __Pyx_GIVEREF(__pyx_t_3);
   10549           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 514, __pyx_L1_error);
   10550           0 :     __pyx_t_3 = 0;
   10551           0 :     __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 514, __pyx_L1_error)
   10552           0 :     __Pyx_GOTREF(__pyx_t_3);
   10553           0 :     __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 514, __pyx_L1_error)
   10554           0 :     __Pyx_GOTREF(__pyx_t_5);
   10555           0 :     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   10556           0 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   10557           0 :     __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 514, __pyx_L1_error)
   10558           0 :     __Pyx_GOTREF(__pyx_t_3);
   10559           0 :     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   10560           0 :     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   10561           0 :     if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_3))) __PYX_ERR(1, 514, __pyx_L1_error)
   10562           0 :     __pyx_v_bytesvalue = ((PyObject*)__pyx_t_3);
   10563           0 :     __pyx_t_3 = 0;
   10564             : 
   10565             :     /* "View.MemoryView":513
   10566             :  *         cdef Py_ssize_t i
   10567             :  * 
   10568             :  *         if isinstance(value, tuple):             # <<<<<<<<<<<<<<
   10569             :  *             bytesvalue = struct.pack(self.view.format, *value)
   10570             :  *         else:
   10571             :  */
   10572           0 :     goto __pyx_L3;
   10573             :   }
   10574             : 
   10575             :   /* "View.MemoryView":516
   10576             :  *             bytesvalue = struct.pack(self.view.format, *value)
   10577             :  *         else:
   10578             :  *             bytesvalue = struct.pack(self.view.format, value)             # <<<<<<<<<<<<<<
   10579             :  * 
   10580             :  *         for i, c in enumerate(bytesvalue):
   10581             :  */
   10582             :   /*else*/ {
   10583           0 :     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 516, __pyx_L1_error)
   10584           0 :     __Pyx_GOTREF(__pyx_t_5);
   10585           0 :     __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 516, __pyx_L1_error)
   10586           0 :     __Pyx_GOTREF(__pyx_t_1);
   10587           0 :     __pyx_t_4 = NULL;
   10588           0 :     __pyx_t_6 = 0;
   10589             :     #if CYTHON_UNPACK_METHODS
   10590           0 :     if (likely(PyMethod_Check(__pyx_t_5))) {
   10591           0 :       __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
   10592           0 :       if (likely(__pyx_t_4)) {
   10593           0 :         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
   10594           0 :         __Pyx_INCREF(__pyx_t_4);
   10595           0 :         __Pyx_INCREF(function);
   10596           0 :         __Pyx_DECREF_SET(__pyx_t_5, function);
   10597             :         __pyx_t_6 = 1;
   10598             :       }
   10599             :     }
   10600             :     #endif
   10601             :     {
   10602           0 :       PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_1, __pyx_v_value};
   10603           0 :       __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
   10604           0 :       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
   10605           0 :       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   10606           0 :       if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 516, __pyx_L1_error)
   10607           0 :       __Pyx_GOTREF(__pyx_t_3);
   10608           0 :       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   10609             :     }
   10610           0 :     if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_3))) __PYX_ERR(1, 516, __pyx_L1_error)
   10611             :     __pyx_v_bytesvalue = ((PyObject*)__pyx_t_3);
   10612             :     __pyx_t_3 = 0;
   10613             :   }
   10614           0 :   __pyx_L3:;
   10615             : 
   10616             :   /* "View.MemoryView":518
   10617             :  *             bytesvalue = struct.pack(self.view.format, value)
   10618             :  * 
   10619             :  *         for i, c in enumerate(bytesvalue):             # <<<<<<<<<<<<<<
   10620             :  *             itemp[i] = c
   10621             :  * 
   10622             :  */
   10623           0 :   __pyx_t_7 = 0;
   10624           0 :   if (unlikely(__pyx_v_bytesvalue == Py_None)) {
   10625           0 :     PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable");
   10626           0 :     __PYX_ERR(1, 518, __pyx_L1_error)
   10627             :   }
   10628           0 :   __Pyx_INCREF(__pyx_v_bytesvalue);
   10629           0 :   __pyx_t_8 = __pyx_v_bytesvalue;
   10630           0 :   __pyx_t_10 = PyBytes_AS_STRING(__pyx_t_8);
   10631           0 :   __pyx_t_11 = (__pyx_t_10 + PyBytes_GET_SIZE(__pyx_t_8));
   10632           0 :   for (__pyx_t_12 = __pyx_t_10; __pyx_t_12 < __pyx_t_11; __pyx_t_12++) {
   10633           0 :     __pyx_t_9 = __pyx_t_12;
   10634           0 :     __pyx_v_c = (__pyx_t_9[0]);
   10635             : 
   10636             :     /* "View.MemoryView":519
   10637             :  * 
   10638             :  *         for i, c in enumerate(bytesvalue):
   10639             :  *             itemp[i] = c             # <<<<<<<<<<<<<<
   10640             :  * 
   10641             :  *     @cname('getbuffer')
   10642             :  */
   10643           0 :     __pyx_v_i = __pyx_t_7;
   10644             : 
   10645             :     /* "View.MemoryView":518
   10646             :  *             bytesvalue = struct.pack(self.view.format, value)
   10647             :  * 
   10648             :  *         for i, c in enumerate(bytesvalue):             # <<<<<<<<<<<<<<
   10649             :  *             itemp[i] = c
   10650             :  * 
   10651             :  */
   10652           0 :     __pyx_t_7 = (__pyx_t_7 + 1);
   10653             : 
   10654             :     /* "View.MemoryView":519
   10655             :  * 
   10656             :  *         for i, c in enumerate(bytesvalue):
   10657             :  *             itemp[i] = c             # <<<<<<<<<<<<<<
   10658             :  * 
   10659             :  *     @cname('getbuffer')
   10660             :  */
   10661           0 :     (__pyx_v_itemp[__pyx_v_i]) = __pyx_v_c;
   10662             :   }
   10663           0 :   __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
   10664             : 
   10665             :   /* "View.MemoryView":505
   10666             :  *             return result
   10667             :  * 
   10668             :  *     cdef assign_item_from_object(self, char *itemp, object value):             # <<<<<<<<<<<<<<
   10669             :  *         """Only used if instantiated manually by the user, or if Cython doesn't
   10670             :  *         know how to convert the type"""
   10671             :  */
   10672             : 
   10673             :   /* function exit code */
   10674           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   10675           0 :   goto __pyx_L0;
   10676           0 :   __pyx_L1_error:;
   10677           0 :   __Pyx_XDECREF(__pyx_t_1);
   10678           0 :   __Pyx_XDECREF(__pyx_t_3);
   10679           0 :   __Pyx_XDECREF(__pyx_t_4);
   10680           0 :   __Pyx_XDECREF(__pyx_t_5);
   10681           0 :   __Pyx_XDECREF(__pyx_t_8);
   10682           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
   10683           0 :   __pyx_r = 0;
   10684           0 :   __pyx_L0:;
   10685           0 :   __Pyx_XDECREF(__pyx_v_struct);
   10686           0 :   __Pyx_XDECREF(__pyx_v_bytesvalue);
   10687           0 :   __Pyx_XGIVEREF(__pyx_r);
   10688           0 :   __Pyx_RefNannyFinishContext();
   10689           0 :   return __pyx_r;
   10690             : }
   10691             : 
   10692             : /* "View.MemoryView":521
   10693             :  *             itemp[i] = c
   10694             :  * 
   10695             :  *     @cname('getbuffer')             # <<<<<<<<<<<<<<
   10696             :  *     def __getbuffer__(self, Py_buffer *info, int flags):
   10697             :  *         if flags & PyBUF_WRITABLE and self.view.readonly:
   10698             :  */
   10699             : 
   10700             : /* Python wrapper */
   10701             : CYTHON_UNUSED static int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
   10702           0 : CYTHON_UNUSED static int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
   10703           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   10704           0 :   int __pyx_r;
   10705             :   __Pyx_RefNannyDeclarations
   10706           0 :   __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0);
   10707           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   10708           0 :   __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags));
   10709             : 
   10710             :   /* function exit code */
   10711           0 :   __Pyx_RefNannyFinishContext();
   10712           0 :   return __pyx_r;
   10713             : }
   10714             : 
   10715           0 : static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
   10716           0 :   int __pyx_r;
   10717             :   __Pyx_RefNannyDeclarations
   10718           0 :   int __pyx_t_1;
   10719           0 :   int __pyx_t_2;
   10720           0 :   Py_ssize_t *__pyx_t_3;
   10721           0 :   char *__pyx_t_4;
   10722           0 :   void *__pyx_t_5;
   10723           0 :   int __pyx_t_6;
   10724           0 :   Py_ssize_t __pyx_t_7;
   10725           0 :   int __pyx_lineno = 0;
   10726           0 :   const char *__pyx_filename = NULL;
   10727           0 :   int __pyx_clineno = 0;
   10728           0 :   if (unlikely(__pyx_v_info == NULL)) {
   10729           0 :     PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete");
   10730           0 :     return -1;
   10731             :   }
   10732           0 :   __Pyx_RefNannySetupContext("__getbuffer__", 0);
   10733           0 :   __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None);
   10734           0 :   __Pyx_GIVEREF(__pyx_v_info->obj);
   10735             : 
   10736             :   /* "View.MemoryView":523
   10737             :  *     @cname('getbuffer')
   10738             :  *     def __getbuffer__(self, Py_buffer *info, int flags):
   10739             :  *         if flags & PyBUF_WRITABLE and self.view.readonly:             # <<<<<<<<<<<<<<
   10740             :  *             raise ValueError, "Cannot create writable memory view from read-only memoryview"
   10741             :  * 
   10742             :  */
   10743           0 :   __pyx_t_2 = ((__pyx_v_flags & PyBUF_WRITABLE) != 0);
   10744           0 :   if (__pyx_t_2) {
   10745           0 :   } else {
   10746           0 :     __pyx_t_1 = __pyx_t_2;
   10747           0 :     goto __pyx_L4_bool_binop_done;
   10748             :   }
   10749           0 :   __pyx_t_1 = __pyx_v_self->view.readonly;
   10750           0 :   __pyx_L4_bool_binop_done:;
   10751           0 :   if (unlikely(__pyx_t_1)) {
   10752             : 
   10753             :     /* "View.MemoryView":524
   10754             :  *     def __getbuffer__(self, Py_buffer *info, int flags):
   10755             :  *         if flags & PyBUF_WRITABLE and self.view.readonly:
   10756             :  *             raise ValueError, "Cannot create writable memory view from read-only memoryview"             # <<<<<<<<<<<<<<
   10757             :  * 
   10758             :  *         if flags & PyBUF_ND:
   10759             :  */
   10760           0 :     __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Cannot_create_writable_memory_vi, 0, 0);
   10761           0 :     __PYX_ERR(1, 524, __pyx_L1_error)
   10762             : 
   10763             :     /* "View.MemoryView":523
   10764             :  *     @cname('getbuffer')
   10765             :  *     def __getbuffer__(self, Py_buffer *info, int flags):
   10766             :  *         if flags & PyBUF_WRITABLE and self.view.readonly:             # <<<<<<<<<<<<<<
   10767             :  *             raise ValueError, "Cannot create writable memory view from read-only memoryview"
   10768             :  * 
   10769             :  */
   10770             :   }
   10771             : 
   10772             :   /* "View.MemoryView":526
   10773             :  *             raise ValueError, "Cannot create writable memory view from read-only memoryview"
   10774             :  * 
   10775             :  *         if flags & PyBUF_ND:             # <<<<<<<<<<<<<<
   10776             :  *             info.shape = self.view.shape
   10777             :  *         else:
   10778             :  */
   10779           0 :   __pyx_t_1 = ((__pyx_v_flags & PyBUF_ND) != 0);
   10780           0 :   if (__pyx_t_1) {
   10781             : 
   10782             :     /* "View.MemoryView":527
   10783             :  * 
   10784             :  *         if flags & PyBUF_ND:
   10785             :  *             info.shape = self.view.shape             # <<<<<<<<<<<<<<
   10786             :  *         else:
   10787             :  *             info.shape = NULL
   10788             :  */
   10789           0 :     __pyx_t_3 = __pyx_v_self->view.shape;
   10790           0 :     __pyx_v_info->shape = __pyx_t_3;
   10791             : 
   10792             :     /* "View.MemoryView":526
   10793             :  *             raise ValueError, "Cannot create writable memory view from read-only memoryview"
   10794             :  * 
   10795             :  *         if flags & PyBUF_ND:             # <<<<<<<<<<<<<<
   10796             :  *             info.shape = self.view.shape
   10797             :  *         else:
   10798             :  */
   10799           0 :     goto __pyx_L6;
   10800             :   }
   10801             : 
   10802             :   /* "View.MemoryView":529
   10803             :  *             info.shape = self.view.shape
   10804             :  *         else:
   10805             :  *             info.shape = NULL             # <<<<<<<<<<<<<<
   10806             :  * 
   10807             :  *         if flags & PyBUF_STRIDES:
   10808             :  */
   10809             :   /*else*/ {
   10810           0 :     __pyx_v_info->shape = NULL;
   10811             :   }
   10812           0 :   __pyx_L6:;
   10813             : 
   10814             :   /* "View.MemoryView":531
   10815             :  *             info.shape = NULL
   10816             :  * 
   10817             :  *         if flags & PyBUF_STRIDES:             # <<<<<<<<<<<<<<
   10818             :  *             info.strides = self.view.strides
   10819             :  *         else:
   10820             :  */
   10821           0 :   __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0);
   10822           0 :   if (__pyx_t_1) {
   10823             : 
   10824             :     /* "View.MemoryView":532
   10825             :  * 
   10826             :  *         if flags & PyBUF_STRIDES:
   10827             :  *             info.strides = self.view.strides             # <<<<<<<<<<<<<<
   10828             :  *         else:
   10829             :  *             info.strides = NULL
   10830             :  */
   10831           0 :     __pyx_t_3 = __pyx_v_self->view.strides;
   10832           0 :     __pyx_v_info->strides = __pyx_t_3;
   10833             : 
   10834             :     /* "View.MemoryView":531
   10835             :  *             info.shape = NULL
   10836             :  * 
   10837             :  *         if flags & PyBUF_STRIDES:             # <<<<<<<<<<<<<<
   10838             :  *             info.strides = self.view.strides
   10839             :  *         else:
   10840             :  */
   10841           0 :     goto __pyx_L7;
   10842             :   }
   10843             : 
   10844             :   /* "View.MemoryView":534
   10845             :  *             info.strides = self.view.strides
   10846             :  *         else:
   10847             :  *             info.strides = NULL             # <<<<<<<<<<<<<<
   10848             :  * 
   10849             :  *         if flags & PyBUF_INDIRECT:
   10850             :  */
   10851             :   /*else*/ {
   10852           0 :     __pyx_v_info->strides = NULL;
   10853             :   }
   10854           0 :   __pyx_L7:;
   10855             : 
   10856             :   /* "View.MemoryView":536
   10857             :  *             info.strides = NULL
   10858             :  * 
   10859             :  *         if flags & PyBUF_INDIRECT:             # <<<<<<<<<<<<<<
   10860             :  *             info.suboffsets = self.view.suboffsets
   10861             :  *         else:
   10862             :  */
   10863           0 :   __pyx_t_1 = ((__pyx_v_flags & PyBUF_INDIRECT) != 0);
   10864           0 :   if (__pyx_t_1) {
   10865             : 
   10866             :     /* "View.MemoryView":537
   10867             :  * 
   10868             :  *         if flags & PyBUF_INDIRECT:
   10869             :  *             info.suboffsets = self.view.suboffsets             # <<<<<<<<<<<<<<
   10870             :  *         else:
   10871             :  *             info.suboffsets = NULL
   10872             :  */
   10873           0 :     __pyx_t_3 = __pyx_v_self->view.suboffsets;
   10874           0 :     __pyx_v_info->suboffsets = __pyx_t_3;
   10875             : 
   10876             :     /* "View.MemoryView":536
   10877             :  *             info.strides = NULL
   10878             :  * 
   10879             :  *         if flags & PyBUF_INDIRECT:             # <<<<<<<<<<<<<<
   10880             :  *             info.suboffsets = self.view.suboffsets
   10881             :  *         else:
   10882             :  */
   10883           0 :     goto __pyx_L8;
   10884             :   }
   10885             : 
   10886             :   /* "View.MemoryView":539
   10887             :  *             info.suboffsets = self.view.suboffsets
   10888             :  *         else:
   10889             :  *             info.suboffsets = NULL             # <<<<<<<<<<<<<<
   10890             :  * 
   10891             :  *         if flags & PyBUF_FORMAT:
   10892             :  */
   10893             :   /*else*/ {
   10894           0 :     __pyx_v_info->suboffsets = NULL;
   10895             :   }
   10896           0 :   __pyx_L8:;
   10897             : 
   10898             :   /* "View.MemoryView":541
   10899             :  *             info.suboffsets = NULL
   10900             :  * 
   10901             :  *         if flags & PyBUF_FORMAT:             # <<<<<<<<<<<<<<
   10902             :  *             info.format = self.view.format
   10903             :  *         else:
   10904             :  */
   10905           0 :   __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
   10906           0 :   if (__pyx_t_1) {
   10907             : 
   10908             :     /* "View.MemoryView":542
   10909             :  * 
   10910             :  *         if flags & PyBUF_FORMAT:
   10911             :  *             info.format = self.view.format             # <<<<<<<<<<<<<<
   10912             :  *         else:
   10913             :  *             info.format = NULL
   10914             :  */
   10915           0 :     __pyx_t_4 = __pyx_v_self->view.format;
   10916           0 :     __pyx_v_info->format = __pyx_t_4;
   10917             : 
   10918             :     /* "View.MemoryView":541
   10919             :  *             info.suboffsets = NULL
   10920             :  * 
   10921             :  *         if flags & PyBUF_FORMAT:             # <<<<<<<<<<<<<<
   10922             :  *             info.format = self.view.format
   10923             :  *         else:
   10924             :  */
   10925           0 :     goto __pyx_L9;
   10926             :   }
   10927             : 
   10928             :   /* "View.MemoryView":544
   10929             :  *             info.format = self.view.format
   10930             :  *         else:
   10931             :  *             info.format = NULL             # <<<<<<<<<<<<<<
   10932             :  * 
   10933             :  *         info.buf = self.view.buf
   10934             :  */
   10935             :   /*else*/ {
   10936           0 :     __pyx_v_info->format = NULL;
   10937             :   }
   10938           0 :   __pyx_L9:;
   10939             : 
   10940             :   /* "View.MemoryView":546
   10941             :  *             info.format = NULL
   10942             :  * 
   10943             :  *         info.buf = self.view.buf             # <<<<<<<<<<<<<<
   10944             :  *         info.ndim = self.view.ndim
   10945             :  *         info.itemsize = self.view.itemsize
   10946             :  */
   10947           0 :   __pyx_t_5 = __pyx_v_self->view.buf;
   10948           0 :   __pyx_v_info->buf = __pyx_t_5;
   10949             : 
   10950             :   /* "View.MemoryView":547
   10951             :  * 
   10952             :  *         info.buf = self.view.buf
   10953             :  *         info.ndim = self.view.ndim             # <<<<<<<<<<<<<<
   10954             :  *         info.itemsize = self.view.itemsize
   10955             :  *         info.len = self.view.len
   10956             :  */
   10957           0 :   __pyx_t_6 = __pyx_v_self->view.ndim;
   10958           0 :   __pyx_v_info->ndim = __pyx_t_6;
   10959             : 
   10960             :   /* "View.MemoryView":548
   10961             :  *         info.buf = self.view.buf
   10962             :  *         info.ndim = self.view.ndim
   10963             :  *         info.itemsize = self.view.itemsize             # <<<<<<<<<<<<<<
   10964             :  *         info.len = self.view.len
   10965             :  *         info.readonly = self.view.readonly
   10966             :  */
   10967           0 :   __pyx_t_7 = __pyx_v_self->view.itemsize;
   10968           0 :   __pyx_v_info->itemsize = __pyx_t_7;
   10969             : 
   10970             :   /* "View.MemoryView":549
   10971             :  *         info.ndim = self.view.ndim
   10972             :  *         info.itemsize = self.view.itemsize
   10973             :  *         info.len = self.view.len             # <<<<<<<<<<<<<<
   10974             :  *         info.readonly = self.view.readonly
   10975             :  *         info.obj = self
   10976             :  */
   10977           0 :   __pyx_t_7 = __pyx_v_self->view.len;
   10978           0 :   __pyx_v_info->len = __pyx_t_7;
   10979             : 
   10980             :   /* "View.MemoryView":550
   10981             :  *         info.itemsize = self.view.itemsize
   10982             :  *         info.len = self.view.len
   10983             :  *         info.readonly = self.view.readonly             # <<<<<<<<<<<<<<
   10984             :  *         info.obj = self
   10985             :  * 
   10986             :  */
   10987           0 :   __pyx_t_1 = __pyx_v_self->view.readonly;
   10988           0 :   __pyx_v_info->readonly = __pyx_t_1;
   10989             : 
   10990             :   /* "View.MemoryView":551
   10991             :  *         info.len = self.view.len
   10992             :  *         info.readonly = self.view.readonly
   10993             :  *         info.obj = self             # <<<<<<<<<<<<<<
   10994             :  * 
   10995             :  * 
   10996             :  */
   10997           0 :   __Pyx_INCREF((PyObject *)__pyx_v_self);
   10998           0 :   __Pyx_GIVEREF((PyObject *)__pyx_v_self);
   10999           0 :   __Pyx_GOTREF(__pyx_v_info->obj);
   11000           0 :   __Pyx_DECREF(__pyx_v_info->obj);
   11001           0 :   __pyx_v_info->obj = ((PyObject *)__pyx_v_self);
   11002             : 
   11003             :   /* "View.MemoryView":521
   11004             :  *             itemp[i] = c
   11005             :  * 
   11006             :  *     @cname('getbuffer')             # <<<<<<<<<<<<<<
   11007             :  *     def __getbuffer__(self, Py_buffer *info, int flags):
   11008             :  *         if flags & PyBUF_WRITABLE and self.view.readonly:
   11009             :  */
   11010             : 
   11011             :   /* function exit code */
   11012           0 :   __pyx_r = 0;
   11013           0 :   goto __pyx_L0;
   11014           0 :   __pyx_L1_error:;
   11015           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   11016           0 :   __pyx_r = -1;
   11017           0 :   if (__pyx_v_info->obj != NULL) {
   11018           0 :     __Pyx_GOTREF(__pyx_v_info->obj);
   11019           0 :     __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
   11020             :   }
   11021           0 :   goto __pyx_L2;
   11022           0 :   __pyx_L0:;
   11023           0 :   if (__pyx_v_info->obj == Py_None) {
   11024           0 :     __Pyx_GOTREF(__pyx_v_info->obj);
   11025           0 :     __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
   11026             :   }
   11027           0 :   __pyx_L2:;
   11028             :   __Pyx_RefNannyFinishContext();
   11029             :   return __pyx_r;
   11030             : }
   11031             : 
   11032             : /* "View.MemoryView":554
   11033             :  * 
   11034             :  * 
   11035             :  *     @property             # <<<<<<<<<<<<<<
   11036             :  *     def T(self):
   11037             :  *         cdef _memoryviewslice result = memoryview_copy(self)
   11038             :  */
   11039             : 
   11040             : /* Python wrapper */
   11041             : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self); /*proto*/
   11042           0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self) {
   11043           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   11044           0 :   PyObject *__pyx_r = 0;
   11045             :   __Pyx_RefNannyDeclarations
   11046           0 :   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
   11047           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   11048           0 :   __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
   11049             : 
   11050             :   /* function exit code */
   11051           0 :   __Pyx_RefNannyFinishContext();
   11052           0 :   return __pyx_r;
   11053             : }
   11054             : 
   11055           0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
   11056           0 :   struct __pyx_memoryviewslice_obj *__pyx_v_result = 0;
   11057           0 :   PyObject *__pyx_r = NULL;
   11058             :   __Pyx_RefNannyDeclarations
   11059           0 :   PyObject *__pyx_t_1 = NULL;
   11060           0 :   int __pyx_t_2;
   11061           0 :   int __pyx_lineno = 0;
   11062           0 :   const char *__pyx_filename = NULL;
   11063           0 :   int __pyx_clineno = 0;
   11064           0 :   __Pyx_RefNannySetupContext("__get__", 1);
   11065             : 
   11066             :   /* "View.MemoryView":556
   11067             :  *     @property
   11068             :  *     def T(self):
   11069             :  *         cdef _memoryviewslice result = memoryview_copy(self)             # <<<<<<<<<<<<<<
   11070             :  *         transpose_memslice(&result.from_slice)
   11071             :  *         return result
   11072             :  */
   11073           0 :   __pyx_t_1 = __pyx_memoryview_copy_object(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 556, __pyx_L1_error)
   11074           0 :   __Pyx_GOTREF(__pyx_t_1);
   11075           0 :   if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_memoryviewslice_type))))) __PYX_ERR(1, 556, __pyx_L1_error)
   11076           0 :   __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_1);
   11077           0 :   __pyx_t_1 = 0;
   11078             : 
   11079             :   /* "View.MemoryView":557
   11080             :  *     def T(self):
   11081             :  *         cdef _memoryviewslice result = memoryview_copy(self)
   11082             :  *         transpose_memslice(&result.from_slice)             # <<<<<<<<<<<<<<
   11083             :  *         return result
   11084             :  * 
   11085             :  */
   11086           0 :   __pyx_t_2 = __pyx_memslice_transpose((&__pyx_v_result->from_slice)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 557, __pyx_L1_error)
   11087             : 
   11088             :   /* "View.MemoryView":558
   11089             :  *         cdef _memoryviewslice result = memoryview_copy(self)
   11090             :  *         transpose_memslice(&result.from_slice)
   11091             :  *         return result             # <<<<<<<<<<<<<<
   11092             :  * 
   11093             :  *     @property
   11094             :  */
   11095           0 :   __Pyx_XDECREF(__pyx_r);
   11096           0 :   __Pyx_INCREF((PyObject *)__pyx_v_result);
   11097           0 :   __pyx_r = ((PyObject *)__pyx_v_result);
   11098           0 :   goto __pyx_L0;
   11099             : 
   11100             :   /* "View.MemoryView":554
   11101             :  * 
   11102             :  * 
   11103             :  *     @property             # <<<<<<<<<<<<<<
   11104             :  *     def T(self):
   11105             :  *         cdef _memoryviewslice result = memoryview_copy(self)
   11106             :  */
   11107             : 
   11108             :   /* function exit code */
   11109           0 :   __pyx_L1_error:;
   11110           0 :   __Pyx_XDECREF(__pyx_t_1);
   11111           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   11112           0 :   __pyx_r = NULL;
   11113           0 :   __pyx_L0:;
   11114           0 :   __Pyx_XDECREF((PyObject *)__pyx_v_result);
   11115           0 :   __Pyx_XGIVEREF(__pyx_r);
   11116           0 :   __Pyx_RefNannyFinishContext();
   11117           0 :   return __pyx_r;
   11118             : }
   11119             : 
   11120             : /* "View.MemoryView":560
   11121             :  *         return result
   11122             :  * 
   11123             :  *     @property             # <<<<<<<<<<<<<<
   11124             :  *     def base(self):
   11125             :  *         return self._get_base()
   11126             :  */
   11127             : 
   11128             : /* Python wrapper */
   11129             : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self); /*proto*/
   11130           0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self) {
   11131           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   11132           0 :   PyObject *__pyx_r = 0;
   11133             :   __Pyx_RefNannyDeclarations
   11134           0 :   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
   11135           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   11136           0 :   __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
   11137             : 
   11138             :   /* function exit code */
   11139           0 :   __Pyx_RefNannyFinishContext();
   11140           0 :   return __pyx_r;
   11141             : }
   11142             : 
   11143           0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
   11144           0 :   PyObject *__pyx_r = NULL;
   11145             :   __Pyx_RefNannyDeclarations
   11146           0 :   PyObject *__pyx_t_1 = NULL;
   11147           0 :   int __pyx_lineno = 0;
   11148           0 :   const char *__pyx_filename = NULL;
   11149           0 :   int __pyx_clineno = 0;
   11150           0 :   __Pyx_RefNannySetupContext("__get__", 1);
   11151             : 
   11152             :   /* "View.MemoryView":562
   11153             :  *     @property
   11154             :  *     def base(self):
   11155             :  *         return self._get_base()             # <<<<<<<<<<<<<<
   11156             :  * 
   11157             :  *     cdef _get_base(self):
   11158             :  */
   11159           0 :   __Pyx_XDECREF(__pyx_r);
   11160           0 :   __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->_get_base(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 562, __pyx_L1_error)
   11161           0 :   __Pyx_GOTREF(__pyx_t_1);
   11162           0 :   __pyx_r = __pyx_t_1;
   11163           0 :   __pyx_t_1 = 0;
   11164           0 :   goto __pyx_L0;
   11165             : 
   11166             :   /* "View.MemoryView":560
   11167             :  *         return result
   11168             :  * 
   11169             :  *     @property             # <<<<<<<<<<<<<<
   11170             :  *     def base(self):
   11171             :  *         return self._get_base()
   11172             :  */
   11173             : 
   11174             :   /* function exit code */
   11175           0 :   __pyx_L1_error:;
   11176           0 :   __Pyx_XDECREF(__pyx_t_1);
   11177           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.base.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   11178           0 :   __pyx_r = NULL;
   11179           0 :   __pyx_L0:;
   11180           0 :   __Pyx_XGIVEREF(__pyx_r);
   11181           0 :   __Pyx_RefNannyFinishContext();
   11182           0 :   return __pyx_r;
   11183             : }
   11184             : 
   11185             : /* "View.MemoryView":564
   11186             :  *         return self._get_base()
   11187             :  * 
   11188             :  *     cdef _get_base(self):             # <<<<<<<<<<<<<<
   11189             :  *         return self.obj
   11190             :  * 
   11191             :  */
   11192             : 
   11193      136725 : static PyObject *__pyx_memoryview__get_base(struct __pyx_memoryview_obj *__pyx_v_self) {
   11194      136725 :   PyObject *__pyx_r = NULL;
   11195             :   __Pyx_RefNannyDeclarations
   11196      136725 :   __Pyx_RefNannySetupContext("_get_base", 1);
   11197             : 
   11198             :   /* "View.MemoryView":565
   11199             :  * 
   11200             :  *     cdef _get_base(self):
   11201             :  *         return self.obj             # <<<<<<<<<<<<<<
   11202             :  * 
   11203             :  *     @property
   11204             :  */
   11205      136725 :   __Pyx_XDECREF(__pyx_r);
   11206      136725 :   __Pyx_INCREF(__pyx_v_self->obj);
   11207      136725 :   __pyx_r = __pyx_v_self->obj;
   11208      136725 :   goto __pyx_L0;
   11209             : 
   11210             :   /* "View.MemoryView":564
   11211             :  *         return self._get_base()
   11212             :  * 
   11213             :  *     cdef _get_base(self):             # <<<<<<<<<<<<<<
   11214             :  *         return self.obj
   11215             :  * 
   11216             :  */
   11217             : 
   11218             :   /* function exit code */
   11219      136725 :   __pyx_L0:;
   11220      136725 :   __Pyx_XGIVEREF(__pyx_r);
   11221      136725 :   __Pyx_RefNannyFinishContext();
   11222      136725 :   return __pyx_r;
   11223             : }
   11224             : 
   11225             : /* "View.MemoryView":567
   11226             :  *         return self.obj
   11227             :  * 
   11228             :  *     @property             # <<<<<<<<<<<<<<
   11229             :  *     def shape(self):
   11230             :  *         return tuple([length for length in self.view.shape[:self.view.ndim]])
   11231             :  */
   11232             : 
   11233             : /* Python wrapper */
   11234             : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self); /*proto*/
   11235           0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self) {
   11236           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   11237           0 :   PyObject *__pyx_r = 0;
   11238             :   __Pyx_RefNannyDeclarations
   11239           0 :   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
   11240           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   11241           0 :   __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
   11242             : 
   11243             :   /* function exit code */
   11244           0 :   __Pyx_RefNannyFinishContext();
   11245           0 :   return __pyx_r;
   11246             : }
   11247             : 
   11248           0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
   11249           0 :   Py_ssize_t __pyx_7genexpr__pyx_v_length;
   11250           0 :   PyObject *__pyx_r = NULL;
   11251             :   __Pyx_RefNannyDeclarations
   11252           0 :   PyObject *__pyx_t_1 = NULL;
   11253           0 :   Py_ssize_t *__pyx_t_2;
   11254           0 :   Py_ssize_t *__pyx_t_3;
   11255           0 :   Py_ssize_t *__pyx_t_4;
   11256           0 :   PyObject *__pyx_t_5 = NULL;
   11257           0 :   int __pyx_lineno = 0;
   11258           0 :   const char *__pyx_filename = NULL;
   11259           0 :   int __pyx_clineno = 0;
   11260           0 :   __Pyx_RefNannySetupContext("__get__", 1);
   11261             : 
   11262             :   /* "View.MemoryView":569
   11263             :  *     @property
   11264             :  *     def shape(self):
   11265             :  *         return tuple([length for length in self.view.shape[:self.view.ndim]])             # <<<<<<<<<<<<<<
   11266             :  * 
   11267             :  *     @property
   11268             :  */
   11269           0 :   __Pyx_XDECREF(__pyx_r);
   11270             :   { /* enter inner scope */
   11271           0 :     __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 569, __pyx_L1_error)
   11272           0 :     __Pyx_GOTREF(__pyx_t_1);
   11273           0 :     __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim);
   11274           0 :     for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) {
   11275           0 :       __pyx_t_2 = __pyx_t_4;
   11276           0 :       __pyx_7genexpr__pyx_v_length = (__pyx_t_2[0]);
   11277           0 :       __pyx_t_5 = PyInt_FromSsize_t(__pyx_7genexpr__pyx_v_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 569, __pyx_L1_error)
   11278           0 :       __Pyx_GOTREF(__pyx_t_5);
   11279           0 :       if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(1, 569, __pyx_L1_error)
   11280           0 :       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   11281             :     }
   11282             :   } /* exit inner scope */
   11283           0 :   __pyx_t_5 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 569, __pyx_L1_error)
   11284           0 :   __Pyx_GOTREF(__pyx_t_5);
   11285           0 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   11286           0 :   __pyx_r = __pyx_t_5;
   11287           0 :   __pyx_t_5 = 0;
   11288           0 :   goto __pyx_L0;
   11289             : 
   11290             :   /* "View.MemoryView":567
   11291             :  *         return self.obj
   11292             :  * 
   11293             :  *     @property             # <<<<<<<<<<<<<<
   11294             :  *     def shape(self):
   11295             :  *         return tuple([length for length in self.view.shape[:self.view.ndim]])
   11296             :  */
   11297             : 
   11298             :   /* function exit code */
   11299           0 :   __pyx_L1_error:;
   11300           0 :   __Pyx_XDECREF(__pyx_t_1);
   11301           0 :   __Pyx_XDECREF(__pyx_t_5);
   11302           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.shape.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   11303           0 :   __pyx_r = NULL;
   11304           0 :   __pyx_L0:;
   11305           0 :   __Pyx_XGIVEREF(__pyx_r);
   11306           0 :   __Pyx_RefNannyFinishContext();
   11307           0 :   return __pyx_r;
   11308             : }
   11309             : 
   11310             : /* "View.MemoryView":571
   11311             :  *         return tuple([length for length in self.view.shape[:self.view.ndim]])
   11312             :  * 
   11313             :  *     @property             # <<<<<<<<<<<<<<
   11314             :  *     def strides(self):
   11315             :  *         if self.view.strides == NULL:
   11316             :  */
   11317             : 
   11318             : /* Python wrapper */
   11319             : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self); /*proto*/
   11320           0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self) {
   11321           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   11322           0 :   PyObject *__pyx_r = 0;
   11323             :   __Pyx_RefNannyDeclarations
   11324           0 :   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
   11325           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   11326           0 :   __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
   11327             : 
   11328             :   /* function exit code */
   11329           0 :   __Pyx_RefNannyFinishContext();
   11330           0 :   return __pyx_r;
   11331             : }
   11332             : 
   11333           0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
   11334           0 :   Py_ssize_t __pyx_8genexpr1__pyx_v_stride;
   11335           0 :   PyObject *__pyx_r = NULL;
   11336             :   __Pyx_RefNannyDeclarations
   11337           0 :   int __pyx_t_1;
   11338           0 :   PyObject *__pyx_t_2 = NULL;
   11339           0 :   Py_ssize_t *__pyx_t_3;
   11340           0 :   Py_ssize_t *__pyx_t_4;
   11341           0 :   Py_ssize_t *__pyx_t_5;
   11342           0 :   PyObject *__pyx_t_6 = NULL;
   11343           0 :   int __pyx_lineno = 0;
   11344           0 :   const char *__pyx_filename = NULL;
   11345           0 :   int __pyx_clineno = 0;
   11346           0 :   __Pyx_RefNannySetupContext("__get__", 1);
   11347             : 
   11348             :   /* "View.MemoryView":573
   11349             :  *     @property
   11350             :  *     def strides(self):
   11351             :  *         if self.view.strides == NULL:             # <<<<<<<<<<<<<<
   11352             :  * 
   11353             :  *             raise ValueError, "Buffer view does not expose strides"
   11354             :  */
   11355           0 :   __pyx_t_1 = (__pyx_v_self->view.strides == NULL);
   11356           0 :   if (unlikely(__pyx_t_1)) {
   11357             : 
   11358             :     /* "View.MemoryView":575
   11359             :  *         if self.view.strides == NULL:
   11360             :  * 
   11361             :  *             raise ValueError, "Buffer view does not expose strides"             # <<<<<<<<<<<<<<
   11362             :  * 
   11363             :  *         return tuple([stride for stride in self.view.strides[:self.view.ndim]])
   11364             :  */
   11365           0 :     __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Buffer_view_does_not_expose_stri, 0, 0);
   11366           0 :     __PYX_ERR(1, 575, __pyx_L1_error)
   11367             : 
   11368             :     /* "View.MemoryView":573
   11369             :  *     @property
   11370             :  *     def strides(self):
   11371             :  *         if self.view.strides == NULL:             # <<<<<<<<<<<<<<
   11372             :  * 
   11373             :  *             raise ValueError, "Buffer view does not expose strides"
   11374             :  */
   11375             :   }
   11376             : 
   11377             :   /* "View.MemoryView":577
   11378             :  *             raise ValueError, "Buffer view does not expose strides"
   11379             :  * 
   11380             :  *         return tuple([stride for stride in self.view.strides[:self.view.ndim]])             # <<<<<<<<<<<<<<
   11381             :  * 
   11382             :  *     @property
   11383             :  */
   11384           0 :   __Pyx_XDECREF(__pyx_r);
   11385             :   { /* enter inner scope */
   11386           0 :     __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 577, __pyx_L1_error)
   11387           0 :     __Pyx_GOTREF(__pyx_t_2);
   11388           0 :     __pyx_t_4 = (__pyx_v_self->view.strides + __pyx_v_self->view.ndim);
   11389           0 :     for (__pyx_t_5 = __pyx_v_self->view.strides; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) {
   11390           0 :       __pyx_t_3 = __pyx_t_5;
   11391           0 :       __pyx_8genexpr1__pyx_v_stride = (__pyx_t_3[0]);
   11392           0 :       __pyx_t_6 = PyInt_FromSsize_t(__pyx_8genexpr1__pyx_v_stride); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 577, __pyx_L1_error)
   11393           0 :       __Pyx_GOTREF(__pyx_t_6);
   11394           0 :       if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(1, 577, __pyx_L1_error)
   11395           0 :       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   11396             :     }
   11397             :   } /* exit inner scope */
   11398           0 :   __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 577, __pyx_L1_error)
   11399           0 :   __Pyx_GOTREF(__pyx_t_6);
   11400           0 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   11401           0 :   __pyx_r = __pyx_t_6;
   11402           0 :   __pyx_t_6 = 0;
   11403           0 :   goto __pyx_L0;
   11404             : 
   11405             :   /* "View.MemoryView":571
   11406             :  *         return tuple([length for length in self.view.shape[:self.view.ndim]])
   11407             :  * 
   11408             :  *     @property             # <<<<<<<<<<<<<<
   11409             :  *     def strides(self):
   11410             :  *         if self.view.strides == NULL:
   11411             :  */
   11412             : 
   11413             :   /* function exit code */
   11414           0 :   __pyx_L1_error:;
   11415           0 :   __Pyx_XDECREF(__pyx_t_2);
   11416           0 :   __Pyx_XDECREF(__pyx_t_6);
   11417           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.strides.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   11418           0 :   __pyx_r = NULL;
   11419           0 :   __pyx_L0:;
   11420           0 :   __Pyx_XGIVEREF(__pyx_r);
   11421           0 :   __Pyx_RefNannyFinishContext();
   11422           0 :   return __pyx_r;
   11423             : }
   11424             : 
   11425             : /* "View.MemoryView":579
   11426             :  *         return tuple([stride for stride in self.view.strides[:self.view.ndim]])
   11427             :  * 
   11428             :  *     @property             # <<<<<<<<<<<<<<
   11429             :  *     def suboffsets(self):
   11430             :  *         if self.view.suboffsets == NULL:
   11431             :  */
   11432             : 
   11433             : /* Python wrapper */
   11434             : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self); /*proto*/
   11435           0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self) {
   11436           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   11437           0 :   PyObject *__pyx_r = 0;
   11438             :   __Pyx_RefNannyDeclarations
   11439           0 :   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
   11440           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   11441           0 :   __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
   11442             : 
   11443             :   /* function exit code */
   11444           0 :   __Pyx_RefNannyFinishContext();
   11445           0 :   return __pyx_r;
   11446             : }
   11447             : 
   11448           0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
   11449           0 :   Py_ssize_t __pyx_8genexpr2__pyx_v_suboffset;
   11450           0 :   PyObject *__pyx_r = NULL;
   11451             :   __Pyx_RefNannyDeclarations
   11452           0 :   int __pyx_t_1;
   11453           0 :   PyObject *__pyx_t_2 = NULL;
   11454           0 :   Py_ssize_t *__pyx_t_3;
   11455           0 :   Py_ssize_t *__pyx_t_4;
   11456           0 :   Py_ssize_t *__pyx_t_5;
   11457           0 :   PyObject *__pyx_t_6 = NULL;
   11458           0 :   int __pyx_lineno = 0;
   11459           0 :   const char *__pyx_filename = NULL;
   11460           0 :   int __pyx_clineno = 0;
   11461           0 :   __Pyx_RefNannySetupContext("__get__", 1);
   11462             : 
   11463             :   /* "View.MemoryView":581
   11464             :  *     @property
   11465             :  *     def suboffsets(self):
   11466             :  *         if self.view.suboffsets == NULL:             # <<<<<<<<<<<<<<
   11467             :  *             return (-1,) * self.view.ndim
   11468             :  * 
   11469             :  */
   11470           0 :   __pyx_t_1 = (__pyx_v_self->view.suboffsets == NULL);
   11471           0 :   if (__pyx_t_1) {
   11472             : 
   11473             :     /* "View.MemoryView":582
   11474             :  *     def suboffsets(self):
   11475             :  *         if self.view.suboffsets == NULL:
   11476             :  *             return (-1,) * self.view.ndim             # <<<<<<<<<<<<<<
   11477             :  * 
   11478             :  *         return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]])
   11479             :  */
   11480           0 :     __Pyx_XDECREF(__pyx_r);
   11481           0 :     __pyx_t_2 = __Pyx_PySequence_Multiply(__pyx_tuple__4, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 582, __pyx_L1_error)
   11482           0 :     __Pyx_GOTREF(__pyx_t_2);
   11483           0 :     __pyx_r = __pyx_t_2;
   11484           0 :     __pyx_t_2 = 0;
   11485           0 :     goto __pyx_L0;
   11486             : 
   11487             :     /* "View.MemoryView":581
   11488             :  *     @property
   11489             :  *     def suboffsets(self):
   11490             :  *         if self.view.suboffsets == NULL:             # <<<<<<<<<<<<<<
   11491             :  *             return (-1,) * self.view.ndim
   11492             :  * 
   11493             :  */
   11494             :   }
   11495             : 
   11496             :   /* "View.MemoryView":584
   11497             :  *             return (-1,) * self.view.ndim
   11498             :  * 
   11499             :  *         return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]])             # <<<<<<<<<<<<<<
   11500             :  * 
   11501             :  *     @property
   11502             :  */
   11503           0 :   __Pyx_XDECREF(__pyx_r);
   11504             :   { /* enter inner scope */
   11505           0 :     __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 584, __pyx_L1_error)
   11506           0 :     __Pyx_GOTREF(__pyx_t_2);
   11507           0 :     __pyx_t_4 = (__pyx_v_self->view.suboffsets + __pyx_v_self->view.ndim);
   11508           0 :     for (__pyx_t_5 = __pyx_v_self->view.suboffsets; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) {
   11509           0 :       __pyx_t_3 = __pyx_t_5;
   11510           0 :       __pyx_8genexpr2__pyx_v_suboffset = (__pyx_t_3[0]);
   11511           0 :       __pyx_t_6 = PyInt_FromSsize_t(__pyx_8genexpr2__pyx_v_suboffset); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 584, __pyx_L1_error)
   11512           0 :       __Pyx_GOTREF(__pyx_t_6);
   11513           0 :       if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(1, 584, __pyx_L1_error)
   11514           0 :       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   11515             :     }
   11516             :   } /* exit inner scope */
   11517           0 :   __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 584, __pyx_L1_error)
   11518           0 :   __Pyx_GOTREF(__pyx_t_6);
   11519           0 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   11520           0 :   __pyx_r = __pyx_t_6;
   11521           0 :   __pyx_t_6 = 0;
   11522           0 :   goto __pyx_L0;
   11523             : 
   11524             :   /* "View.MemoryView":579
   11525             :  *         return tuple([stride for stride in self.view.strides[:self.view.ndim]])
   11526             :  * 
   11527             :  *     @property             # <<<<<<<<<<<<<<
   11528             :  *     def suboffsets(self):
   11529             :  *         if self.view.suboffsets == NULL:
   11530             :  */
   11531             : 
   11532             :   /* function exit code */
   11533           0 :   __pyx_L1_error:;
   11534           0 :   __Pyx_XDECREF(__pyx_t_2);
   11535           0 :   __Pyx_XDECREF(__pyx_t_6);
   11536           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.suboffsets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   11537           0 :   __pyx_r = NULL;
   11538           0 :   __pyx_L0:;
   11539           0 :   __Pyx_XGIVEREF(__pyx_r);
   11540           0 :   __Pyx_RefNannyFinishContext();
   11541           0 :   return __pyx_r;
   11542             : }
   11543             : 
   11544             : /* "View.MemoryView":586
   11545             :  *         return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]])
   11546             :  * 
   11547             :  *     @property             # <<<<<<<<<<<<<<
   11548             :  *     def ndim(self):
   11549             :  *         return self.view.ndim
   11550             :  */
   11551             : 
   11552             : /* Python wrapper */
   11553             : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self); /*proto*/
   11554           0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self) {
   11555           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   11556           0 :   PyObject *__pyx_r = 0;
   11557             :   __Pyx_RefNannyDeclarations
   11558           0 :   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
   11559           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   11560           0 :   __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
   11561             : 
   11562             :   /* function exit code */
   11563           0 :   __Pyx_RefNannyFinishContext();
   11564           0 :   return __pyx_r;
   11565             : }
   11566             : 
   11567           0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
   11568           0 :   PyObject *__pyx_r = NULL;
   11569             :   __Pyx_RefNannyDeclarations
   11570           0 :   PyObject *__pyx_t_1 = NULL;
   11571           0 :   int __pyx_lineno = 0;
   11572           0 :   const char *__pyx_filename = NULL;
   11573           0 :   int __pyx_clineno = 0;
   11574           0 :   __Pyx_RefNannySetupContext("__get__", 1);
   11575             : 
   11576             :   /* "View.MemoryView":588
   11577             :  *     @property
   11578             :  *     def ndim(self):
   11579             :  *         return self.view.ndim             # <<<<<<<<<<<<<<
   11580             :  * 
   11581             :  *     @property
   11582             :  */
   11583           0 :   __Pyx_XDECREF(__pyx_r);
   11584           0 :   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 588, __pyx_L1_error)
   11585           0 :   __Pyx_GOTREF(__pyx_t_1);
   11586           0 :   __pyx_r = __pyx_t_1;
   11587           0 :   __pyx_t_1 = 0;
   11588           0 :   goto __pyx_L0;
   11589             : 
   11590             :   /* "View.MemoryView":586
   11591             :  *         return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]])
   11592             :  * 
   11593             :  *     @property             # <<<<<<<<<<<<<<
   11594             :  *     def ndim(self):
   11595             :  *         return self.view.ndim
   11596             :  */
   11597             : 
   11598             :   /* function exit code */
   11599           0 :   __pyx_L1_error:;
   11600           0 :   __Pyx_XDECREF(__pyx_t_1);
   11601           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.ndim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   11602           0 :   __pyx_r = NULL;
   11603           0 :   __pyx_L0:;
   11604           0 :   __Pyx_XGIVEREF(__pyx_r);
   11605           0 :   __Pyx_RefNannyFinishContext();
   11606           0 :   return __pyx_r;
   11607             : }
   11608             : 
   11609             : /* "View.MemoryView":590
   11610             :  *         return self.view.ndim
   11611             :  * 
   11612             :  *     @property             # <<<<<<<<<<<<<<
   11613             :  *     def itemsize(self):
   11614             :  *         return self.view.itemsize
   11615             :  */
   11616             : 
   11617             : /* Python wrapper */
   11618             : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self); /*proto*/
   11619           0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self) {
   11620           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   11621           0 :   PyObject *__pyx_r = 0;
   11622             :   __Pyx_RefNannyDeclarations
   11623           0 :   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
   11624           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   11625           0 :   __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
   11626             : 
   11627             :   /* function exit code */
   11628           0 :   __Pyx_RefNannyFinishContext();
   11629           0 :   return __pyx_r;
   11630             : }
   11631             : 
   11632           0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
   11633           0 :   PyObject *__pyx_r = NULL;
   11634             :   __Pyx_RefNannyDeclarations
   11635           0 :   PyObject *__pyx_t_1 = NULL;
   11636           0 :   int __pyx_lineno = 0;
   11637           0 :   const char *__pyx_filename = NULL;
   11638           0 :   int __pyx_clineno = 0;
   11639           0 :   __Pyx_RefNannySetupContext("__get__", 1);
   11640             : 
   11641             :   /* "View.MemoryView":592
   11642             :  *     @property
   11643             :  *     def itemsize(self):
   11644             :  *         return self.view.itemsize             # <<<<<<<<<<<<<<
   11645             :  * 
   11646             :  *     @property
   11647             :  */
   11648           0 :   __Pyx_XDECREF(__pyx_r);
   11649           0 :   __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 592, __pyx_L1_error)
   11650           0 :   __Pyx_GOTREF(__pyx_t_1);
   11651           0 :   __pyx_r = __pyx_t_1;
   11652           0 :   __pyx_t_1 = 0;
   11653           0 :   goto __pyx_L0;
   11654             : 
   11655             :   /* "View.MemoryView":590
   11656             :  *         return self.view.ndim
   11657             :  * 
   11658             :  *     @property             # <<<<<<<<<<<<<<
   11659             :  *     def itemsize(self):
   11660             :  *         return self.view.itemsize
   11661             :  */
   11662             : 
   11663             :   /* function exit code */
   11664           0 :   __pyx_L1_error:;
   11665           0 :   __Pyx_XDECREF(__pyx_t_1);
   11666           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.itemsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   11667           0 :   __pyx_r = NULL;
   11668           0 :   __pyx_L0:;
   11669           0 :   __Pyx_XGIVEREF(__pyx_r);
   11670           0 :   __Pyx_RefNannyFinishContext();
   11671           0 :   return __pyx_r;
   11672             : }
   11673             : 
   11674             : /* "View.MemoryView":594
   11675             :  *         return self.view.itemsize
   11676             :  * 
   11677             :  *     @property             # <<<<<<<<<<<<<<
   11678             :  *     def nbytes(self):
   11679             :  *         return self.size * self.view.itemsize
   11680             :  */
   11681             : 
   11682             : /* Python wrapper */
   11683             : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self); /*proto*/
   11684           0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self) {
   11685           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   11686           0 :   PyObject *__pyx_r = 0;
   11687             :   __Pyx_RefNannyDeclarations
   11688           0 :   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
   11689           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   11690           0 :   __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
   11691             : 
   11692             :   /* function exit code */
   11693           0 :   __Pyx_RefNannyFinishContext();
   11694           0 :   return __pyx_r;
   11695             : }
   11696             : 
   11697           0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
   11698           0 :   PyObject *__pyx_r = NULL;
   11699             :   __Pyx_RefNannyDeclarations
   11700           0 :   PyObject *__pyx_t_1 = NULL;
   11701           0 :   PyObject *__pyx_t_2 = NULL;
   11702           0 :   PyObject *__pyx_t_3 = NULL;
   11703           0 :   int __pyx_lineno = 0;
   11704           0 :   const char *__pyx_filename = NULL;
   11705           0 :   int __pyx_clineno = 0;
   11706           0 :   __Pyx_RefNannySetupContext("__get__", 1);
   11707             : 
   11708             :   /* "View.MemoryView":596
   11709             :  *     @property
   11710             :  *     def nbytes(self):
   11711             :  *         return self.size * self.view.itemsize             # <<<<<<<<<<<<<<
   11712             :  * 
   11713             :  *     @property
   11714             :  */
   11715           0 :   __Pyx_XDECREF(__pyx_r);
   11716           0 :   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 596, __pyx_L1_error)
   11717           0 :   __Pyx_GOTREF(__pyx_t_1);
   11718           0 :   __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 596, __pyx_L1_error)
   11719           0 :   __Pyx_GOTREF(__pyx_t_2);
   11720           0 :   __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 596, __pyx_L1_error)
   11721           0 :   __Pyx_GOTREF(__pyx_t_3);
   11722           0 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   11723           0 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   11724           0 :   __pyx_r = __pyx_t_3;
   11725           0 :   __pyx_t_3 = 0;
   11726           0 :   goto __pyx_L0;
   11727             : 
   11728             :   /* "View.MemoryView":594
   11729             :  *         return self.view.itemsize
   11730             :  * 
   11731             :  *     @property             # <<<<<<<<<<<<<<
   11732             :  *     def nbytes(self):
   11733             :  *         return self.size * self.view.itemsize
   11734             :  */
   11735             : 
   11736             :   /* function exit code */
   11737           0 :   __pyx_L1_error:;
   11738           0 :   __Pyx_XDECREF(__pyx_t_1);
   11739           0 :   __Pyx_XDECREF(__pyx_t_2);
   11740           0 :   __Pyx_XDECREF(__pyx_t_3);
   11741           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.nbytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   11742           0 :   __pyx_r = NULL;
   11743           0 :   __pyx_L0:;
   11744           0 :   __Pyx_XGIVEREF(__pyx_r);
   11745           0 :   __Pyx_RefNannyFinishContext();
   11746           0 :   return __pyx_r;
   11747             : }
   11748             : 
   11749             : /* "View.MemoryView":598
   11750             :  *         return self.size * self.view.itemsize
   11751             :  * 
   11752             :  *     @property             # <<<<<<<<<<<<<<
   11753             :  *     def size(self):
   11754             :  *         if self._size is None:
   11755             :  */
   11756             : 
   11757             : /* Python wrapper */
   11758             : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self); /*proto*/
   11759           0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self) {
   11760           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   11761           0 :   PyObject *__pyx_r = 0;
   11762             :   __Pyx_RefNannyDeclarations
   11763           0 :   __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
   11764           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   11765           0 :   __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
   11766             : 
   11767             :   /* function exit code */
   11768           0 :   __Pyx_RefNannyFinishContext();
   11769           0 :   return __pyx_r;
   11770             : }
   11771             : 
   11772           0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
   11773           0 :   PyObject *__pyx_v_result = NULL;
   11774           0 :   PyObject *__pyx_v_length = NULL;
   11775           0 :   PyObject *__pyx_r = NULL;
   11776             :   __Pyx_RefNannyDeclarations
   11777           0 :   int __pyx_t_1;
   11778           0 :   Py_ssize_t *__pyx_t_2;
   11779           0 :   Py_ssize_t *__pyx_t_3;
   11780           0 :   Py_ssize_t *__pyx_t_4;
   11781           0 :   PyObject *__pyx_t_5 = NULL;
   11782           0 :   int __pyx_lineno = 0;
   11783           0 :   const char *__pyx_filename = NULL;
   11784           0 :   int __pyx_clineno = 0;
   11785           0 :   __Pyx_RefNannySetupContext("__get__", 1);
   11786             : 
   11787             :   /* "View.MemoryView":600
   11788             :  *     @property
   11789             :  *     def size(self):
   11790             :  *         if self._size is None:             # <<<<<<<<<<<<<<
   11791             :  *             result = 1
   11792             :  * 
   11793             :  */
   11794           0 :   __pyx_t_1 = (__pyx_v_self->_size == Py_None);
   11795           0 :   if (__pyx_t_1) {
   11796             : 
   11797             :     /* "View.MemoryView":601
   11798             :  *     def size(self):
   11799             :  *         if self._size is None:
   11800             :  *             result = 1             # <<<<<<<<<<<<<<
   11801             :  * 
   11802             :  *             for length in self.view.shape[:self.view.ndim]:
   11803             :  */
   11804           0 :     __Pyx_INCREF(__pyx_int_1);
   11805           0 :     __pyx_v_result = __pyx_int_1;
   11806             : 
   11807             :     /* "View.MemoryView":603
   11808             :  *             result = 1
   11809             :  * 
   11810             :  *             for length in self.view.shape[:self.view.ndim]:             # <<<<<<<<<<<<<<
   11811             :  *                 result *= length
   11812             :  * 
   11813             :  */
   11814           0 :     __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim);
   11815           0 :     for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) {
   11816           0 :       __pyx_t_2 = __pyx_t_4;
   11817           0 :       __pyx_t_5 = PyInt_FromSsize_t((__pyx_t_2[0])); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 603, __pyx_L1_error)
   11818           0 :       __Pyx_GOTREF(__pyx_t_5);
   11819           0 :       __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_5);
   11820           0 :       __pyx_t_5 = 0;
   11821             : 
   11822             :       /* "View.MemoryView":604
   11823             :  * 
   11824             :  *             for length in self.view.shape[:self.view.ndim]:
   11825             :  *                 result *= length             # <<<<<<<<<<<<<<
   11826             :  * 
   11827             :  *             self._size = result
   11828             :  */
   11829           0 :       __pyx_t_5 = PyNumber_InPlaceMultiply(__pyx_v_result, __pyx_v_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 604, __pyx_L1_error)
   11830           0 :       __Pyx_GOTREF(__pyx_t_5);
   11831           0 :       __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_5);
   11832           0 :       __pyx_t_5 = 0;
   11833             :     }
   11834             : 
   11835             :     /* "View.MemoryView":606
   11836             :  *                 result *= length
   11837             :  * 
   11838             :  *             self._size = result             # <<<<<<<<<<<<<<
   11839             :  * 
   11840             :  *         return self._size
   11841             :  */
   11842           0 :     __Pyx_INCREF(__pyx_v_result);
   11843           0 :     __Pyx_GIVEREF(__pyx_v_result);
   11844           0 :     __Pyx_GOTREF(__pyx_v_self->_size);
   11845           0 :     __Pyx_DECREF(__pyx_v_self->_size);
   11846           0 :     __pyx_v_self->_size = __pyx_v_result;
   11847             : 
   11848             :     /* "View.MemoryView":600
   11849             :  *     @property
   11850             :  *     def size(self):
   11851             :  *         if self._size is None:             # <<<<<<<<<<<<<<
   11852             :  *             result = 1
   11853             :  * 
   11854             :  */
   11855             :   }
   11856             : 
   11857             :   /* "View.MemoryView":608
   11858             :  *             self._size = result
   11859             :  * 
   11860             :  *         return self._size             # <<<<<<<<<<<<<<
   11861             :  * 
   11862             :  *     def __len__(self):
   11863             :  */
   11864           0 :   __Pyx_XDECREF(__pyx_r);
   11865           0 :   __Pyx_INCREF(__pyx_v_self->_size);
   11866           0 :   __pyx_r = __pyx_v_self->_size;
   11867           0 :   goto __pyx_L0;
   11868             : 
   11869             :   /* "View.MemoryView":598
   11870             :  *         return self.size * self.view.itemsize
   11871             :  * 
   11872             :  *     @property             # <<<<<<<<<<<<<<
   11873             :  *     def size(self):
   11874             :  *         if self._size is None:
   11875             :  */
   11876             : 
   11877             :   /* function exit code */
   11878           0 :   __pyx_L1_error:;
   11879           0 :   __Pyx_XDECREF(__pyx_t_5);
   11880           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   11881           0 :   __pyx_r = NULL;
   11882           0 :   __pyx_L0:;
   11883           0 :   __Pyx_XDECREF(__pyx_v_result);
   11884           0 :   __Pyx_XDECREF(__pyx_v_length);
   11885           0 :   __Pyx_XGIVEREF(__pyx_r);
   11886           0 :   __Pyx_RefNannyFinishContext();
   11887           0 :   return __pyx_r;
   11888             : }
   11889             : 
   11890             : /* "View.MemoryView":610
   11891             :  *         return self._size
   11892             :  * 
   11893             :  *     def __len__(self):             # <<<<<<<<<<<<<<
   11894             :  *         if self.view.ndim >= 1:
   11895             :  *             return self.view.shape[0]
   11896             :  */
   11897             : 
   11898             : /* Python wrapper */
   11899             : static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self); /*proto*/
   11900           0 : static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self) {
   11901           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   11902           0 :   Py_ssize_t __pyx_r;
   11903             :   __Pyx_RefNannyDeclarations
   11904           0 :   __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
   11905           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   11906           0 :   __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(((struct __pyx_memoryview_obj *)__pyx_v_self));
   11907             : 
   11908             :   /* function exit code */
   11909           0 :   __Pyx_RefNannyFinishContext();
   11910           0 :   return __pyx_r;
   11911             : }
   11912             : 
   11913           0 : static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self) {
   11914           0 :   Py_ssize_t __pyx_r;
   11915           0 :   int __pyx_t_1;
   11916             : 
   11917             :   /* "View.MemoryView":611
   11918             :  * 
   11919             :  *     def __len__(self):
   11920             :  *         if self.view.ndim >= 1:             # <<<<<<<<<<<<<<
   11921             :  *             return self.view.shape[0]
   11922             :  * 
   11923             :  */
   11924           0 :   __pyx_t_1 = (__pyx_v_self->view.ndim >= 1);
   11925           0 :   if (__pyx_t_1) {
   11926             : 
   11927             :     /* "View.MemoryView":612
   11928             :  *     def __len__(self):
   11929             :  *         if self.view.ndim >= 1:
   11930             :  *             return self.view.shape[0]             # <<<<<<<<<<<<<<
   11931             :  * 
   11932             :  *         return 0
   11933             :  */
   11934           0 :     __pyx_r = (__pyx_v_self->view.shape[0]);
   11935           0 :     goto __pyx_L0;
   11936             : 
   11937             :     /* "View.MemoryView":611
   11938             :  * 
   11939             :  *     def __len__(self):
   11940             :  *         if self.view.ndim >= 1:             # <<<<<<<<<<<<<<
   11941             :  *             return self.view.shape[0]
   11942             :  * 
   11943             :  */
   11944             :   }
   11945             : 
   11946             :   /* "View.MemoryView":614
   11947             :  *             return self.view.shape[0]
   11948             :  * 
   11949             :  *         return 0             # <<<<<<<<<<<<<<
   11950             :  * 
   11951             :  *     def __repr__(self):
   11952             :  */
   11953           0 :   __pyx_r = 0;
   11954           0 :   goto __pyx_L0;
   11955             : 
   11956             :   /* "View.MemoryView":610
   11957             :  *         return self._size
   11958             :  * 
   11959             :  *     def __len__(self):             # <<<<<<<<<<<<<<
   11960             :  *         if self.view.ndim >= 1:
   11961             :  *             return self.view.shape[0]
   11962             :  */
   11963             : 
   11964             :   /* function exit code */
   11965           0 :   __pyx_L0:;
   11966           0 :   return __pyx_r;
   11967             : }
   11968             : 
   11969             : /* "View.MemoryView":616
   11970             :  *         return 0
   11971             :  * 
   11972             :  *     def __repr__(self):             # <<<<<<<<<<<<<<
   11973             :  *         return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__,
   11974             :  *                                                id(self))
   11975             :  */
   11976             : 
   11977             : /* Python wrapper */
   11978             : static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self); /*proto*/
   11979           0 : static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self) {
   11980           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   11981           0 :   PyObject *__pyx_r = 0;
   11982             :   __Pyx_RefNannyDeclarations
   11983           0 :   __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
   11984           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   11985           0 :   __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(((struct __pyx_memoryview_obj *)__pyx_v_self));
   11986             : 
   11987             :   /* function exit code */
   11988           0 :   __Pyx_RefNannyFinishContext();
   11989           0 :   return __pyx_r;
   11990             : }
   11991             : 
   11992           0 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self) {
   11993           0 :   PyObject *__pyx_r = NULL;
   11994             :   __Pyx_RefNannyDeclarations
   11995           0 :   PyObject *__pyx_t_1 = NULL;
   11996           0 :   PyObject *__pyx_t_2 = NULL;
   11997           0 :   PyObject *__pyx_t_3 = NULL;
   11998           0 :   int __pyx_lineno = 0;
   11999           0 :   const char *__pyx_filename = NULL;
   12000           0 :   int __pyx_clineno = 0;
   12001           0 :   __Pyx_RefNannySetupContext("__repr__", 1);
   12002             : 
   12003             :   /* "View.MemoryView":617
   12004             :  * 
   12005             :  *     def __repr__(self):
   12006             :  *         return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__,             # <<<<<<<<<<<<<<
   12007             :  *                                                id(self))
   12008             :  * 
   12009             :  */
   12010           0 :   __Pyx_XDECREF(__pyx_r);
   12011           0 :   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 617, __pyx_L1_error)
   12012           0 :   __Pyx_GOTREF(__pyx_t_1);
   12013           0 :   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 617, __pyx_L1_error)
   12014           0 :   __Pyx_GOTREF(__pyx_t_2);
   12015           0 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   12016           0 :   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 617, __pyx_L1_error)
   12017           0 :   __Pyx_GOTREF(__pyx_t_1);
   12018           0 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   12019             : 
   12020             :   /* "View.MemoryView":618
   12021             :  *     def __repr__(self):
   12022             :  *         return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__,
   12023             :  *                                                id(self))             # <<<<<<<<<<<<<<
   12024             :  * 
   12025             :  *     def __str__(self):
   12026             :  */
   12027           0 :   __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 618, __pyx_L1_error)
   12028           0 :   __Pyx_GOTREF(__pyx_t_2);
   12029             : 
   12030             :   /* "View.MemoryView":617
   12031             :  * 
   12032             :  *     def __repr__(self):
   12033             :  *         return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__,             # <<<<<<<<<<<<<<
   12034             :  *                                                id(self))
   12035             :  * 
   12036             :  */
   12037           0 :   __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 617, __pyx_L1_error)
   12038           0 :   __Pyx_GOTREF(__pyx_t_3);
   12039           0 :   __Pyx_GIVEREF(__pyx_t_1);
   12040           0 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(1, 617, __pyx_L1_error);
   12041           0 :   __Pyx_GIVEREF(__pyx_t_2);
   12042           0 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(1, 617, __pyx_L1_error);
   12043           0 :   __pyx_t_1 = 0;
   12044           0 :   __pyx_t_2 = 0;
   12045           0 :   __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 617, __pyx_L1_error)
   12046           0 :   __Pyx_GOTREF(__pyx_t_2);
   12047           0 :   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   12048           0 :   __pyx_r = __pyx_t_2;
   12049           0 :   __pyx_t_2 = 0;
   12050           0 :   goto __pyx_L0;
   12051             : 
   12052             :   /* "View.MemoryView":616
   12053             :  *         return 0
   12054             :  * 
   12055             :  *     def __repr__(self):             # <<<<<<<<<<<<<<
   12056             :  *         return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__,
   12057             :  *                                                id(self))
   12058             :  */
   12059             : 
   12060             :   /* function exit code */
   12061           0 :   __pyx_L1_error:;
   12062           0 :   __Pyx_XDECREF(__pyx_t_1);
   12063           0 :   __Pyx_XDECREF(__pyx_t_2);
   12064           0 :   __Pyx_XDECREF(__pyx_t_3);
   12065           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   12066           0 :   __pyx_r = NULL;
   12067           0 :   __pyx_L0:;
   12068           0 :   __Pyx_XGIVEREF(__pyx_r);
   12069           0 :   __Pyx_RefNannyFinishContext();
   12070           0 :   return __pyx_r;
   12071             : }
   12072             : 
   12073             : /* "View.MemoryView":620
   12074             :  *                                                id(self))
   12075             :  * 
   12076             :  *     def __str__(self):             # <<<<<<<<<<<<<<
   12077             :  *         return "<MemoryView of %r object>" % (self.base.__class__.__name__,)
   12078             :  * 
   12079             :  */
   12080             : 
   12081             : /* Python wrapper */
   12082             : static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self); /*proto*/
   12083           0 : static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self) {
   12084           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   12085           0 :   PyObject *__pyx_r = 0;
   12086             :   __Pyx_RefNannyDeclarations
   12087           0 :   __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
   12088           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   12089           0 :   __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(((struct __pyx_memoryview_obj *)__pyx_v_self));
   12090             : 
   12091             :   /* function exit code */
   12092           0 :   __Pyx_RefNannyFinishContext();
   12093           0 :   return __pyx_r;
   12094             : }
   12095             : 
   12096           0 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self) {
   12097           0 :   PyObject *__pyx_r = NULL;
   12098             :   __Pyx_RefNannyDeclarations
   12099           0 :   PyObject *__pyx_t_1 = NULL;
   12100           0 :   PyObject *__pyx_t_2 = NULL;
   12101           0 :   int __pyx_lineno = 0;
   12102           0 :   const char *__pyx_filename = NULL;
   12103           0 :   int __pyx_clineno = 0;
   12104           0 :   __Pyx_RefNannySetupContext("__str__", 1);
   12105             : 
   12106             :   /* "View.MemoryView":621
   12107             :  * 
   12108             :  *     def __str__(self):
   12109             :  *         return "<MemoryView of %r object>" % (self.base.__class__.__name__,)             # <<<<<<<<<<<<<<
   12110             :  * 
   12111             :  * 
   12112             :  */
   12113           0 :   __Pyx_XDECREF(__pyx_r);
   12114           0 :   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 621, __pyx_L1_error)
   12115           0 :   __Pyx_GOTREF(__pyx_t_1);
   12116           0 :   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 621, __pyx_L1_error)
   12117           0 :   __Pyx_GOTREF(__pyx_t_2);
   12118           0 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   12119           0 :   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 621, __pyx_L1_error)
   12120           0 :   __Pyx_GOTREF(__pyx_t_1);
   12121           0 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   12122           0 :   __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 621, __pyx_L1_error)
   12123           0 :   __Pyx_GOTREF(__pyx_t_2);
   12124           0 :   __Pyx_GIVEREF(__pyx_t_1);
   12125           0 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(1, 621, __pyx_L1_error);
   12126           0 :   __pyx_t_1 = 0;
   12127           0 :   __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_object, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 621, __pyx_L1_error)
   12128           0 :   __Pyx_GOTREF(__pyx_t_1);
   12129           0 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   12130           0 :   __pyx_r = __pyx_t_1;
   12131           0 :   __pyx_t_1 = 0;
   12132           0 :   goto __pyx_L0;
   12133             : 
   12134             :   /* "View.MemoryView":620
   12135             :  *                                                id(self))
   12136             :  * 
   12137             :  *     def __str__(self):             # <<<<<<<<<<<<<<
   12138             :  *         return "<MemoryView of %r object>" % (self.base.__class__.__name__,)
   12139             :  * 
   12140             :  */
   12141             : 
   12142             :   /* function exit code */
   12143           0 :   __pyx_L1_error:;
   12144           0 :   __Pyx_XDECREF(__pyx_t_1);
   12145           0 :   __Pyx_XDECREF(__pyx_t_2);
   12146           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   12147           0 :   __pyx_r = NULL;
   12148           0 :   __pyx_L0:;
   12149           0 :   __Pyx_XGIVEREF(__pyx_r);
   12150           0 :   __Pyx_RefNannyFinishContext();
   12151           0 :   return __pyx_r;
   12152             : }
   12153             : 
   12154             : /* "View.MemoryView":624
   12155             :  * 
   12156             :  * 
   12157             :  *     def is_c_contig(self):             # <<<<<<<<<<<<<<
   12158             :  *         cdef __Pyx_memviewslice *mslice
   12159             :  *         cdef __Pyx_memviewslice tmp
   12160             :  */
   12161             : 
   12162             : /* Python wrapper */
   12163             : static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, 
   12164             : #if CYTHON_METH_FASTCALL
   12165             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   12166             : #else
   12167             : PyObject *__pyx_args, PyObject *__pyx_kwds
   12168             : #endif
   12169             : ); /*proto*/
   12170           0 : static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, 
   12171             : #if CYTHON_METH_FASTCALL
   12172             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   12173             : #else
   12174             : PyObject *__pyx_args, PyObject *__pyx_kwds
   12175             : #endif
   12176             : ) {
   12177             :   #if !CYTHON_METH_FASTCALL
   12178             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   12179             :   #endif
   12180           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   12181           0 :   PyObject *__pyx_r = 0;
   12182             :   __Pyx_RefNannyDeclarations
   12183           0 :   __Pyx_RefNannySetupContext("is_c_contig (wrapper)", 0);
   12184             :   #if !CYTHON_METH_FASTCALL
   12185             :   #if CYTHON_ASSUME_SAFE_MACROS
   12186             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   12187             :   #else
   12188             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   12189             :   #endif
   12190             :   #endif
   12191           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   12192           0 :   if (unlikely(__pyx_nargs > 0)) {
   12193           0 :     __Pyx_RaiseArgtupleInvalid("is_c_contig", 1, 0, 0, __pyx_nargs); return NULL;}
   12194           0 :   if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "is_c_contig", 0))) return NULL;
   12195           0 :   __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(((struct __pyx_memoryview_obj *)__pyx_v_self));
   12196             : 
   12197             :   /* function exit code */
   12198           0 :   __Pyx_RefNannyFinishContext();
   12199           0 :   return __pyx_r;
   12200             : }
   12201             : 
   12202           0 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self) {
   12203           0 :   __Pyx_memviewslice *__pyx_v_mslice;
   12204           0 :   __Pyx_memviewslice __pyx_v_tmp;
   12205           0 :   PyObject *__pyx_r = NULL;
   12206             :   __Pyx_RefNannyDeclarations
   12207           0 :   __Pyx_memviewslice *__pyx_t_1;
   12208           0 :   PyObject *__pyx_t_2 = NULL;
   12209           0 :   int __pyx_lineno = 0;
   12210           0 :   const char *__pyx_filename = NULL;
   12211           0 :   int __pyx_clineno = 0;
   12212           0 :   __Pyx_RefNannySetupContext("is_c_contig", 1);
   12213             : 
   12214             :   /* "View.MemoryView":627
   12215             :  *         cdef __Pyx_memviewslice *mslice
   12216             :  *         cdef __Pyx_memviewslice tmp
   12217             :  *         mslice = get_slice_from_memview(self, &tmp)             # <<<<<<<<<<<<<<
   12218             :  *         return slice_is_contig(mslice[0], 'C', self.view.ndim)
   12219             :  * 
   12220             :  */
   12221           0 :   __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(1, 627, __pyx_L1_error)
   12222           0 :   __pyx_v_mslice = __pyx_t_1;
   12223             : 
   12224             :   /* "View.MemoryView":628
   12225             :  *         cdef __Pyx_memviewslice tmp
   12226             :  *         mslice = get_slice_from_memview(self, &tmp)
   12227             :  *         return slice_is_contig(mslice[0], 'C', self.view.ndim)             # <<<<<<<<<<<<<<
   12228             :  * 
   12229             :  *     def is_f_contig(self):
   12230             :  */
   12231           0 :   __Pyx_XDECREF(__pyx_r);
   12232           0 :   __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'C', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 628, __pyx_L1_error)
   12233           0 :   __Pyx_GOTREF(__pyx_t_2);
   12234           0 :   __pyx_r = __pyx_t_2;
   12235           0 :   __pyx_t_2 = 0;
   12236           0 :   goto __pyx_L0;
   12237             : 
   12238             :   /* "View.MemoryView":624
   12239             :  * 
   12240             :  * 
   12241             :  *     def is_c_contig(self):             # <<<<<<<<<<<<<<
   12242             :  *         cdef __Pyx_memviewslice *mslice
   12243             :  *         cdef __Pyx_memviewslice tmp
   12244             :  */
   12245             : 
   12246             :   /* function exit code */
   12247           0 :   __pyx_L1_error:;
   12248           0 :   __Pyx_XDECREF(__pyx_t_2);
   12249           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.is_c_contig", __pyx_clineno, __pyx_lineno, __pyx_filename);
   12250           0 :   __pyx_r = NULL;
   12251           0 :   __pyx_L0:;
   12252           0 :   __Pyx_XGIVEREF(__pyx_r);
   12253           0 :   __Pyx_RefNannyFinishContext();
   12254           0 :   return __pyx_r;
   12255             : }
   12256             : 
   12257             : /* "View.MemoryView":630
   12258             :  *         return slice_is_contig(mslice[0], 'C', self.view.ndim)
   12259             :  * 
   12260             :  *     def is_f_contig(self):             # <<<<<<<<<<<<<<
   12261             :  *         cdef __Pyx_memviewslice *mslice
   12262             :  *         cdef __Pyx_memviewslice tmp
   12263             :  */
   12264             : 
   12265             : /* Python wrapper */
   12266             : static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, 
   12267             : #if CYTHON_METH_FASTCALL
   12268             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   12269             : #else
   12270             : PyObject *__pyx_args, PyObject *__pyx_kwds
   12271             : #endif
   12272             : ); /*proto*/
   12273           0 : static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, 
   12274             : #if CYTHON_METH_FASTCALL
   12275             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   12276             : #else
   12277             : PyObject *__pyx_args, PyObject *__pyx_kwds
   12278             : #endif
   12279             : ) {
   12280             :   #if !CYTHON_METH_FASTCALL
   12281             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   12282             :   #endif
   12283           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   12284           0 :   PyObject *__pyx_r = 0;
   12285             :   __Pyx_RefNannyDeclarations
   12286           0 :   __Pyx_RefNannySetupContext("is_f_contig (wrapper)", 0);
   12287             :   #if !CYTHON_METH_FASTCALL
   12288             :   #if CYTHON_ASSUME_SAFE_MACROS
   12289             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   12290             :   #else
   12291             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   12292             :   #endif
   12293             :   #endif
   12294           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   12295           0 :   if (unlikely(__pyx_nargs > 0)) {
   12296           0 :     __Pyx_RaiseArgtupleInvalid("is_f_contig", 1, 0, 0, __pyx_nargs); return NULL;}
   12297           0 :   if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "is_f_contig", 0))) return NULL;
   12298           0 :   __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(((struct __pyx_memoryview_obj *)__pyx_v_self));
   12299             : 
   12300             :   /* function exit code */
   12301           0 :   __Pyx_RefNannyFinishContext();
   12302           0 :   return __pyx_r;
   12303             : }
   12304             : 
   12305           0 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self) {
   12306           0 :   __Pyx_memviewslice *__pyx_v_mslice;
   12307           0 :   __Pyx_memviewslice __pyx_v_tmp;
   12308           0 :   PyObject *__pyx_r = NULL;
   12309             :   __Pyx_RefNannyDeclarations
   12310           0 :   __Pyx_memviewslice *__pyx_t_1;
   12311           0 :   PyObject *__pyx_t_2 = NULL;
   12312           0 :   int __pyx_lineno = 0;
   12313           0 :   const char *__pyx_filename = NULL;
   12314           0 :   int __pyx_clineno = 0;
   12315           0 :   __Pyx_RefNannySetupContext("is_f_contig", 1);
   12316             : 
   12317             :   /* "View.MemoryView":633
   12318             :  *         cdef __Pyx_memviewslice *mslice
   12319             :  *         cdef __Pyx_memviewslice tmp
   12320             :  *         mslice = get_slice_from_memview(self, &tmp)             # <<<<<<<<<<<<<<
   12321             :  *         return slice_is_contig(mslice[0], 'F', self.view.ndim)
   12322             :  * 
   12323             :  */
   12324           0 :   __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(1, 633, __pyx_L1_error)
   12325           0 :   __pyx_v_mslice = __pyx_t_1;
   12326             : 
   12327             :   /* "View.MemoryView":634
   12328             :  *         cdef __Pyx_memviewslice tmp
   12329             :  *         mslice = get_slice_from_memview(self, &tmp)
   12330             :  *         return slice_is_contig(mslice[0], 'F', self.view.ndim)             # <<<<<<<<<<<<<<
   12331             :  * 
   12332             :  *     def copy(self):
   12333             :  */
   12334           0 :   __Pyx_XDECREF(__pyx_r);
   12335           0 :   __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'F', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 634, __pyx_L1_error)
   12336           0 :   __Pyx_GOTREF(__pyx_t_2);
   12337           0 :   __pyx_r = __pyx_t_2;
   12338           0 :   __pyx_t_2 = 0;
   12339           0 :   goto __pyx_L0;
   12340             : 
   12341             :   /* "View.MemoryView":630
   12342             :  *         return slice_is_contig(mslice[0], 'C', self.view.ndim)
   12343             :  * 
   12344             :  *     def is_f_contig(self):             # <<<<<<<<<<<<<<
   12345             :  *         cdef __Pyx_memviewslice *mslice
   12346             :  *         cdef __Pyx_memviewslice tmp
   12347             :  */
   12348             : 
   12349             :   /* function exit code */
   12350           0 :   __pyx_L1_error:;
   12351           0 :   __Pyx_XDECREF(__pyx_t_2);
   12352           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.is_f_contig", __pyx_clineno, __pyx_lineno, __pyx_filename);
   12353           0 :   __pyx_r = NULL;
   12354           0 :   __pyx_L0:;
   12355           0 :   __Pyx_XGIVEREF(__pyx_r);
   12356           0 :   __Pyx_RefNannyFinishContext();
   12357           0 :   return __pyx_r;
   12358             : }
   12359             : 
   12360             : /* "View.MemoryView":636
   12361             :  *         return slice_is_contig(mslice[0], 'F', self.view.ndim)
   12362             :  * 
   12363             :  *     def copy(self):             # <<<<<<<<<<<<<<
   12364             :  *         cdef __Pyx_memviewslice mslice
   12365             :  *         cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS
   12366             :  */
   12367             : 
   12368             : /* Python wrapper */
   12369             : static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, 
   12370             : #if CYTHON_METH_FASTCALL
   12371             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   12372             : #else
   12373             : PyObject *__pyx_args, PyObject *__pyx_kwds
   12374             : #endif
   12375             : ); /*proto*/
   12376           0 : static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, 
   12377             : #if CYTHON_METH_FASTCALL
   12378             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   12379             : #else
   12380             : PyObject *__pyx_args, PyObject *__pyx_kwds
   12381             : #endif
   12382             : ) {
   12383             :   #if !CYTHON_METH_FASTCALL
   12384             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   12385             :   #endif
   12386           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   12387           0 :   PyObject *__pyx_r = 0;
   12388             :   __Pyx_RefNannyDeclarations
   12389           0 :   __Pyx_RefNannySetupContext("copy (wrapper)", 0);
   12390             :   #if !CYTHON_METH_FASTCALL
   12391             :   #if CYTHON_ASSUME_SAFE_MACROS
   12392             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   12393             :   #else
   12394             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   12395             :   #endif
   12396             :   #endif
   12397           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   12398           0 :   if (unlikely(__pyx_nargs > 0)) {
   12399           0 :     __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL;}
   12400           0 :   if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "copy", 0))) return NULL;
   12401           0 :   __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(((struct __pyx_memoryview_obj *)__pyx_v_self));
   12402             : 
   12403             :   /* function exit code */
   12404           0 :   __Pyx_RefNannyFinishContext();
   12405           0 :   return __pyx_r;
   12406             : }
   12407             : 
   12408           0 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self) {
   12409           0 :   __Pyx_memviewslice __pyx_v_mslice;
   12410           0 :   int __pyx_v_flags;
   12411           0 :   PyObject *__pyx_r = NULL;
   12412             :   __Pyx_RefNannyDeclarations
   12413           0 :   __Pyx_memviewslice __pyx_t_1;
   12414           0 :   PyObject *__pyx_t_2 = NULL;
   12415           0 :   int __pyx_lineno = 0;
   12416           0 :   const char *__pyx_filename = NULL;
   12417           0 :   int __pyx_clineno = 0;
   12418           0 :   __Pyx_RefNannySetupContext("copy", 1);
   12419             : 
   12420             :   /* "View.MemoryView":638
   12421             :  *     def copy(self):
   12422             :  *         cdef __Pyx_memviewslice mslice
   12423             :  *         cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS             # <<<<<<<<<<<<<<
   12424             :  * 
   12425             :  *         slice_copy(self, &mslice)
   12426             :  */
   12427           0 :   __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_F_CONTIGUOUS));
   12428             : 
   12429             :   /* "View.MemoryView":640
   12430             :  *         cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS
   12431             :  * 
   12432             :  *         slice_copy(self, &mslice)             # <<<<<<<<<<<<<<
   12433             :  *         mslice = slice_copy_contig(&mslice, "c", self.view.ndim,
   12434             :  *                                    self.view.itemsize,
   12435             :  */
   12436           0 :   __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_mslice));
   12437             : 
   12438             :   /* "View.MemoryView":641
   12439             :  * 
   12440             :  *         slice_copy(self, &mslice)
   12441             :  *         mslice = slice_copy_contig(&mslice, "c", self.view.ndim,             # <<<<<<<<<<<<<<
   12442             :  *                                    self.view.itemsize,
   12443             :  *                                    flags|PyBUF_C_CONTIGUOUS,
   12444             :  */
   12445           0 :   __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_mslice), ((char *)"c"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_C_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 641, __pyx_L1_error)
   12446           0 :   __pyx_v_mslice = __pyx_t_1;
   12447             : 
   12448             :   /* "View.MemoryView":646
   12449             :  *                                    self.dtype_is_object)
   12450             :  * 
   12451             :  *         return memoryview_copy_from_slice(self, &mslice)             # <<<<<<<<<<<<<<
   12452             :  * 
   12453             :  *     def copy_fortran(self):
   12454             :  */
   12455           0 :   __Pyx_XDECREF(__pyx_r);
   12456           0 :   __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_mslice)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 646, __pyx_L1_error)
   12457           0 :   __Pyx_GOTREF(__pyx_t_2);
   12458           0 :   __pyx_r = __pyx_t_2;
   12459           0 :   __pyx_t_2 = 0;
   12460           0 :   goto __pyx_L0;
   12461             : 
   12462             :   /* "View.MemoryView":636
   12463             :  *         return slice_is_contig(mslice[0], 'F', self.view.ndim)
   12464             :  * 
   12465             :  *     def copy(self):             # <<<<<<<<<<<<<<
   12466             :  *         cdef __Pyx_memviewslice mslice
   12467             :  *         cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS
   12468             :  */
   12469             : 
   12470             :   /* function exit code */
   12471           0 :   __pyx_L1_error:;
   12472           0 :   __Pyx_XDECREF(__pyx_t_2);
   12473           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
   12474           0 :   __pyx_r = NULL;
   12475           0 :   __pyx_L0:;
   12476           0 :   __Pyx_XGIVEREF(__pyx_r);
   12477           0 :   __Pyx_RefNannyFinishContext();
   12478           0 :   return __pyx_r;
   12479             : }
   12480             : 
   12481             : /* "View.MemoryView":648
   12482             :  *         return memoryview_copy_from_slice(self, &mslice)
   12483             :  * 
   12484             :  *     def copy_fortran(self):             # <<<<<<<<<<<<<<
   12485             :  *         cdef __Pyx_memviewslice src, dst
   12486             :  *         cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS
   12487             :  */
   12488             : 
   12489             : /* Python wrapper */
   12490             : static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, 
   12491             : #if CYTHON_METH_FASTCALL
   12492             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   12493             : #else
   12494             : PyObject *__pyx_args, PyObject *__pyx_kwds
   12495             : #endif
   12496             : ); /*proto*/
   12497           0 : static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, 
   12498             : #if CYTHON_METH_FASTCALL
   12499             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   12500             : #else
   12501             : PyObject *__pyx_args, PyObject *__pyx_kwds
   12502             : #endif
   12503             : ) {
   12504             :   #if !CYTHON_METH_FASTCALL
   12505             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   12506             :   #endif
   12507           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   12508           0 :   PyObject *__pyx_r = 0;
   12509             :   __Pyx_RefNannyDeclarations
   12510           0 :   __Pyx_RefNannySetupContext("copy_fortran (wrapper)", 0);
   12511             :   #if !CYTHON_METH_FASTCALL
   12512             :   #if CYTHON_ASSUME_SAFE_MACROS
   12513             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   12514             :   #else
   12515             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   12516             :   #endif
   12517             :   #endif
   12518           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   12519           0 :   if (unlikely(__pyx_nargs > 0)) {
   12520           0 :     __Pyx_RaiseArgtupleInvalid("copy_fortran", 1, 0, 0, __pyx_nargs); return NULL;}
   12521           0 :   if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "copy_fortran", 0))) return NULL;
   12522           0 :   __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(((struct __pyx_memoryview_obj *)__pyx_v_self));
   12523             : 
   12524             :   /* function exit code */
   12525           0 :   __Pyx_RefNannyFinishContext();
   12526           0 :   return __pyx_r;
   12527             : }
   12528             : 
   12529           0 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self) {
   12530           0 :   __Pyx_memviewslice __pyx_v_src;
   12531           0 :   __Pyx_memviewslice __pyx_v_dst;
   12532           0 :   int __pyx_v_flags;
   12533           0 :   PyObject *__pyx_r = NULL;
   12534             :   __Pyx_RefNannyDeclarations
   12535           0 :   __Pyx_memviewslice __pyx_t_1;
   12536           0 :   PyObject *__pyx_t_2 = NULL;
   12537           0 :   int __pyx_lineno = 0;
   12538           0 :   const char *__pyx_filename = NULL;
   12539           0 :   int __pyx_clineno = 0;
   12540           0 :   __Pyx_RefNannySetupContext("copy_fortran", 1);
   12541             : 
   12542             :   /* "View.MemoryView":650
   12543             :  *     def copy_fortran(self):
   12544             :  *         cdef __Pyx_memviewslice src, dst
   12545             :  *         cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS             # <<<<<<<<<<<<<<
   12546             :  * 
   12547             :  *         slice_copy(self, &src)
   12548             :  */
   12549           0 :   __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_C_CONTIGUOUS));
   12550             : 
   12551             :   /* "View.MemoryView":652
   12552             :  *         cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS
   12553             :  * 
   12554             :  *         slice_copy(self, &src)             # <<<<<<<<<<<<<<
   12555             :  *         dst = slice_copy_contig(&src, "fortran", self.view.ndim,
   12556             :  *                                 self.view.itemsize,
   12557             :  */
   12558           0 :   __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_src));
   12559             : 
   12560             :   /* "View.MemoryView":653
   12561             :  * 
   12562             :  *         slice_copy(self, &src)
   12563             :  *         dst = slice_copy_contig(&src, "fortran", self.view.ndim,             # <<<<<<<<<<<<<<
   12564             :  *                                 self.view.itemsize,
   12565             :  *                                 flags|PyBUF_F_CONTIGUOUS,
   12566             :  */
   12567           0 :   __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_src), ((char *)"fortran"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_F_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 653, __pyx_L1_error)
   12568           0 :   __pyx_v_dst = __pyx_t_1;
   12569             : 
   12570             :   /* "View.MemoryView":658
   12571             :  *                                 self.dtype_is_object)
   12572             :  * 
   12573             :  *         return memoryview_copy_from_slice(self, &dst)             # <<<<<<<<<<<<<<
   12574             :  * 
   12575             :  * 
   12576             :  */
   12577           0 :   __Pyx_XDECREF(__pyx_r);
   12578           0 :   __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_dst)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 658, __pyx_L1_error)
   12579           0 :   __Pyx_GOTREF(__pyx_t_2);
   12580           0 :   __pyx_r = __pyx_t_2;
   12581           0 :   __pyx_t_2 = 0;
   12582           0 :   goto __pyx_L0;
   12583             : 
   12584             :   /* "View.MemoryView":648
   12585             :  *         return memoryview_copy_from_slice(self, &mslice)
   12586             :  * 
   12587             :  *     def copy_fortran(self):             # <<<<<<<<<<<<<<
   12588             :  *         cdef __Pyx_memviewslice src, dst
   12589             :  *         cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS
   12590             :  */
   12591             : 
   12592             :   /* function exit code */
   12593           0 :   __pyx_L1_error:;
   12594           0 :   __Pyx_XDECREF(__pyx_t_2);
   12595           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.copy_fortran", __pyx_clineno, __pyx_lineno, __pyx_filename);
   12596           0 :   __pyx_r = NULL;
   12597           0 :   __pyx_L0:;
   12598           0 :   __Pyx_XGIVEREF(__pyx_r);
   12599           0 :   __Pyx_RefNannyFinishContext();
   12600           0 :   return __pyx_r;
   12601             : }
   12602             : 
   12603             : /* "(tree fragment)":1
   12604             :  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
   12605             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
   12606             :  * def __setstate_cython__(self, __pyx_state):
   12607             :  */
   12608             : 
   12609             : /* Python wrapper */
   12610             : static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, 
   12611             : #if CYTHON_METH_FASTCALL
   12612             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   12613             : #else
   12614             : PyObject *__pyx_args, PyObject *__pyx_kwds
   12615             : #endif
   12616             : ); /*proto*/
   12617           0 : static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, 
   12618             : #if CYTHON_METH_FASTCALL
   12619             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   12620             : #else
   12621             : PyObject *__pyx_args, PyObject *__pyx_kwds
   12622             : #endif
   12623             : ) {
   12624             :   #if !CYTHON_METH_FASTCALL
   12625             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   12626             :   #endif
   12627           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   12628           0 :   PyObject *__pyx_r = 0;
   12629             :   __Pyx_RefNannyDeclarations
   12630           0 :   __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
   12631             :   #if !CYTHON_METH_FASTCALL
   12632             :   #if CYTHON_ASSUME_SAFE_MACROS
   12633             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   12634             :   #else
   12635             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   12636             :   #endif
   12637             :   #endif
   12638           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   12639           0 :   if (unlikely(__pyx_nargs > 0)) {
   12640           0 :     __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
   12641           0 :   if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
   12642           0 :   __pyx_r = __pyx_pf___pyx_memoryview___reduce_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self));
   12643             : 
   12644             :   /* function exit code */
   12645           0 :   __Pyx_RefNannyFinishContext();
   12646           0 :   return __pyx_r;
   12647             : }
   12648             : 
   12649           0 : static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self) {
   12650           0 :   PyObject *__pyx_r = NULL;
   12651             :   __Pyx_RefNannyDeclarations
   12652           0 :   int __pyx_lineno = 0;
   12653           0 :   const char *__pyx_filename = NULL;
   12654           0 :   int __pyx_clineno = 0;
   12655           0 :   __Pyx_RefNannySetupContext("__reduce_cython__", 1);
   12656             : 
   12657             :   /* "(tree fragment)":2
   12658             :  * def __reduce_cython__(self):
   12659             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
   12660             :  * def __setstate_cython__(self, __pyx_state):
   12661             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
   12662             :  */
   12663           0 :   __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
   12664           0 :   __PYX_ERR(1, 2, __pyx_L1_error)
   12665             : 
   12666             :   /* "(tree fragment)":1
   12667             :  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
   12668             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
   12669             :  * def __setstate_cython__(self, __pyx_state):
   12670             :  */
   12671             : 
   12672             :   /* function exit code */
   12673           0 :   __pyx_L1_error:;
   12674           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   12675           0 :   __pyx_r = NULL;
   12676           0 :   __Pyx_XGIVEREF(__pyx_r);
   12677           0 :   __Pyx_RefNannyFinishContext();
   12678           0 :   return __pyx_r;
   12679             : }
   12680             : 
   12681             : /* "(tree fragment)":3
   12682             :  * def __reduce_cython__(self):
   12683             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
   12684             :  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
   12685             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
   12686             :  */
   12687             : 
   12688             : /* Python wrapper */
   12689             : static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, 
   12690             : #if CYTHON_METH_FASTCALL
   12691             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   12692             : #else
   12693             : PyObject *__pyx_args, PyObject *__pyx_kwds
   12694             : #endif
   12695             : ); /*proto*/
   12696           0 : static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, 
   12697             : #if CYTHON_METH_FASTCALL
   12698             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   12699             : #else
   12700             : PyObject *__pyx_args, PyObject *__pyx_kwds
   12701             : #endif
   12702             : ) {
   12703           0 :   CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
   12704             :   #if !CYTHON_METH_FASTCALL
   12705             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   12706             :   #endif
   12707           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   12708           0 :   PyObject* values[1] = {0};
   12709           0 :   int __pyx_lineno = 0;
   12710           0 :   const char *__pyx_filename = NULL;
   12711           0 :   int __pyx_clineno = 0;
   12712           0 :   PyObject *__pyx_r = 0;
   12713             :   __Pyx_RefNannyDeclarations
   12714           0 :   __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
   12715             :   #if !CYTHON_METH_FASTCALL
   12716             :   #if CYTHON_ASSUME_SAFE_MACROS
   12717             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   12718             :   #else
   12719             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   12720             :   #endif
   12721             :   #endif
   12722           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   12723             :   {
   12724           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
   12725           0 :     if (__pyx_kwds) {
   12726           0 :       Py_ssize_t kw_args;
   12727           0 :       switch (__pyx_nargs) {
   12728           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   12729           0 :         CYTHON_FALLTHROUGH;
   12730           0 :         case  0: break;
   12731           0 :         default: goto __pyx_L5_argtuple_error;
   12732             :       }
   12733           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   12734           0 :       switch (__pyx_nargs) {
   12735             :         case  0:
   12736           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
   12737           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   12738           0 :           kw_args--;
   12739             :         }
   12740           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error)
   12741           0 :         else goto __pyx_L5_argtuple_error;
   12742             :       }
   12743           0 :       if (unlikely(kw_args > 0)) {
   12744           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   12745           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error)
   12746             :       }
   12747           0 :     } else if (unlikely(__pyx_nargs != 1)) {
   12748           0 :       goto __pyx_L5_argtuple_error;
   12749             :     } else {
   12750           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   12751             :     }
   12752           0 :     __pyx_v___pyx_state = values[0];
   12753             :   }
   12754           0 :   goto __pyx_L6_skip;
   12755           0 :   __pyx_L5_argtuple_error:;
   12756           0 :   __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
   12757           0 :   __pyx_L6_skip:;
   12758           0 :   goto __pyx_L4_argument_unpacking_done;
   12759           0 :   __pyx_L3_error:;
   12760             :   {
   12761           0 :     Py_ssize_t __pyx_temp;
   12762           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   12763             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   12764             :     }
   12765             :   }
   12766           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   12767           0 :   __Pyx_RefNannyFinishContext();
   12768           0 :   return NULL;
   12769           0 :   __pyx_L4_argument_unpacking_done:;
   12770           0 :   __pyx_r = __pyx_pf___pyx_memoryview_2__setstate_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v___pyx_state);
   12771             : 
   12772             :   /* function exit code */
   12773             :   {
   12774           0 :     Py_ssize_t __pyx_temp;
   12775           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   12776             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   12777             :     }
   12778             :   }
   12779             :   __Pyx_RefNannyFinishContext();
   12780             :   return __pyx_r;
   12781             : }
   12782             : 
   12783           0 : static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
   12784           0 :   PyObject *__pyx_r = NULL;
   12785             :   __Pyx_RefNannyDeclarations
   12786           0 :   int __pyx_lineno = 0;
   12787           0 :   const char *__pyx_filename = NULL;
   12788           0 :   int __pyx_clineno = 0;
   12789           0 :   __Pyx_RefNannySetupContext("__setstate_cython__", 1);
   12790             : 
   12791             :   /* "(tree fragment)":4
   12792             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
   12793             :  * def __setstate_cython__(self, __pyx_state):
   12794             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
   12795             :  */
   12796           0 :   __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
   12797           0 :   __PYX_ERR(1, 4, __pyx_L1_error)
   12798             : 
   12799             :   /* "(tree fragment)":3
   12800             :  * def __reduce_cython__(self):
   12801             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
   12802             :  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
   12803             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
   12804             :  */
   12805             : 
   12806             :   /* function exit code */
   12807           0 :   __pyx_L1_error:;
   12808           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   12809           0 :   __pyx_r = NULL;
   12810           0 :   __Pyx_XGIVEREF(__pyx_r);
   12811           0 :   __Pyx_RefNannyFinishContext();
   12812           0 :   return __pyx_r;
   12813             : }
   12814             : 
   12815             : /* "View.MemoryView":662
   12816             :  * 
   12817             :  * @cname('__pyx_memoryview_new')
   12818             :  * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo):             # <<<<<<<<<<<<<<
   12819             :  *     cdef memoryview result = memoryview(o, flags, dtype_is_object)
   12820             :  *     result.typeinfo = typeinfo
   12821             :  */
   12822             : 
   12823      400128 : static PyObject *__pyx_memoryview_new(PyObject *__pyx_v_o, int __pyx_v_flags, int __pyx_v_dtype_is_object, __Pyx_TypeInfo *__pyx_v_typeinfo) {
   12824      400128 :   struct __pyx_memoryview_obj *__pyx_v_result = 0;
   12825      400128 :   PyObject *__pyx_r = NULL;
   12826             :   __Pyx_RefNannyDeclarations
   12827      400128 :   PyObject *__pyx_t_1 = NULL;
   12828      400128 :   PyObject *__pyx_t_2 = NULL;
   12829      400128 :   PyObject *__pyx_t_3 = NULL;
   12830      400128 :   int __pyx_lineno = 0;
   12831      400128 :   const char *__pyx_filename = NULL;
   12832      400128 :   int __pyx_clineno = 0;
   12833      400128 :   __Pyx_RefNannySetupContext("memoryview_cwrapper", 1);
   12834             : 
   12835             :   /* "View.MemoryView":663
   12836             :  * @cname('__pyx_memoryview_new')
   12837             :  * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo):
   12838             :  *     cdef memoryview result = memoryview(o, flags, dtype_is_object)             # <<<<<<<<<<<<<<
   12839             :  *     result.typeinfo = typeinfo
   12840             :  *     return result
   12841             :  */
   12842      400128 :   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 663, __pyx_L1_error)
   12843      400128 :   __Pyx_GOTREF(__pyx_t_1);
   12844      400128 :   __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 663, __pyx_L1_error)
   12845      400128 :   __Pyx_GOTREF(__pyx_t_2);
   12846      400128 :   __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 663, __pyx_L1_error)
   12847      400128 :   __Pyx_GOTREF(__pyx_t_3);
   12848      400128 :   __Pyx_INCREF(__pyx_v_o);
   12849      400128 :   __Pyx_GIVEREF(__pyx_v_o);
   12850      400128 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_o)) __PYX_ERR(1, 663, __pyx_L1_error);
   12851      400128 :   __Pyx_GIVEREF(__pyx_t_1);
   12852      400128 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(1, 663, __pyx_L1_error);
   12853      400128 :   __Pyx_GIVEREF(__pyx_t_2);
   12854      400128 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(1, 663, __pyx_L1_error);
   12855      400128 :   __pyx_t_1 = 0;
   12856      400128 :   __pyx_t_2 = 0;
   12857      400128 :   __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 663, __pyx_L1_error)
   12858      400128 :   __Pyx_GOTREF(__pyx_t_2);
   12859      400128 :   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   12860      400128 :   __pyx_v_result = ((struct __pyx_memoryview_obj *)__pyx_t_2);
   12861      400128 :   __pyx_t_2 = 0;
   12862             : 
   12863             :   /* "View.MemoryView":664
   12864             :  * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo):
   12865             :  *     cdef memoryview result = memoryview(o, flags, dtype_is_object)
   12866             :  *     result.typeinfo = typeinfo             # <<<<<<<<<<<<<<
   12867             :  *     return result
   12868             :  * 
   12869             :  */
   12870      400128 :   __pyx_v_result->typeinfo = __pyx_v_typeinfo;
   12871             : 
   12872             :   /* "View.MemoryView":665
   12873             :  *     cdef memoryview result = memoryview(o, flags, dtype_is_object)
   12874             :  *     result.typeinfo = typeinfo
   12875             :  *     return result             # <<<<<<<<<<<<<<
   12876             :  * 
   12877             :  * @cname('__pyx_memoryview_check')
   12878             :  */
   12879      400128 :   __Pyx_XDECREF(__pyx_r);
   12880      400128 :   __Pyx_INCREF((PyObject *)__pyx_v_result);
   12881      400128 :   __pyx_r = ((PyObject *)__pyx_v_result);
   12882      400128 :   goto __pyx_L0;
   12883             : 
   12884             :   /* "View.MemoryView":662
   12885             :  * 
   12886             :  * @cname('__pyx_memoryview_new')
   12887             :  * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo):             # <<<<<<<<<<<<<<
   12888             :  *     cdef memoryview result = memoryview(o, flags, dtype_is_object)
   12889             :  *     result.typeinfo = typeinfo
   12890             :  */
   12891             : 
   12892             :   /* function exit code */
   12893           0 :   __pyx_L1_error:;
   12894           0 :   __Pyx_XDECREF(__pyx_t_1);
   12895           0 :   __Pyx_XDECREF(__pyx_t_2);
   12896           0 :   __Pyx_XDECREF(__pyx_t_3);
   12897           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
   12898           0 :   __pyx_r = 0;
   12899      400128 :   __pyx_L0:;
   12900      400128 :   __Pyx_XDECREF((PyObject *)__pyx_v_result);
   12901      400128 :   __Pyx_XGIVEREF(__pyx_r);
   12902      400128 :   __Pyx_RefNannyFinishContext();
   12903      400128 :   return __pyx_r;
   12904             : }
   12905             : 
   12906             : /* "View.MemoryView":668
   12907             :  * 
   12908             :  * @cname('__pyx_memoryview_check')
   12909             :  * cdef inline bint memoryview_check(object o) noexcept:             # <<<<<<<<<<<<<<
   12910             :  *     return isinstance(o, memoryview)
   12911             :  * 
   12912             :  */
   12913             : 
   12914      536853 : static CYTHON_INLINE int __pyx_memoryview_check(PyObject *__pyx_v_o) {
   12915      536853 :   int __pyx_r;
   12916      536853 :   int __pyx_t_1;
   12917             : 
   12918             :   /* "View.MemoryView":669
   12919             :  * @cname('__pyx_memoryview_check')
   12920             :  * cdef inline bint memoryview_check(object o) noexcept:
   12921             :  *     return isinstance(o, memoryview)             # <<<<<<<<<<<<<<
   12922             :  * 
   12923             :  * cdef tuple _unellipsify(object index, int ndim):
   12924             :  */
   12925      536853 :   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, __pyx_memoryview_type); 
   12926      536853 :   __pyx_r = __pyx_t_1;
   12927      536853 :   goto __pyx_L0;
   12928             : 
   12929             :   /* "View.MemoryView":668
   12930             :  * 
   12931             :  * @cname('__pyx_memoryview_check')
   12932             :  * cdef inline bint memoryview_check(object o) noexcept:             # <<<<<<<<<<<<<<
   12933             :  *     return isinstance(o, memoryview)
   12934             :  * 
   12935             :  */
   12936             : 
   12937             :   /* function exit code */
   12938      536853 :   __pyx_L0:;
   12939      536853 :   return __pyx_r;
   12940             : }
   12941             : 
   12942             : /* "View.MemoryView":671
   12943             :  *     return isinstance(o, memoryview)
   12944             :  * 
   12945             :  * cdef tuple _unellipsify(object index, int ndim):             # <<<<<<<<<<<<<<
   12946             :  *     """
   12947             :  *     Replace all ellipses with full slices and fill incomplete indices with
   12948             :  */
   12949             : 
   12950           0 : static PyObject *_unellipsify(PyObject *__pyx_v_index, int __pyx_v_ndim) {
   12951           0 :   Py_ssize_t __pyx_v_idx;
   12952           0 :   PyObject *__pyx_v_tup = NULL;
   12953           0 :   PyObject *__pyx_v_result = NULL;
   12954           0 :   int __pyx_v_have_slices;
   12955           0 :   int __pyx_v_seen_ellipsis;
   12956           0 :   PyObject *__pyx_v_item = NULL;
   12957           0 :   Py_ssize_t __pyx_v_nslices;
   12958           0 :   PyObject *__pyx_r = NULL;
   12959             :   __Pyx_RefNannyDeclarations
   12960           0 :   PyObject *__pyx_t_1 = NULL;
   12961           0 :   int __pyx_t_2;
   12962           0 :   PyObject *__pyx_t_3 = NULL;
   12963           0 :   Py_ssize_t __pyx_t_4;
   12964           0 :   Py_ssize_t __pyx_t_5;
   12965           0 :   Py_UCS4 __pyx_t_6;
   12966           0 :   PyObject *__pyx_t_7 = NULL;
   12967           0 :   int __pyx_lineno = 0;
   12968           0 :   const char *__pyx_filename = NULL;
   12969           0 :   int __pyx_clineno = 0;
   12970           0 :   __Pyx_RefNannySetupContext("_unellipsify", 1);
   12971             : 
   12972             :   /* "View.MemoryView":677
   12973             :  *     """
   12974             :  *     cdef Py_ssize_t idx
   12975             :  *     tup = <tuple>index if isinstance(index, tuple) else (index,)             # <<<<<<<<<<<<<<
   12976             :  * 
   12977             :  *     result = [slice(None)] * ndim
   12978             :  */
   12979           0 :   __pyx_t_2 = PyTuple_Check(__pyx_v_index); 
   12980           0 :   if (__pyx_t_2) {
   12981           0 :     __Pyx_INCREF(((PyObject*)__pyx_v_index));
   12982             :     __pyx_t_1 = __pyx_v_index;
   12983             :   } else {
   12984           0 :     __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 677, __pyx_L1_error)
   12985           0 :     __Pyx_GOTREF(__pyx_t_3);
   12986           0 :     __Pyx_INCREF(__pyx_v_index);
   12987           0 :     __Pyx_GIVEREF(__pyx_v_index);
   12988           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_index)) __PYX_ERR(1, 677, __pyx_L1_error);
   12989           0 :     __pyx_t_1 = __pyx_t_3;
   12990           0 :     __pyx_t_3 = 0;
   12991             :   }
   12992           0 :   __pyx_v_tup = ((PyObject*)__pyx_t_1);
   12993           0 :   __pyx_t_1 = 0;
   12994             : 
   12995             :   /* "View.MemoryView":679
   12996             :  *     tup = <tuple>index if isinstance(index, tuple) else (index,)
   12997             :  * 
   12998             :  *     result = [slice(None)] * ndim             # <<<<<<<<<<<<<<
   12999             :  *     have_slices = False
   13000             :  *     seen_ellipsis = False
   13001             :  */
   13002           0 :   __pyx_t_1 = PyList_New(1 * ((__pyx_v_ndim<0) ? 0:__pyx_v_ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 679, __pyx_L1_error)
   13003             :   __Pyx_GOTREF(__pyx_t_1);
   13004             :   { Py_ssize_t __pyx_temp;
   13005           0 :     for (__pyx_temp=0; __pyx_temp < __pyx_v_ndim; __pyx_temp++) {
   13006           0 :       __Pyx_INCREF(__pyx_slice__5);
   13007           0 :       __Pyx_GIVEREF(__pyx_slice__5);
   13008           0 :       if (__Pyx_PyList_SET_ITEM(__pyx_t_1, __pyx_temp, __pyx_slice__5)) __PYX_ERR(1, 679, __pyx_L1_error);
   13009             :     }
   13010             :   }
   13011           0 :   __pyx_v_result = ((PyObject*)__pyx_t_1);
   13012           0 :   __pyx_t_1 = 0;
   13013             : 
   13014             :   /* "View.MemoryView":680
   13015             :  * 
   13016             :  *     result = [slice(None)] * ndim
   13017             :  *     have_slices = False             # <<<<<<<<<<<<<<
   13018             :  *     seen_ellipsis = False
   13019             :  *     idx = 0
   13020             :  */
   13021           0 :   __pyx_v_have_slices = 0;
   13022             : 
   13023             :   /* "View.MemoryView":681
   13024             :  *     result = [slice(None)] * ndim
   13025             :  *     have_slices = False
   13026             :  *     seen_ellipsis = False             # <<<<<<<<<<<<<<
   13027             :  *     idx = 0
   13028             :  *     for item in tup:
   13029             :  */
   13030           0 :   __pyx_v_seen_ellipsis = 0;
   13031             : 
   13032             :   /* "View.MemoryView":682
   13033             :  *     have_slices = False
   13034             :  *     seen_ellipsis = False
   13035             :  *     idx = 0             # <<<<<<<<<<<<<<
   13036             :  *     for item in tup:
   13037             :  *         if item is Ellipsis:
   13038             :  */
   13039           0 :   __pyx_v_idx = 0;
   13040             : 
   13041             :   /* "View.MemoryView":683
   13042             :  *     seen_ellipsis = False
   13043             :  *     idx = 0
   13044             :  *     for item in tup:             # <<<<<<<<<<<<<<
   13045             :  *         if item is Ellipsis:
   13046             :  *             if not seen_ellipsis:
   13047             :  */
   13048           0 :   if (unlikely(__pyx_v_tup == Py_None)) {
   13049           0 :     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
   13050           0 :     __PYX_ERR(1, 683, __pyx_L1_error)
   13051             :   }
   13052           0 :   __pyx_t_1 = __pyx_v_tup; __Pyx_INCREF(__pyx_t_1);
   13053             :   __pyx_t_4 = 0;
   13054           0 :   for (;;) {
   13055           0 :     {
   13056           0 :       Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
   13057             :       #if !CYTHON_ASSUME_SAFE_MACROS
   13058             :       if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 683, __pyx_L1_error)
   13059             :       #endif
   13060           0 :       if (__pyx_t_4 >= __pyx_temp) break;
   13061             :     }
   13062             :     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   13063           0 :     __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(1, 683, __pyx_L1_error)
   13064             :     #else
   13065             :     __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 683, __pyx_L1_error)
   13066             :     __Pyx_GOTREF(__pyx_t_3);
   13067             :     #endif
   13068           0 :     __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_3);
   13069           0 :     __pyx_t_3 = 0;
   13070             : 
   13071             :     /* "View.MemoryView":684
   13072             :  *     idx = 0
   13073             :  *     for item in tup:
   13074             :  *         if item is Ellipsis:             # <<<<<<<<<<<<<<
   13075             :  *             if not seen_ellipsis:
   13076             :  *                 idx += ndim - len(tup)
   13077             :  */
   13078           0 :     __pyx_t_2 = (__pyx_v_item == __pyx_builtin_Ellipsis);
   13079           0 :     if (__pyx_t_2) {
   13080             : 
   13081             :       /* "View.MemoryView":685
   13082             :  *     for item in tup:
   13083             :  *         if item is Ellipsis:
   13084             :  *             if not seen_ellipsis:             # <<<<<<<<<<<<<<
   13085             :  *                 idx += ndim - len(tup)
   13086             :  *                 seen_ellipsis = True
   13087             :  */
   13088           0 :       __pyx_t_2 = (!__pyx_v_seen_ellipsis);
   13089           0 :       if (__pyx_t_2) {
   13090             : 
   13091             :         /* "View.MemoryView":686
   13092             :  *         if item is Ellipsis:
   13093             :  *             if not seen_ellipsis:
   13094             :  *                 idx += ndim - len(tup)             # <<<<<<<<<<<<<<
   13095             :  *                 seen_ellipsis = True
   13096             :  *             have_slices = True
   13097             :  */
   13098           0 :         if (unlikely(__pyx_v_tup == Py_None)) {
   13099             :           PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   13100             :           __PYX_ERR(1, 686, __pyx_L1_error)
   13101             :         }
   13102           0 :         __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v_tup); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 686, __pyx_L1_error)
   13103           0 :         __pyx_v_idx = (__pyx_v_idx + (__pyx_v_ndim - __pyx_t_5));
   13104             : 
   13105             :         /* "View.MemoryView":687
   13106             :  *             if not seen_ellipsis:
   13107             :  *                 idx += ndim - len(tup)
   13108             :  *                 seen_ellipsis = True             # <<<<<<<<<<<<<<
   13109             :  *             have_slices = True
   13110             :  *         else:
   13111             :  */
   13112           0 :         __pyx_v_seen_ellipsis = 1;
   13113             : 
   13114             :         /* "View.MemoryView":685
   13115             :  *     for item in tup:
   13116             :  *         if item is Ellipsis:
   13117             :  *             if not seen_ellipsis:             # <<<<<<<<<<<<<<
   13118             :  *                 idx += ndim - len(tup)
   13119             :  *                 seen_ellipsis = True
   13120             :  */
   13121             :       }
   13122             : 
   13123             :       /* "View.MemoryView":688
   13124             :  *                 idx += ndim - len(tup)
   13125             :  *                 seen_ellipsis = True
   13126             :  *             have_slices = True             # <<<<<<<<<<<<<<
   13127             :  *         else:
   13128             :  *             if isinstance(item, slice):
   13129             :  */
   13130           0 :       __pyx_v_have_slices = 1;
   13131             : 
   13132             :       /* "View.MemoryView":684
   13133             :  *     idx = 0
   13134             :  *     for item in tup:
   13135             :  *         if item is Ellipsis:             # <<<<<<<<<<<<<<
   13136             :  *             if not seen_ellipsis:
   13137             :  *                 idx += ndim - len(tup)
   13138             :  */
   13139           0 :       goto __pyx_L5;
   13140             :     }
   13141             : 
   13142             :     /* "View.MemoryView":690
   13143             :  *             have_slices = True
   13144             :  *         else:
   13145             :  *             if isinstance(item, slice):             # <<<<<<<<<<<<<<
   13146             :  *                 have_slices = True
   13147             :  *             elif not PyIndex_Check(item):
   13148             :  */
   13149             :     /*else*/ {
   13150           0 :       __pyx_t_2 = PySlice_Check(__pyx_v_item); 
   13151           0 :       if (__pyx_t_2) {
   13152             : 
   13153             :         /* "View.MemoryView":691
   13154             :  *         else:
   13155             :  *             if isinstance(item, slice):
   13156             :  *                 have_slices = True             # <<<<<<<<<<<<<<
   13157             :  *             elif not PyIndex_Check(item):
   13158             :  *                 raise TypeError, f"Cannot index with type '{type(item)}'"
   13159             :  */
   13160           0 :         __pyx_v_have_slices = 1;
   13161             : 
   13162             :         /* "View.MemoryView":690
   13163             :  *             have_slices = True
   13164             :  *         else:
   13165             :  *             if isinstance(item, slice):             # <<<<<<<<<<<<<<
   13166             :  *                 have_slices = True
   13167             :  *             elif not PyIndex_Check(item):
   13168             :  */
   13169           0 :         goto __pyx_L7;
   13170             :       }
   13171             : 
   13172             :       /* "View.MemoryView":692
   13173             :  *             if isinstance(item, slice):
   13174             :  *                 have_slices = True
   13175             :  *             elif not PyIndex_Check(item):             # <<<<<<<<<<<<<<
   13176             :  *                 raise TypeError, f"Cannot index with type '{type(item)}'"
   13177             :  *             result[idx] = item
   13178             :  */
   13179           0 :       __pyx_t_2 = (!(PyIndex_Check(__pyx_v_item) != 0));
   13180           0 :       if (unlikely(__pyx_t_2)) {
   13181             : 
   13182             :         /* "View.MemoryView":693
   13183             :  *                 have_slices = True
   13184             :  *             elif not PyIndex_Check(item):
   13185             :  *                 raise TypeError, f"Cannot index with type '{type(item)}'"             # <<<<<<<<<<<<<<
   13186             :  *             result[idx] = item
   13187             :  *         idx += 1
   13188             :  */
   13189           0 :         __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 693, __pyx_L1_error)
   13190           0 :         __Pyx_GOTREF(__pyx_t_3);
   13191           0 :         __pyx_t_5 = 0;
   13192           0 :         __pyx_t_6 = 127;
   13193           0 :         __Pyx_INCREF(__pyx_kp_u_Cannot_index_with_type);
   13194           0 :         __pyx_t_5 += 24;
   13195           0 :         __Pyx_GIVEREF(__pyx_kp_u_Cannot_index_with_type);
   13196           0 :         PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_Cannot_index_with_type);
   13197           0 :         __pyx_t_7 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_item)), __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 693, __pyx_L1_error)
   13198           0 :         __Pyx_GOTREF(__pyx_t_7);
   13199           0 :         __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_6;
   13200           0 :         __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
   13201           0 :         __Pyx_GIVEREF(__pyx_t_7);
   13202           0 :         PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7);
   13203           0 :         __pyx_t_7 = 0;
   13204           0 :         __Pyx_INCREF(__pyx_kp_u__6);
   13205           0 :         __pyx_t_5 += 1;
   13206           0 :         __Pyx_GIVEREF(__pyx_kp_u__6);
   13207           0 :         PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u__6);
   13208           0 :         __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 693, __pyx_L1_error)
   13209           0 :         __Pyx_GOTREF(__pyx_t_7);
   13210           0 :         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   13211           0 :         __Pyx_Raise(__pyx_builtin_TypeError, __pyx_t_7, 0, 0);
   13212           0 :         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   13213           0 :         __PYX_ERR(1, 693, __pyx_L1_error)
   13214             : 
   13215             :         /* "View.MemoryView":692
   13216             :  *             if isinstance(item, slice):
   13217             :  *                 have_slices = True
   13218             :  *             elif not PyIndex_Check(item):             # <<<<<<<<<<<<<<
   13219             :  *                 raise TypeError, f"Cannot index with type '{type(item)}'"
   13220             :  *             result[idx] = item
   13221             :  */
   13222             :       }
   13223           0 :       __pyx_L7:;
   13224             : 
   13225             :       /* "View.MemoryView":694
   13226             :  *             elif not PyIndex_Check(item):
   13227             :  *                 raise TypeError, f"Cannot index with type '{type(item)}'"
   13228             :  *             result[idx] = item             # <<<<<<<<<<<<<<
   13229             :  *         idx += 1
   13230             :  * 
   13231             :  */
   13232           0 :       if (unlikely((__Pyx_SetItemInt(__pyx_v_result, __pyx_v_idx, __pyx_v_item, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1) < 0))) __PYX_ERR(1, 694, __pyx_L1_error)
   13233             :     }
   13234           0 :     __pyx_L5:;
   13235             : 
   13236             :     /* "View.MemoryView":695
   13237             :  *                 raise TypeError, f"Cannot index with type '{type(item)}'"
   13238             :  *             result[idx] = item
   13239             :  *         idx += 1             # <<<<<<<<<<<<<<
   13240             :  * 
   13241             :  *     nslices = ndim - idx
   13242             :  */
   13243           0 :     __pyx_v_idx = (__pyx_v_idx + 1);
   13244             : 
   13245             :     /* "View.MemoryView":683
   13246             :  *     seen_ellipsis = False
   13247             :  *     idx = 0
   13248             :  *     for item in tup:             # <<<<<<<<<<<<<<
   13249             :  *         if item is Ellipsis:
   13250             :  *             if not seen_ellipsis:
   13251             :  */
   13252             :   }
   13253           0 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   13254             : 
   13255             :   /* "View.MemoryView":697
   13256             :  *         idx += 1
   13257             :  * 
   13258             :  *     nslices = ndim - idx             # <<<<<<<<<<<<<<
   13259             :  *     return have_slices or nslices, tuple(result)
   13260             :  * 
   13261             :  */
   13262           0 :   __pyx_v_nslices = (__pyx_v_ndim - __pyx_v_idx);
   13263             : 
   13264             :   /* "View.MemoryView":698
   13265             :  * 
   13266             :  *     nslices = ndim - idx
   13267             :  *     return have_slices or nslices, tuple(result)             # <<<<<<<<<<<<<<
   13268             :  * 
   13269             :  * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1:
   13270             :  */
   13271           0 :   __Pyx_XDECREF(__pyx_r);
   13272           0 :   if (!__pyx_v_have_slices) {
   13273           0 :   } else {
   13274           0 :     __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_have_slices); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 698, __pyx_L1_error)
   13275           0 :     __Pyx_GOTREF(__pyx_t_7);
   13276           0 :     __pyx_t_1 = __pyx_t_7;
   13277           0 :     __pyx_t_7 = 0;
   13278           0 :     goto __pyx_L9_bool_binop_done;
   13279             :   }
   13280           0 :   __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_nslices); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 698, __pyx_L1_error)
   13281             :   __Pyx_GOTREF(__pyx_t_7);
   13282             :   __pyx_t_1 = __pyx_t_7;
   13283           0 :   __pyx_t_7 = 0;
   13284           0 :   __pyx_L9_bool_binop_done:;
   13285           0 :   __pyx_t_7 = PyList_AsTuple(__pyx_v_result); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 698, __pyx_L1_error)
   13286           0 :   __Pyx_GOTREF(__pyx_t_7);
   13287           0 :   __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 698, __pyx_L1_error)
   13288           0 :   __Pyx_GOTREF(__pyx_t_3);
   13289           0 :   __Pyx_GIVEREF(__pyx_t_1);
   13290           0 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(1, 698, __pyx_L1_error);
   13291           0 :   __Pyx_GIVEREF(__pyx_t_7);
   13292           0 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7)) __PYX_ERR(1, 698, __pyx_L1_error);
   13293           0 :   __pyx_t_1 = 0;
   13294           0 :   __pyx_t_7 = 0;
   13295           0 :   __pyx_r = ((PyObject*)__pyx_t_3);
   13296           0 :   __pyx_t_3 = 0;
   13297           0 :   goto __pyx_L0;
   13298             : 
   13299             :   /* "View.MemoryView":671
   13300             :  *     return isinstance(o, memoryview)
   13301             :  * 
   13302             :  * cdef tuple _unellipsify(object index, int ndim):             # <<<<<<<<<<<<<<
   13303             :  *     """
   13304             :  *     Replace all ellipses with full slices and fill incomplete indices with
   13305             :  */
   13306             : 
   13307             :   /* function exit code */
   13308           0 :   __pyx_L1_error:;
   13309           0 :   __Pyx_XDECREF(__pyx_t_1);
   13310           0 :   __Pyx_XDECREF(__pyx_t_3);
   13311           0 :   __Pyx_XDECREF(__pyx_t_7);
   13312           0 :   __Pyx_AddTraceback("View.MemoryView._unellipsify", __pyx_clineno, __pyx_lineno, __pyx_filename);
   13313           0 :   __pyx_r = 0;
   13314           0 :   __pyx_L0:;
   13315           0 :   __Pyx_XDECREF(__pyx_v_tup);
   13316           0 :   __Pyx_XDECREF(__pyx_v_result);
   13317           0 :   __Pyx_XDECREF(__pyx_v_item);
   13318           0 :   __Pyx_XGIVEREF(__pyx_r);
   13319           0 :   __Pyx_RefNannyFinishContext();
   13320           0 :   return __pyx_r;
   13321             : }
   13322             : 
   13323             : /* "View.MemoryView":700
   13324             :  *     return have_slices or nslices, tuple(result)
   13325             :  * 
   13326             :  * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1:             # <<<<<<<<<<<<<<
   13327             :  *     for suboffset in suboffsets[:ndim]:
   13328             :  *         if suboffset >= 0:
   13329             :  */
   13330             : 
   13331           0 : static int assert_direct_dimensions(Py_ssize_t *__pyx_v_suboffsets, int __pyx_v_ndim) {
   13332           0 :   Py_ssize_t __pyx_v_suboffset;
   13333           0 :   int __pyx_r;
   13334           0 :   Py_ssize_t *__pyx_t_1;
   13335           0 :   Py_ssize_t *__pyx_t_2;
   13336           0 :   Py_ssize_t *__pyx_t_3;
   13337           0 :   int __pyx_t_4;
   13338           0 :   int __pyx_lineno = 0;
   13339           0 :   const char *__pyx_filename = NULL;
   13340           0 :   int __pyx_clineno = 0;
   13341             : 
   13342             :   /* "View.MemoryView":701
   13343             :  * 
   13344             :  * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1:
   13345             :  *     for suboffset in suboffsets[:ndim]:             # <<<<<<<<<<<<<<
   13346             :  *         if suboffset >= 0:
   13347             :  *             raise ValueError, "Indirect dimensions not supported"
   13348             :  */
   13349           0 :   __pyx_t_2 = (__pyx_v_suboffsets + __pyx_v_ndim);
   13350           0 :   for (__pyx_t_3 = __pyx_v_suboffsets; __pyx_t_3 < __pyx_t_2; __pyx_t_3++) {
   13351           0 :     __pyx_t_1 = __pyx_t_3;
   13352           0 :     __pyx_v_suboffset = (__pyx_t_1[0]);
   13353             : 
   13354             :     /* "View.MemoryView":702
   13355             :  * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1:
   13356             :  *     for suboffset in suboffsets[:ndim]:
   13357             :  *         if suboffset >= 0:             # <<<<<<<<<<<<<<
   13358             :  *             raise ValueError, "Indirect dimensions not supported"
   13359             :  *     return 0  # return type just used as an error flag
   13360             :  */
   13361           0 :     __pyx_t_4 = (__pyx_v_suboffset >= 0);
   13362           0 :     if (unlikely(__pyx_t_4)) {
   13363             : 
   13364             :       /* "View.MemoryView":703
   13365             :  *     for suboffset in suboffsets[:ndim]:
   13366             :  *         if suboffset >= 0:
   13367             :  *             raise ValueError, "Indirect dimensions not supported"             # <<<<<<<<<<<<<<
   13368             :  *     return 0  # return type just used as an error flag
   13369             :  * 
   13370             :  */
   13371           0 :       __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Indirect_dimensions_not_supporte, 0, 0);
   13372           0 :       __PYX_ERR(1, 703, __pyx_L1_error)
   13373             : 
   13374             :       /* "View.MemoryView":702
   13375             :  * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1:
   13376             :  *     for suboffset in suboffsets[:ndim]:
   13377             :  *         if suboffset >= 0:             # <<<<<<<<<<<<<<
   13378             :  *             raise ValueError, "Indirect dimensions not supported"
   13379             :  *     return 0  # return type just used as an error flag
   13380             :  */
   13381             :     }
   13382             :   }
   13383             : 
   13384             :   /* "View.MemoryView":704
   13385             :  *         if suboffset >= 0:
   13386             :  *             raise ValueError, "Indirect dimensions not supported"
   13387             :  *     return 0  # return type just used as an error flag             # <<<<<<<<<<<<<<
   13388             :  * 
   13389             :  * 
   13390             :  */
   13391           0 :   __pyx_r = 0;
   13392           0 :   goto __pyx_L0;
   13393             : 
   13394             :   /* "View.MemoryView":700
   13395             :  *     return have_slices or nslices, tuple(result)
   13396             :  * 
   13397             :  * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1:             # <<<<<<<<<<<<<<
   13398             :  *     for suboffset in suboffsets[:ndim]:
   13399             :  *         if suboffset >= 0:
   13400             :  */
   13401             : 
   13402             :   /* function exit code */
   13403           0 :   __pyx_L1_error:;
   13404           0 :   __Pyx_AddTraceback("View.MemoryView.assert_direct_dimensions", __pyx_clineno, __pyx_lineno, __pyx_filename);
   13405           0 :   __pyx_r = -1;
   13406           0 :   __pyx_L0:;
   13407           0 :   return __pyx_r;
   13408             : }
   13409             : 
   13410             : /* "View.MemoryView":711
   13411             :  * 
   13412             :  * @cname('__pyx_memview_slice')
   13413             :  * cdef memoryview memview_slice(memoryview memview, object indices):             # <<<<<<<<<<<<<<
   13414             :  *     cdef int new_ndim = 0, suboffset_dim = -1, dim
   13415             :  *     cdef bint negative_step
   13416             :  */
   13417             : 
   13418           0 : static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *__pyx_v_memview, PyObject *__pyx_v_indices) {
   13419           0 :   int __pyx_v_new_ndim;
   13420           0 :   int __pyx_v_suboffset_dim;
   13421           0 :   int __pyx_v_dim;
   13422           0 :   __Pyx_memviewslice __pyx_v_src;
   13423           0 :   __Pyx_memviewslice __pyx_v_dst;
   13424           0 :   __Pyx_memviewslice *__pyx_v_p_src;
   13425           0 :   struct __pyx_memoryviewslice_obj *__pyx_v_memviewsliceobj = 0;
   13426           0 :   __Pyx_memviewslice *__pyx_v_p_dst;
   13427           0 :   int *__pyx_v_p_suboffset_dim;
   13428           0 :   Py_ssize_t __pyx_v_start;
   13429           0 :   Py_ssize_t __pyx_v_stop;
   13430           0 :   Py_ssize_t __pyx_v_step;
   13431           0 :   Py_ssize_t __pyx_v_cindex;
   13432           0 :   int __pyx_v_have_start;
   13433           0 :   int __pyx_v_have_stop;
   13434           0 :   int __pyx_v_have_step;
   13435           0 :   PyObject *__pyx_v_index = NULL;
   13436           0 :   struct __pyx_memoryview_obj *__pyx_r = NULL;
   13437             :   __Pyx_RefNannyDeclarations
   13438           0 :   int __pyx_t_1;
   13439           0 :   PyObject *__pyx_t_2 = NULL;
   13440           0 :   struct __pyx_memoryview_obj *__pyx_t_3;
   13441           0 :   char *__pyx_t_4;
   13442           0 :   int __pyx_t_5;
   13443           0 :   Py_ssize_t __pyx_t_6;
   13444           0 :   PyObject *(*__pyx_t_7)(PyObject *);
   13445           0 :   PyObject *__pyx_t_8 = NULL;
   13446           0 :   Py_ssize_t __pyx_t_9;
   13447           0 :   int __pyx_t_10;
   13448           0 :   Py_ssize_t __pyx_t_11;
   13449           0 :   int __pyx_lineno = 0;
   13450           0 :   const char *__pyx_filename = NULL;
   13451           0 :   int __pyx_clineno = 0;
   13452           0 :   __Pyx_RefNannySetupContext("memview_slice", 1);
   13453             : 
   13454             :   /* "View.MemoryView":712
   13455             :  * @cname('__pyx_memview_slice')
   13456             :  * cdef memoryview memview_slice(memoryview memview, object indices):
   13457             :  *     cdef int new_ndim = 0, suboffset_dim = -1, dim             # <<<<<<<<<<<<<<
   13458             :  *     cdef bint negative_step
   13459             :  *     cdef __Pyx_memviewslice src, dst
   13460             :  */
   13461           0 :   __pyx_v_new_ndim = 0;
   13462           0 :   __pyx_v_suboffset_dim = -1;
   13463             : 
   13464             :   /* "View.MemoryView":719
   13465             :  * 
   13466             :  * 
   13467             :  *     memset(&dst, 0, sizeof(dst))             # <<<<<<<<<<<<<<
   13468             :  * 
   13469             :  *     cdef _memoryviewslice memviewsliceobj
   13470             :  */
   13471           0 :   (void)(memset((&__pyx_v_dst), 0, (sizeof(__pyx_v_dst))));
   13472             : 
   13473             :   /* "View.MemoryView":723
   13474             :  *     cdef _memoryviewslice memviewsliceobj
   13475             :  * 
   13476             :  *     assert memview.view.ndim > 0             # <<<<<<<<<<<<<<
   13477             :  * 
   13478             :  *     if isinstance(memview, _memoryviewslice):
   13479             :  */
   13480             :   #ifndef CYTHON_WITHOUT_ASSERTIONS
   13481           0 :   if (unlikely(__pyx_assertions_enabled())) {
   13482           0 :     __pyx_t_1 = (__pyx_v_memview->view.ndim > 0);
   13483           0 :     if (unlikely(!__pyx_t_1)) {
   13484           0 :       __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
   13485           0 :       __PYX_ERR(1, 723, __pyx_L1_error)
   13486             :     }
   13487             :   }
   13488             :   #else
   13489             :   if ((1)); else __PYX_ERR(1, 723, __pyx_L1_error)
   13490             :   #endif
   13491             : 
   13492             :   /* "View.MemoryView":725
   13493             :  *     assert memview.view.ndim > 0
   13494             :  * 
   13495             :  *     if isinstance(memview, _memoryviewslice):             # <<<<<<<<<<<<<<
   13496             :  *         memviewsliceobj = memview
   13497             :  *         p_src = &memviewsliceobj.from_slice
   13498             :  */
   13499           0 :   __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); 
   13500           0 :   if (__pyx_t_1) {
   13501             : 
   13502             :     /* "View.MemoryView":726
   13503             :  * 
   13504             :  *     if isinstance(memview, _memoryviewslice):
   13505             :  *         memviewsliceobj = memview             # <<<<<<<<<<<<<<
   13506             :  *         p_src = &memviewsliceobj.from_slice
   13507             :  *     else:
   13508             :  */
   13509           0 :     if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(1, 726, __pyx_L1_error)
   13510           0 :     __pyx_t_2 = ((PyObject *)__pyx_v_memview);
   13511           0 :     __Pyx_INCREF(__pyx_t_2);
   13512           0 :     __pyx_v_memviewsliceobj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2);
   13513           0 :     __pyx_t_2 = 0;
   13514             : 
   13515             :     /* "View.MemoryView":727
   13516             :  *     if isinstance(memview, _memoryviewslice):
   13517             :  *         memviewsliceobj = memview
   13518             :  *         p_src = &memviewsliceobj.from_slice             # <<<<<<<<<<<<<<
   13519             :  *     else:
   13520             :  *         slice_copy(memview, &src)
   13521             :  */
   13522           0 :     __pyx_v_p_src = (&__pyx_v_memviewsliceobj->from_slice);
   13523             : 
   13524             :     /* "View.MemoryView":725
   13525             :  *     assert memview.view.ndim > 0
   13526             :  * 
   13527             :  *     if isinstance(memview, _memoryviewslice):             # <<<<<<<<<<<<<<
   13528             :  *         memviewsliceobj = memview
   13529             :  *         p_src = &memviewsliceobj.from_slice
   13530             :  */
   13531           0 :     goto __pyx_L3;
   13532             :   }
   13533             : 
   13534             :   /* "View.MemoryView":729
   13535             :  *         p_src = &memviewsliceobj.from_slice
   13536             :  *     else:
   13537             :  *         slice_copy(memview, &src)             # <<<<<<<<<<<<<<
   13538             :  *         p_src = &src
   13539             :  * 
   13540             :  */
   13541             :   /*else*/ {
   13542           0 :     __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_src));
   13543             : 
   13544             :     /* "View.MemoryView":730
   13545             :  *     else:
   13546             :  *         slice_copy(memview, &src)
   13547             :  *         p_src = &src             # <<<<<<<<<<<<<<
   13548             :  * 
   13549             :  * 
   13550             :  */
   13551           0 :     __pyx_v_p_src = (&__pyx_v_src);
   13552             :   }
   13553           0 :   __pyx_L3:;
   13554             : 
   13555             :   /* "View.MemoryView":736
   13556             :  * 
   13557             :  * 
   13558             :  *     dst.memview = p_src.memview             # <<<<<<<<<<<<<<
   13559             :  *     dst.data = p_src.data
   13560             :  * 
   13561             :  */
   13562           0 :   __pyx_t_3 = __pyx_v_p_src->memview;
   13563           0 :   __pyx_v_dst.memview = __pyx_t_3;
   13564             : 
   13565             :   /* "View.MemoryView":737
   13566             :  * 
   13567             :  *     dst.memview = p_src.memview
   13568             :  *     dst.data = p_src.data             # <<<<<<<<<<<<<<
   13569             :  * 
   13570             :  * 
   13571             :  */
   13572           0 :   __pyx_t_4 = __pyx_v_p_src->data;
   13573           0 :   __pyx_v_dst.data = __pyx_t_4;
   13574             : 
   13575             :   /* "View.MemoryView":742
   13576             :  * 
   13577             :  * 
   13578             :  *     cdef __Pyx_memviewslice *p_dst = &dst             # <<<<<<<<<<<<<<
   13579             :  *     cdef int *p_suboffset_dim = &suboffset_dim
   13580             :  *     cdef Py_ssize_t start, stop, step, cindex
   13581             :  */
   13582           0 :   __pyx_v_p_dst = (&__pyx_v_dst);
   13583             : 
   13584             :   /* "View.MemoryView":743
   13585             :  * 
   13586             :  *     cdef __Pyx_memviewslice *p_dst = &dst
   13587             :  *     cdef int *p_suboffset_dim = &suboffset_dim             # <<<<<<<<<<<<<<
   13588             :  *     cdef Py_ssize_t start, stop, step, cindex
   13589             :  *     cdef bint have_start, have_stop, have_step
   13590             :  */
   13591           0 :   __pyx_v_p_suboffset_dim = (&__pyx_v_suboffset_dim);
   13592             : 
   13593             :   /* "View.MemoryView":747
   13594             :  *     cdef bint have_start, have_stop, have_step
   13595             :  * 
   13596             :  *     for dim, index in enumerate(indices):             # <<<<<<<<<<<<<<
   13597             :  *         if PyIndex_Check(index):
   13598             :  *             cindex = index
   13599             :  */
   13600           0 :   __pyx_t_5 = 0;
   13601           0 :   if (likely(PyList_CheckExact(__pyx_v_indices)) || PyTuple_CheckExact(__pyx_v_indices)) {
   13602           0 :     __pyx_t_2 = __pyx_v_indices; __Pyx_INCREF(__pyx_t_2);
   13603           0 :     __pyx_t_6 = 0;
   13604           0 :     __pyx_t_7 = NULL;
   13605             :   } else {
   13606           0 :     __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_indices); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 747, __pyx_L1_error)
   13607           0 :     __Pyx_GOTREF(__pyx_t_2);
   13608           0 :     __pyx_t_7 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 747, __pyx_L1_error)
   13609             :   }
   13610           0 :   for (;;) {
   13611           0 :     if (likely(!__pyx_t_7)) {
   13612           0 :       if (likely(PyList_CheckExact(__pyx_t_2))) {
   13613             :         {
   13614           0 :           Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
   13615             :           #if !CYTHON_ASSUME_SAFE_MACROS
   13616             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 747, __pyx_L1_error)
   13617             :           #endif
   13618           0 :           if (__pyx_t_6 >= __pyx_temp) break;
   13619             :         }
   13620             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   13621           0 :         __pyx_t_8 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(1, 747, __pyx_L1_error)
   13622             :         #else
   13623             :         __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 747, __pyx_L1_error)
   13624             :         __Pyx_GOTREF(__pyx_t_8);
   13625             :         #endif
   13626             :       } else {
   13627             :         {
   13628           0 :           Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
   13629             :           #if !CYTHON_ASSUME_SAFE_MACROS
   13630             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 747, __pyx_L1_error)
   13631             :           #endif
   13632           0 :           if (__pyx_t_6 >= __pyx_temp) break;
   13633             :         }
   13634             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   13635           0 :         __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(1, 747, __pyx_L1_error)
   13636             :         #else
   13637             :         __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 747, __pyx_L1_error)
   13638             :         __Pyx_GOTREF(__pyx_t_8);
   13639             :         #endif
   13640             :       }
   13641             :     } else {
   13642           0 :       __pyx_t_8 = __pyx_t_7(__pyx_t_2);
   13643           0 :       if (unlikely(!__pyx_t_8)) {
   13644           0 :         PyObject* exc_type = PyErr_Occurred();
   13645           0 :         if (exc_type) {
   13646           0 :           if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
   13647           0 :           else __PYX_ERR(1, 747, __pyx_L1_error)
   13648             :         }
   13649             :         break;
   13650             :       }
   13651           0 :       __Pyx_GOTREF(__pyx_t_8);
   13652             :     }
   13653           0 :     __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_8);
   13654           0 :     __pyx_t_8 = 0;
   13655           0 :     __pyx_v_dim = __pyx_t_5;
   13656           0 :     __pyx_t_5 = (__pyx_t_5 + 1);
   13657             : 
   13658             :     /* "View.MemoryView":748
   13659             :  * 
   13660             :  *     for dim, index in enumerate(indices):
   13661             :  *         if PyIndex_Check(index):             # <<<<<<<<<<<<<<
   13662             :  *             cindex = index
   13663             :  *             slice_memviewslice(
   13664             :  */
   13665           0 :     __pyx_t_1 = (PyIndex_Check(__pyx_v_index) != 0);
   13666           0 :     if (__pyx_t_1) {
   13667             : 
   13668             :       /* "View.MemoryView":749
   13669             :  *     for dim, index in enumerate(indices):
   13670             :  *         if PyIndex_Check(index):
   13671             :  *             cindex = index             # <<<<<<<<<<<<<<
   13672             :  *             slice_memviewslice(
   13673             :  *                 p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim],
   13674             :  */
   13675           0 :       __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 749, __pyx_L1_error)
   13676           0 :       __pyx_v_cindex = __pyx_t_9;
   13677             : 
   13678             :       /* "View.MemoryView":750
   13679             :  *         if PyIndex_Check(index):
   13680             :  *             cindex = index
   13681             :  *             slice_memviewslice(             # <<<<<<<<<<<<<<
   13682             :  *                 p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim],
   13683             :  *                 dim, new_ndim, p_suboffset_dim,
   13684             :  */
   13685           0 :       __pyx_t_10 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_cindex, 0, 0, 0, 0, 0, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(1, 750, __pyx_L1_error)
   13686             : 
   13687             :       /* "View.MemoryView":748
   13688             :  * 
   13689             :  *     for dim, index in enumerate(indices):
   13690             :  *         if PyIndex_Check(index):             # <<<<<<<<<<<<<<
   13691             :  *             cindex = index
   13692             :  *             slice_memviewslice(
   13693             :  */
   13694           0 :       goto __pyx_L6;
   13695             :     }
   13696             : 
   13697             :     /* "View.MemoryView":756
   13698             :  *                 0, 0, 0, # have_{start,stop,step}
   13699             :  *                 False)
   13700             :  *         elif index is None:             # <<<<<<<<<<<<<<
   13701             :  *             p_dst.shape[new_ndim] = 1
   13702             :  *             p_dst.strides[new_ndim] = 0
   13703             :  */
   13704           0 :     __pyx_t_1 = (__pyx_v_index == Py_None);
   13705           0 :     if (__pyx_t_1) {
   13706             : 
   13707             :       /* "View.MemoryView":757
   13708             :  *                 False)
   13709             :  *         elif index is None:
   13710             :  *             p_dst.shape[new_ndim] = 1             # <<<<<<<<<<<<<<
   13711             :  *             p_dst.strides[new_ndim] = 0
   13712             :  *             p_dst.suboffsets[new_ndim] = -1
   13713             :  */
   13714           0 :       (__pyx_v_p_dst->shape[__pyx_v_new_ndim]) = 1;
   13715             : 
   13716             :       /* "View.MemoryView":758
   13717             :  *         elif index is None:
   13718             :  *             p_dst.shape[new_ndim] = 1
   13719             :  *             p_dst.strides[new_ndim] = 0             # <<<<<<<<<<<<<<
   13720             :  *             p_dst.suboffsets[new_ndim] = -1
   13721             :  *             new_ndim += 1
   13722             :  */
   13723           0 :       (__pyx_v_p_dst->strides[__pyx_v_new_ndim]) = 0;
   13724             : 
   13725             :       /* "View.MemoryView":759
   13726             :  *             p_dst.shape[new_ndim] = 1
   13727             :  *             p_dst.strides[new_ndim] = 0
   13728             :  *             p_dst.suboffsets[new_ndim] = -1             # <<<<<<<<<<<<<<
   13729             :  *             new_ndim += 1
   13730             :  *         else:
   13731             :  */
   13732           0 :       (__pyx_v_p_dst->suboffsets[__pyx_v_new_ndim]) = -1L;
   13733             : 
   13734             :       /* "View.MemoryView":760
   13735             :  *             p_dst.strides[new_ndim] = 0
   13736             :  *             p_dst.suboffsets[new_ndim] = -1
   13737             :  *             new_ndim += 1             # <<<<<<<<<<<<<<
   13738             :  *         else:
   13739             :  *             start = index.start or 0
   13740             :  */
   13741           0 :       __pyx_v_new_ndim = (__pyx_v_new_ndim + 1);
   13742             : 
   13743             :       /* "View.MemoryView":756
   13744             :  *                 0, 0, 0, # have_{start,stop,step}
   13745             :  *                 False)
   13746             :  *         elif index is None:             # <<<<<<<<<<<<<<
   13747             :  *             p_dst.shape[new_ndim] = 1
   13748             :  *             p_dst.strides[new_ndim] = 0
   13749             :  */
   13750           0 :       goto __pyx_L6;
   13751             :     }
   13752             : 
   13753             :     /* "View.MemoryView":762
   13754             :  *             new_ndim += 1
   13755             :  *         else:
   13756             :  *             start = index.start or 0             # <<<<<<<<<<<<<<
   13757             :  *             stop = index.stop or 0
   13758             :  *             step = index.step or 0
   13759             :  */
   13760             :     /*else*/ {
   13761           0 :       __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 762, __pyx_L1_error)
   13762           0 :       __Pyx_GOTREF(__pyx_t_8);
   13763           0 :       __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 762, __pyx_L1_error)
   13764           0 :       if (!__pyx_t_1) {
   13765           0 :         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
   13766             :       } else {
   13767           0 :         __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 762, __pyx_L1_error)
   13768           0 :         __pyx_t_9 = __pyx_t_11;
   13769           0 :         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
   13770           0 :         goto __pyx_L7_bool_binop_done;
   13771             :       }
   13772             :       __pyx_t_9 = 0;
   13773           0 :       __pyx_L7_bool_binop_done:;
   13774           0 :       __pyx_v_start = __pyx_t_9;
   13775             : 
   13776             :       /* "View.MemoryView":763
   13777             :  *         else:
   13778             :  *             start = index.start or 0
   13779             :  *             stop = index.stop or 0             # <<<<<<<<<<<<<<
   13780             :  *             step = index.step or 0
   13781             :  * 
   13782             :  */
   13783           0 :       __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 763, __pyx_L1_error)
   13784           0 :       __Pyx_GOTREF(__pyx_t_8);
   13785           0 :       __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 763, __pyx_L1_error)
   13786           0 :       if (!__pyx_t_1) {
   13787           0 :         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
   13788             :       } else {
   13789           0 :         __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 763, __pyx_L1_error)
   13790           0 :         __pyx_t_9 = __pyx_t_11;
   13791           0 :         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
   13792           0 :         goto __pyx_L9_bool_binop_done;
   13793             :       }
   13794             :       __pyx_t_9 = 0;
   13795           0 :       __pyx_L9_bool_binop_done:;
   13796           0 :       __pyx_v_stop = __pyx_t_9;
   13797             : 
   13798             :       /* "View.MemoryView":764
   13799             :  *             start = index.start or 0
   13800             :  *             stop = index.stop or 0
   13801             :  *             step = index.step or 0             # <<<<<<<<<<<<<<
   13802             :  * 
   13803             :  *             have_start = index.start is not None
   13804             :  */
   13805           0 :       __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 764, __pyx_L1_error)
   13806           0 :       __Pyx_GOTREF(__pyx_t_8);
   13807           0 :       __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 764, __pyx_L1_error)
   13808           0 :       if (!__pyx_t_1) {
   13809           0 :         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
   13810             :       } else {
   13811           0 :         __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 764, __pyx_L1_error)
   13812           0 :         __pyx_t_9 = __pyx_t_11;
   13813           0 :         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
   13814           0 :         goto __pyx_L11_bool_binop_done;
   13815             :       }
   13816             :       __pyx_t_9 = 0;
   13817           0 :       __pyx_L11_bool_binop_done:;
   13818           0 :       __pyx_v_step = __pyx_t_9;
   13819             : 
   13820             :       /* "View.MemoryView":766
   13821             :  *             step = index.step or 0
   13822             :  * 
   13823             :  *             have_start = index.start is not None             # <<<<<<<<<<<<<<
   13824             :  *             have_stop = index.stop is not None
   13825             :  *             have_step = index.step is not None
   13826             :  */
   13827           0 :       __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 766, __pyx_L1_error)
   13828           0 :       __Pyx_GOTREF(__pyx_t_8);
   13829           0 :       __pyx_t_1 = (__pyx_t_8 != Py_None);
   13830           0 :       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
   13831           0 :       __pyx_v_have_start = __pyx_t_1;
   13832             : 
   13833             :       /* "View.MemoryView":767
   13834             :  * 
   13835             :  *             have_start = index.start is not None
   13836             :  *             have_stop = index.stop is not None             # <<<<<<<<<<<<<<
   13837             :  *             have_step = index.step is not None
   13838             :  * 
   13839             :  */
   13840           0 :       __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 767, __pyx_L1_error)
   13841           0 :       __Pyx_GOTREF(__pyx_t_8);
   13842           0 :       __pyx_t_1 = (__pyx_t_8 != Py_None);
   13843           0 :       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
   13844           0 :       __pyx_v_have_stop = __pyx_t_1;
   13845             : 
   13846             :       /* "View.MemoryView":768
   13847             :  *             have_start = index.start is not None
   13848             :  *             have_stop = index.stop is not None
   13849             :  *             have_step = index.step is not None             # <<<<<<<<<<<<<<
   13850             :  * 
   13851             :  *             slice_memviewslice(
   13852             :  */
   13853           0 :       __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 768, __pyx_L1_error)
   13854           0 :       __Pyx_GOTREF(__pyx_t_8);
   13855           0 :       __pyx_t_1 = (__pyx_t_8 != Py_None);
   13856           0 :       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
   13857           0 :       __pyx_v_have_step = __pyx_t_1;
   13858             : 
   13859             :       /* "View.MemoryView":770
   13860             :  *             have_step = index.step is not None
   13861             :  * 
   13862             :  *             slice_memviewslice(             # <<<<<<<<<<<<<<
   13863             :  *                 p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim],
   13864             :  *                 dim, new_ndim, p_suboffset_dim,
   13865             :  */
   13866           0 :       __pyx_t_10 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_have_start, __pyx_v_have_stop, __pyx_v_have_step, 1); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(1, 770, __pyx_L1_error)
   13867             : 
   13868             :       /* "View.MemoryView":776
   13869             :  *                 have_start, have_stop, have_step,
   13870             :  *                 True)
   13871             :  *             new_ndim += 1             # <<<<<<<<<<<<<<
   13872             :  * 
   13873             :  *     if isinstance(memview, _memoryviewslice):
   13874             :  */
   13875           0 :       __pyx_v_new_ndim = (__pyx_v_new_ndim + 1);
   13876             :     }
   13877           0 :     __pyx_L6:;
   13878             : 
   13879             :     /* "View.MemoryView":747
   13880             :  *     cdef bint have_start, have_stop, have_step
   13881             :  * 
   13882             :  *     for dim, index in enumerate(indices):             # <<<<<<<<<<<<<<
   13883             :  *         if PyIndex_Check(index):
   13884             :  *             cindex = index
   13885             :  */
   13886             :   }
   13887           0 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   13888             : 
   13889             :   /* "View.MemoryView":778
   13890             :  *             new_ndim += 1
   13891             :  * 
   13892             :  *     if isinstance(memview, _memoryviewslice):             # <<<<<<<<<<<<<<
   13893             :  *         return memoryview_fromslice(dst, new_ndim,
   13894             :  *                                     memviewsliceobj.to_object_func,
   13895             :  */
   13896           0 :   __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); 
   13897           0 :   if (__pyx_t_1) {
   13898             : 
   13899             :     /* "View.MemoryView":779
   13900             :  * 
   13901             :  *     if isinstance(memview, _memoryviewslice):
   13902             :  *         return memoryview_fromslice(dst, new_ndim,             # <<<<<<<<<<<<<<
   13903             :  *                                     memviewsliceobj.to_object_func,
   13904             :  *                                     memviewsliceobj.to_dtype_func,
   13905             :  */
   13906           0 :     __Pyx_XDECREF((PyObject *)__pyx_r);
   13907             : 
   13908             :     /* "View.MemoryView":780
   13909             :  *     if isinstance(memview, _memoryviewslice):
   13910             :  *         return memoryview_fromslice(dst, new_ndim,
   13911             :  *                                     memviewsliceobj.to_object_func,             # <<<<<<<<<<<<<<
   13912             :  *                                     memviewsliceobj.to_dtype_func,
   13913             :  *                                     memview.dtype_is_object)
   13914             :  */
   13915           0 :     if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(1, 780, __pyx_L1_error) }
   13916             : 
   13917             :     /* "View.MemoryView":781
   13918             :  *         return memoryview_fromslice(dst, new_ndim,
   13919             :  *                                     memviewsliceobj.to_object_func,
   13920             :  *                                     memviewsliceobj.to_dtype_func,             # <<<<<<<<<<<<<<
   13921             :  *                                     memview.dtype_is_object)
   13922             :  *     else:
   13923             :  */
   13924           0 :     if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(1, 781, __pyx_L1_error) }
   13925             : 
   13926             :     /* "View.MemoryView":779
   13927             :  * 
   13928             :  *     if isinstance(memview, _memoryviewslice):
   13929             :  *         return memoryview_fromslice(dst, new_ndim,             # <<<<<<<<<<<<<<
   13930             :  *                                     memviewsliceobj.to_object_func,
   13931             :  *                                     memviewsliceobj.to_dtype_func,
   13932             :  */
   13933           0 :     __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, __pyx_v_memviewsliceobj->to_object_func, __pyx_v_memviewsliceobj->to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 779, __pyx_L1_error)
   13934           0 :     __Pyx_GOTREF(__pyx_t_2);
   13935           0 :     if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_memoryview_type))))) __PYX_ERR(1, 779, __pyx_L1_error)
   13936           0 :     __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_2);
   13937           0 :     __pyx_t_2 = 0;
   13938           0 :     goto __pyx_L0;
   13939             : 
   13940             :     /* "View.MemoryView":778
   13941             :  *             new_ndim += 1
   13942             :  * 
   13943             :  *     if isinstance(memview, _memoryviewslice):             # <<<<<<<<<<<<<<
   13944             :  *         return memoryview_fromslice(dst, new_ndim,
   13945             :  *                                     memviewsliceobj.to_object_func,
   13946             :  */
   13947             :   }
   13948             : 
   13949             :   /* "View.MemoryView":784
   13950             :  *                                     memview.dtype_is_object)
   13951             :  *     else:
   13952             :  *         return memoryview_fromslice(dst, new_ndim, NULL, NULL,             # <<<<<<<<<<<<<<
   13953             :  *                                     memview.dtype_is_object)
   13954             :  * 
   13955             :  */
   13956             :   /*else*/ {
   13957           0 :     __Pyx_XDECREF((PyObject *)__pyx_r);
   13958             : 
   13959             :     /* "View.MemoryView":785
   13960             :  *     else:
   13961             :  *         return memoryview_fromslice(dst, new_ndim, NULL, NULL,
   13962             :  *                                     memview.dtype_is_object)             # <<<<<<<<<<<<<<
   13963             :  * 
   13964             :  * 
   13965             :  */
   13966           0 :     __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, NULL, NULL, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 784, __pyx_L1_error)
   13967           0 :     __Pyx_GOTREF(__pyx_t_2);
   13968             : 
   13969             :     /* "View.MemoryView":784
   13970             :  *                                     memview.dtype_is_object)
   13971             :  *     else:
   13972             :  *         return memoryview_fromslice(dst, new_ndim, NULL, NULL,             # <<<<<<<<<<<<<<
   13973             :  *                                     memview.dtype_is_object)
   13974             :  * 
   13975             :  */
   13976           0 :     if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_memoryview_type))))) __PYX_ERR(1, 784, __pyx_L1_error)
   13977           0 :     __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_2);
   13978           0 :     __pyx_t_2 = 0;
   13979           0 :     goto __pyx_L0;
   13980             :   }
   13981             : 
   13982             :   /* "View.MemoryView":711
   13983             :  * 
   13984             :  * @cname('__pyx_memview_slice')
   13985             :  * cdef memoryview memview_slice(memoryview memview, object indices):             # <<<<<<<<<<<<<<
   13986             :  *     cdef int new_ndim = 0, suboffset_dim = -1, dim
   13987             :  *     cdef bint negative_step
   13988             :  */
   13989             : 
   13990             :   /* function exit code */
   13991           0 :   __pyx_L1_error:;
   13992           0 :   __Pyx_XDECREF(__pyx_t_2);
   13993           0 :   __Pyx_XDECREF(__pyx_t_8);
   13994           0 :   __Pyx_AddTraceback("View.MemoryView.memview_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
   13995           0 :   __pyx_r = 0;
   13996           0 :   __pyx_L0:;
   13997           0 :   __Pyx_XDECREF((PyObject *)__pyx_v_memviewsliceobj);
   13998           0 :   __Pyx_XDECREF(__pyx_v_index);
   13999           0 :   __Pyx_XGIVEREF((PyObject *)__pyx_r);
   14000           0 :   __Pyx_RefNannyFinishContext();
   14001           0 :   return __pyx_r;
   14002             : }
   14003             : 
   14004             : /* "View.MemoryView":793
   14005             :  * 
   14006             :  * @cname('__pyx_memoryview_slice_memviewslice')
   14007             :  * cdef int slice_memviewslice(             # <<<<<<<<<<<<<<
   14008             :  *         __Pyx_memviewslice *dst,
   14009             :  *         Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset,
   14010             :  */
   14011             : 
   14012           0 : static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *__pyx_v_dst, Py_ssize_t __pyx_v_shape, Py_ssize_t __pyx_v_stride, Py_ssize_t __pyx_v_suboffset, int __pyx_v_dim, int __pyx_v_new_ndim, int *__pyx_v_suboffset_dim, Py_ssize_t __pyx_v_start, Py_ssize_t __pyx_v_stop, Py_ssize_t __pyx_v_step, int __pyx_v_have_start, int __pyx_v_have_stop, int __pyx_v_have_step, int __pyx_v_is_slice) {
   14013           0 :   Py_ssize_t __pyx_v_new_shape;
   14014           0 :   int __pyx_v_negative_step;
   14015           0 :   int __pyx_r;
   14016           0 :   int __pyx_t_1;
   14017           0 :   int __pyx_t_2;
   14018           0 :   int __pyx_t_3;
   14019           0 :   int __pyx_lineno = 0;
   14020           0 :   const char *__pyx_filename = NULL;
   14021           0 :   int __pyx_clineno = 0;
   14022             :   #ifdef WITH_THREAD
   14023           0 :   PyGILState_STATE __pyx_gilstate_save;
   14024             :   #endif
   14025             : 
   14026             :   /* "View.MemoryView":813
   14027             :  *     cdef bint negative_step
   14028             :  * 
   14029             :  *     if not is_slice:             # <<<<<<<<<<<<<<
   14030             :  * 
   14031             :  *         if start < 0:
   14032             :  */
   14033           0 :   __pyx_t_1 = (!__pyx_v_is_slice);
   14034           0 :   if (__pyx_t_1) {
   14035             : 
   14036             :     /* "View.MemoryView":815
   14037             :  *     if not is_slice:
   14038             :  * 
   14039             :  *         if start < 0:             # <<<<<<<<<<<<<<
   14040             :  *             start += shape
   14041             :  *         if not 0 <= start < shape:
   14042             :  */
   14043           0 :     __pyx_t_1 = (__pyx_v_start < 0);
   14044           0 :     if (__pyx_t_1) {
   14045             : 
   14046             :       /* "View.MemoryView":816
   14047             :  * 
   14048             :  *         if start < 0:
   14049             :  *             start += shape             # <<<<<<<<<<<<<<
   14050             :  *         if not 0 <= start < shape:
   14051             :  *             _err_dim(PyExc_IndexError, "Index out of bounds (axis %d)", dim)
   14052             :  */
   14053           0 :       __pyx_v_start = (__pyx_v_start + __pyx_v_shape);
   14054             : 
   14055             :       /* "View.MemoryView":815
   14056             :  *     if not is_slice:
   14057             :  * 
   14058             :  *         if start < 0:             # <<<<<<<<<<<<<<
   14059             :  *             start += shape
   14060             :  *         if not 0 <= start < shape:
   14061             :  */
   14062             :     }
   14063             : 
   14064             :     /* "View.MemoryView":817
   14065             :  *         if start < 0:
   14066             :  *             start += shape
   14067             :  *         if not 0 <= start < shape:             # <<<<<<<<<<<<<<
   14068             :  *             _err_dim(PyExc_IndexError, "Index out of bounds (axis %d)", dim)
   14069             :  *     else:
   14070             :  */
   14071           0 :     __pyx_t_1 = (0 <= __pyx_v_start);
   14072           0 :     if (__pyx_t_1) {
   14073           0 :       __pyx_t_1 = (__pyx_v_start < __pyx_v_shape);
   14074             :     }
   14075           0 :     __pyx_t_2 = (!__pyx_t_1);
   14076           0 :     if (__pyx_t_2) {
   14077             : 
   14078             :       /* "View.MemoryView":818
   14079             :  *             start += shape
   14080             :  *         if not 0 <= start < shape:
   14081             :  *             _err_dim(PyExc_IndexError, "Index out of bounds (axis %d)", dim)             # <<<<<<<<<<<<<<
   14082             :  *     else:
   14083             :  * 
   14084             :  */
   14085           0 :       __pyx_t_3 = __pyx_memoryview_err_dim(PyExc_IndexError, __pyx_kp_s_Index_out_of_bounds_axis_d, __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 818, __pyx_L1_error)
   14086             : 
   14087             :       /* "View.MemoryView":817
   14088             :  *         if start < 0:
   14089             :  *             start += shape
   14090             :  *         if not 0 <= start < shape:             # <<<<<<<<<<<<<<
   14091             :  *             _err_dim(PyExc_IndexError, "Index out of bounds (axis %d)", dim)
   14092             :  *     else:
   14093             :  */
   14094             :     }
   14095             : 
   14096             :     /* "View.MemoryView":813
   14097             :  *     cdef bint negative_step
   14098             :  * 
   14099             :  *     if not is_slice:             # <<<<<<<<<<<<<<
   14100             :  * 
   14101             :  *         if start < 0:
   14102             :  */
   14103           0 :     goto __pyx_L3;
   14104             :   }
   14105             : 
   14106             :   /* "View.MemoryView":821
   14107             :  *     else:
   14108             :  * 
   14109             :  *         if have_step:             # <<<<<<<<<<<<<<
   14110             :  *             negative_step = step < 0
   14111             :  *             if step == 0:
   14112             :  */
   14113             :   /*else*/ {
   14114           0 :     __pyx_t_2 = (__pyx_v_have_step != 0);
   14115           0 :     if (__pyx_t_2) {
   14116             : 
   14117             :       /* "View.MemoryView":822
   14118             :  * 
   14119             :  *         if have_step:
   14120             :  *             negative_step = step < 0             # <<<<<<<<<<<<<<
   14121             :  *             if step == 0:
   14122             :  *                 _err_dim(PyExc_ValueError, "Step may not be zero (axis %d)", dim)
   14123             :  */
   14124           0 :       __pyx_v_negative_step = (__pyx_v_step < 0);
   14125             : 
   14126             :       /* "View.MemoryView":823
   14127             :  *         if have_step:
   14128             :  *             negative_step = step < 0
   14129             :  *             if step == 0:             # <<<<<<<<<<<<<<
   14130             :  *                 _err_dim(PyExc_ValueError, "Step may not be zero (axis %d)", dim)
   14131             :  *         else:
   14132             :  */
   14133           0 :       __pyx_t_2 = (__pyx_v_step == 0);
   14134           0 :       if (__pyx_t_2) {
   14135             : 
   14136             :         /* "View.MemoryView":824
   14137             :  *             negative_step = step < 0
   14138             :  *             if step == 0:
   14139             :  *                 _err_dim(PyExc_ValueError, "Step may not be zero (axis %d)", dim)             # <<<<<<<<<<<<<<
   14140             :  *         else:
   14141             :  *             negative_step = False
   14142             :  */
   14143           0 :         __pyx_t_3 = __pyx_memoryview_err_dim(PyExc_ValueError, __pyx_kp_s_Step_may_not_be_zero_axis_d, __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 824, __pyx_L1_error)
   14144             : 
   14145             :         /* "View.MemoryView":823
   14146             :  *         if have_step:
   14147             :  *             negative_step = step < 0
   14148             :  *             if step == 0:             # <<<<<<<<<<<<<<
   14149             :  *                 _err_dim(PyExc_ValueError, "Step may not be zero (axis %d)", dim)
   14150             :  *         else:
   14151             :  */
   14152             :       }
   14153             : 
   14154             :       /* "View.MemoryView":821
   14155             :  *     else:
   14156             :  * 
   14157             :  *         if have_step:             # <<<<<<<<<<<<<<
   14158             :  *             negative_step = step < 0
   14159             :  *             if step == 0:
   14160             :  */
   14161           0 :       goto __pyx_L6;
   14162             :     }
   14163             : 
   14164             :     /* "View.MemoryView":826
   14165             :  *                 _err_dim(PyExc_ValueError, "Step may not be zero (axis %d)", dim)
   14166             :  *         else:
   14167             :  *             negative_step = False             # <<<<<<<<<<<<<<
   14168             :  *             step = 1
   14169             :  * 
   14170             :  */
   14171             :     /*else*/ {
   14172             :       __pyx_v_negative_step = 0;
   14173             : 
   14174             :       /* "View.MemoryView":827
   14175             :  *         else:
   14176             :  *             negative_step = False
   14177             :  *             step = 1             # <<<<<<<<<<<<<<
   14178             :  * 
   14179             :  * 
   14180             :  */
   14181             :       __pyx_v_step = 1;
   14182             :     }
   14183           0 :     __pyx_L6:;
   14184             : 
   14185             :     /* "View.MemoryView":830
   14186             :  * 
   14187             :  * 
   14188             :  *         if have_start:             # <<<<<<<<<<<<<<
   14189             :  *             if start < 0:
   14190             :  *                 start += shape
   14191             :  */
   14192           0 :     __pyx_t_2 = (__pyx_v_have_start != 0);
   14193           0 :     if (__pyx_t_2) {
   14194             : 
   14195             :       /* "View.MemoryView":831
   14196             :  * 
   14197             :  *         if have_start:
   14198             :  *             if start < 0:             # <<<<<<<<<<<<<<
   14199             :  *                 start += shape
   14200             :  *                 if start < 0:
   14201             :  */
   14202           0 :       __pyx_t_2 = (__pyx_v_start < 0);
   14203           0 :       if (__pyx_t_2) {
   14204             : 
   14205             :         /* "View.MemoryView":832
   14206             :  *         if have_start:
   14207             :  *             if start < 0:
   14208             :  *                 start += shape             # <<<<<<<<<<<<<<
   14209             :  *                 if start < 0:
   14210             :  *                     start = 0
   14211             :  */
   14212           0 :         __pyx_v_start = (__pyx_v_start + __pyx_v_shape);
   14213             : 
   14214             :         /* "View.MemoryView":833
   14215             :  *             if start < 0:
   14216             :  *                 start += shape
   14217             :  *                 if start < 0:             # <<<<<<<<<<<<<<
   14218             :  *                     start = 0
   14219             :  *             elif start >= shape:
   14220             :  */
   14221           0 :         __pyx_t_2 = (__pyx_v_start < 0);
   14222           0 :         if (__pyx_t_2) {
   14223             : 
   14224             :           /* "View.MemoryView":834
   14225             :  *                 start += shape
   14226             :  *                 if start < 0:
   14227             :  *                     start = 0             # <<<<<<<<<<<<<<
   14228             :  *             elif start >= shape:
   14229             :  *                 if negative_step:
   14230             :  */
   14231             :           __pyx_v_start = 0;
   14232             : 
   14233             :           /* "View.MemoryView":833
   14234             :  *             if start < 0:
   14235             :  *                 start += shape
   14236             :  *                 if start < 0:             # <<<<<<<<<<<<<<
   14237             :  *                     start = 0
   14238             :  *             elif start >= shape:
   14239             :  */
   14240             :         }
   14241             : 
   14242             :         /* "View.MemoryView":831
   14243             :  * 
   14244             :  *         if have_start:
   14245             :  *             if start < 0:             # <<<<<<<<<<<<<<
   14246             :  *                 start += shape
   14247             :  *                 if start < 0:
   14248             :  */
   14249           0 :         goto __pyx_L9;
   14250             :       }
   14251             : 
   14252             :       /* "View.MemoryView":835
   14253             :  *                 if start < 0:
   14254             :  *                     start = 0
   14255             :  *             elif start >= shape:             # <<<<<<<<<<<<<<
   14256             :  *                 if negative_step:
   14257             :  *                     start = shape - 1
   14258             :  */
   14259           0 :       __pyx_t_2 = (__pyx_v_start >= __pyx_v_shape);
   14260           0 :       if (__pyx_t_2) {
   14261             : 
   14262             :         /* "View.MemoryView":836
   14263             :  *                     start = 0
   14264             :  *             elif start >= shape:
   14265             :  *                 if negative_step:             # <<<<<<<<<<<<<<
   14266             :  *                     start = shape - 1
   14267             :  *                 else:
   14268             :  */
   14269           0 :         if (__pyx_v_negative_step) {
   14270             : 
   14271             :           /* "View.MemoryView":837
   14272             :  *             elif start >= shape:
   14273             :  *                 if negative_step:
   14274             :  *                     start = shape - 1             # <<<<<<<<<<<<<<
   14275             :  *                 else:
   14276             :  *                     start = shape
   14277             :  */
   14278           0 :           __pyx_v_start = (__pyx_v_shape - 1);
   14279             : 
   14280             :           /* "View.MemoryView":836
   14281             :  *                     start = 0
   14282             :  *             elif start >= shape:
   14283             :  *                 if negative_step:             # <<<<<<<<<<<<<<
   14284             :  *                     start = shape - 1
   14285             :  *                 else:
   14286             :  */
   14287           0 :           goto __pyx_L11;
   14288             :         }
   14289             : 
   14290             :         /* "View.MemoryView":839
   14291             :  *                     start = shape - 1
   14292             :  *                 else:
   14293             :  *                     start = shape             # <<<<<<<<<<<<<<
   14294             :  *         else:
   14295             :  *             if negative_step:
   14296             :  */
   14297             :         /*else*/ {
   14298             :           __pyx_v_start = __pyx_v_shape;
   14299             :         }
   14300           0 :         __pyx_L11:;
   14301             : 
   14302             :         /* "View.MemoryView":835
   14303             :  *                 if start < 0:
   14304             :  *                     start = 0
   14305             :  *             elif start >= shape:             # <<<<<<<<<<<<<<
   14306             :  *                 if negative_step:
   14307             :  *                     start = shape - 1
   14308             :  */
   14309             :       }
   14310           0 :       __pyx_L9:;
   14311             : 
   14312             :       /* "View.MemoryView":830
   14313             :  * 
   14314             :  * 
   14315             :  *         if have_start:             # <<<<<<<<<<<<<<
   14316             :  *             if start < 0:
   14317             :  *                 start += shape
   14318             :  */
   14319           0 :       goto __pyx_L8;
   14320             :     }
   14321             : 
   14322             :     /* "View.MemoryView":841
   14323             :  *                     start = shape
   14324             :  *         else:
   14325             :  *             if negative_step:             # <<<<<<<<<<<<<<
   14326             :  *                 start = shape - 1
   14327             :  *             else:
   14328             :  */
   14329             :     /*else*/ {
   14330           0 :       if (__pyx_v_negative_step) {
   14331             : 
   14332             :         /* "View.MemoryView":842
   14333             :  *         else:
   14334             :  *             if negative_step:
   14335             :  *                 start = shape - 1             # <<<<<<<<<<<<<<
   14336             :  *             else:
   14337             :  *                 start = 0
   14338             :  */
   14339           0 :         __pyx_v_start = (__pyx_v_shape - 1);
   14340             : 
   14341             :         /* "View.MemoryView":841
   14342             :  *                     start = shape
   14343             :  *         else:
   14344             :  *             if negative_step:             # <<<<<<<<<<<<<<
   14345             :  *                 start = shape - 1
   14346             :  *             else:
   14347             :  */
   14348           0 :         goto __pyx_L12;
   14349             :       }
   14350             : 
   14351             :       /* "View.MemoryView":844
   14352             :  *                 start = shape - 1
   14353             :  *             else:
   14354             :  *                 start = 0             # <<<<<<<<<<<<<<
   14355             :  * 
   14356             :  *         if have_stop:
   14357             :  */
   14358             :       /*else*/ {
   14359             :         __pyx_v_start = 0;
   14360             :       }
   14361           0 :       __pyx_L12:;
   14362             :     }
   14363           0 :     __pyx_L8:;
   14364             : 
   14365             :     /* "View.MemoryView":846
   14366             :  *                 start = 0
   14367             :  * 
   14368             :  *         if have_stop:             # <<<<<<<<<<<<<<
   14369             :  *             if stop < 0:
   14370             :  *                 stop += shape
   14371             :  */
   14372           0 :     __pyx_t_2 = (__pyx_v_have_stop != 0);
   14373           0 :     if (__pyx_t_2) {
   14374             : 
   14375             :       /* "View.MemoryView":847
   14376             :  * 
   14377             :  *         if have_stop:
   14378             :  *             if stop < 0:             # <<<<<<<<<<<<<<
   14379             :  *                 stop += shape
   14380             :  *                 if stop < 0:
   14381             :  */
   14382           0 :       __pyx_t_2 = (__pyx_v_stop < 0);
   14383           0 :       if (__pyx_t_2) {
   14384             : 
   14385             :         /* "View.MemoryView":848
   14386             :  *         if have_stop:
   14387             :  *             if stop < 0:
   14388             :  *                 stop += shape             # <<<<<<<<<<<<<<
   14389             :  *                 if stop < 0:
   14390             :  *                     stop = 0
   14391             :  */
   14392           0 :         __pyx_v_stop = (__pyx_v_stop + __pyx_v_shape);
   14393             : 
   14394             :         /* "View.MemoryView":849
   14395             :  *             if stop < 0:
   14396             :  *                 stop += shape
   14397             :  *                 if stop < 0:             # <<<<<<<<<<<<<<
   14398             :  *                     stop = 0
   14399             :  *             elif stop > shape:
   14400             :  */
   14401           0 :         __pyx_t_2 = (__pyx_v_stop < 0);
   14402           0 :         if (__pyx_t_2) {
   14403             : 
   14404             :           /* "View.MemoryView":850
   14405             :  *                 stop += shape
   14406             :  *                 if stop < 0:
   14407             :  *                     stop = 0             # <<<<<<<<<<<<<<
   14408             :  *             elif stop > shape:
   14409             :  *                 stop = shape
   14410             :  */
   14411             :           __pyx_v_stop = 0;
   14412             : 
   14413             :           /* "View.MemoryView":849
   14414             :  *             if stop < 0:
   14415             :  *                 stop += shape
   14416             :  *                 if stop < 0:             # <<<<<<<<<<<<<<
   14417             :  *                     stop = 0
   14418             :  *             elif stop > shape:
   14419             :  */
   14420             :         }
   14421             : 
   14422             :         /* "View.MemoryView":847
   14423             :  * 
   14424             :  *         if have_stop:
   14425             :  *             if stop < 0:             # <<<<<<<<<<<<<<
   14426             :  *                 stop += shape
   14427             :  *                 if stop < 0:
   14428             :  */
   14429           0 :         goto __pyx_L14;
   14430             :       }
   14431             : 
   14432             :       /* "View.MemoryView":851
   14433             :  *                 if stop < 0:
   14434             :  *                     stop = 0
   14435             :  *             elif stop > shape:             # <<<<<<<<<<<<<<
   14436             :  *                 stop = shape
   14437             :  *         else:
   14438             :  */
   14439           0 :       __pyx_t_2 = (__pyx_v_stop > __pyx_v_shape);
   14440           0 :       if (__pyx_t_2) {
   14441             : 
   14442             :         /* "View.MemoryView":852
   14443             :  *                     stop = 0
   14444             :  *             elif stop > shape:
   14445             :  *                 stop = shape             # <<<<<<<<<<<<<<
   14446             :  *         else:
   14447             :  *             if negative_step:
   14448             :  */
   14449             :         __pyx_v_stop = __pyx_v_shape;
   14450             : 
   14451             :         /* "View.MemoryView":851
   14452             :  *                 if stop < 0:
   14453             :  *                     stop = 0
   14454             :  *             elif stop > shape:             # <<<<<<<<<<<<<<
   14455             :  *                 stop = shape
   14456             :  *         else:
   14457             :  */
   14458             :       }
   14459           0 :       __pyx_L14:;
   14460             : 
   14461             :       /* "View.MemoryView":846
   14462             :  *                 start = 0
   14463             :  * 
   14464             :  *         if have_stop:             # <<<<<<<<<<<<<<
   14465             :  *             if stop < 0:
   14466             :  *                 stop += shape
   14467             :  */
   14468           0 :       goto __pyx_L13;
   14469             :     }
   14470             : 
   14471             :     /* "View.MemoryView":854
   14472             :  *                 stop = shape
   14473             :  *         else:
   14474             :  *             if negative_step:             # <<<<<<<<<<<<<<
   14475             :  *                 stop = -1
   14476             :  *             else:
   14477             :  */
   14478             :     /*else*/ {
   14479           0 :       if (__pyx_v_negative_step) {
   14480             : 
   14481             :         /* "View.MemoryView":855
   14482             :  *         else:
   14483             :  *             if negative_step:
   14484             :  *                 stop = -1             # <<<<<<<<<<<<<<
   14485             :  *             else:
   14486             :  *                 stop = shape
   14487             :  */
   14488           0 :         __pyx_v_stop = -1L;
   14489             : 
   14490             :         /* "View.MemoryView":854
   14491             :  *                 stop = shape
   14492             :  *         else:
   14493             :  *             if negative_step:             # <<<<<<<<<<<<<<
   14494             :  *                 stop = -1
   14495             :  *             else:
   14496             :  */
   14497           0 :         goto __pyx_L16;
   14498             :       }
   14499             : 
   14500             :       /* "View.MemoryView":857
   14501             :  *                 stop = -1
   14502             :  *             else:
   14503             :  *                 stop = shape             # <<<<<<<<<<<<<<
   14504             :  * 
   14505             :  * 
   14506             :  */
   14507             :       /*else*/ {
   14508             :         __pyx_v_stop = __pyx_v_shape;
   14509             :       }
   14510           0 :       __pyx_L16:;
   14511             :     }
   14512           0 :     __pyx_L13:;
   14513             : 
   14514             :     /* "View.MemoryView":861
   14515             :  * 
   14516             :  *         with cython.cdivision(True):
   14517             :  *             new_shape = (stop - start) // step             # <<<<<<<<<<<<<<
   14518             :  * 
   14519             :  *             if (stop - start) - step * new_shape:
   14520             :  */
   14521           0 :     __pyx_v_new_shape = ((__pyx_v_stop - __pyx_v_start) / __pyx_v_step);
   14522             : 
   14523             :     /* "View.MemoryView":863
   14524             :  *             new_shape = (stop - start) // step
   14525             :  * 
   14526             :  *             if (stop - start) - step * new_shape:             # <<<<<<<<<<<<<<
   14527             :  *                 new_shape += 1
   14528             :  * 
   14529             :  */
   14530           0 :     __pyx_t_2 = (((__pyx_v_stop - __pyx_v_start) - (__pyx_v_step * __pyx_v_new_shape)) != 0);
   14531           0 :     if (__pyx_t_2) {
   14532             : 
   14533             :       /* "View.MemoryView":864
   14534             :  * 
   14535             :  *             if (stop - start) - step * new_shape:
   14536             :  *                 new_shape += 1             # <<<<<<<<<<<<<<
   14537             :  * 
   14538             :  *         if new_shape < 0:
   14539             :  */
   14540           0 :       __pyx_v_new_shape = (__pyx_v_new_shape + 1);
   14541             : 
   14542             :       /* "View.MemoryView":863
   14543             :  *             new_shape = (stop - start) // step
   14544             :  * 
   14545             :  *             if (stop - start) - step * new_shape:             # <<<<<<<<<<<<<<
   14546             :  *                 new_shape += 1
   14547             :  * 
   14548             :  */
   14549             :     }
   14550             : 
   14551             :     /* "View.MemoryView":866
   14552             :  *                 new_shape += 1
   14553             :  * 
   14554             :  *         if new_shape < 0:             # <<<<<<<<<<<<<<
   14555             :  *             new_shape = 0
   14556             :  * 
   14557             :  */
   14558           0 :     __pyx_t_2 = (__pyx_v_new_shape < 0);
   14559           0 :     if (__pyx_t_2) {
   14560             : 
   14561             :       /* "View.MemoryView":867
   14562             :  * 
   14563             :  *         if new_shape < 0:
   14564             :  *             new_shape = 0             # <<<<<<<<<<<<<<
   14565             :  * 
   14566             :  * 
   14567             :  */
   14568             :       __pyx_v_new_shape = 0;
   14569             : 
   14570             :       /* "View.MemoryView":866
   14571             :  *                 new_shape += 1
   14572             :  * 
   14573             :  *         if new_shape < 0:             # <<<<<<<<<<<<<<
   14574             :  *             new_shape = 0
   14575             :  * 
   14576             :  */
   14577             :     }
   14578             : 
   14579             :     /* "View.MemoryView":870
   14580             :  * 
   14581             :  * 
   14582             :  *         dst.strides[new_ndim] = stride * step             # <<<<<<<<<<<<<<
   14583             :  *         dst.shape[new_ndim] = new_shape
   14584             :  *         dst.suboffsets[new_ndim] = suboffset
   14585             :  */
   14586           0 :     (__pyx_v_dst->strides[__pyx_v_new_ndim]) = (__pyx_v_stride * __pyx_v_step);
   14587             : 
   14588             :     /* "View.MemoryView":871
   14589             :  * 
   14590             :  *         dst.strides[new_ndim] = stride * step
   14591             :  *         dst.shape[new_ndim] = new_shape             # <<<<<<<<<<<<<<
   14592             :  *         dst.suboffsets[new_ndim] = suboffset
   14593             :  * 
   14594             :  */
   14595           0 :     (__pyx_v_dst->shape[__pyx_v_new_ndim]) = __pyx_v_new_shape;
   14596             : 
   14597             :     /* "View.MemoryView":872
   14598             :  *         dst.strides[new_ndim] = stride * step
   14599             :  *         dst.shape[new_ndim] = new_shape
   14600             :  *         dst.suboffsets[new_ndim] = suboffset             # <<<<<<<<<<<<<<
   14601             :  * 
   14602             :  * 
   14603             :  */
   14604           0 :     (__pyx_v_dst->suboffsets[__pyx_v_new_ndim]) = __pyx_v_suboffset;
   14605             :   }
   14606           0 :   __pyx_L3:;
   14607             : 
   14608             :   /* "View.MemoryView":875
   14609             :  * 
   14610             :  * 
   14611             :  *     if suboffset_dim[0] < 0:             # <<<<<<<<<<<<<<
   14612             :  *         dst.data += start * stride
   14613             :  *     else:
   14614             :  */
   14615           0 :   __pyx_t_2 = ((__pyx_v_suboffset_dim[0]) < 0);
   14616           0 :   if (__pyx_t_2) {
   14617             : 
   14618             :     /* "View.MemoryView":876
   14619             :  * 
   14620             :  *     if suboffset_dim[0] < 0:
   14621             :  *         dst.data += start * stride             # <<<<<<<<<<<<<<
   14622             :  *     else:
   14623             :  *         dst.suboffsets[suboffset_dim[0]] += start * stride
   14624             :  */
   14625           0 :     __pyx_v_dst->data = (__pyx_v_dst->data + (__pyx_v_start * __pyx_v_stride));
   14626             : 
   14627             :     /* "View.MemoryView":875
   14628             :  * 
   14629             :  * 
   14630             :  *     if suboffset_dim[0] < 0:             # <<<<<<<<<<<<<<
   14631             :  *         dst.data += start * stride
   14632             :  *     else:
   14633             :  */
   14634           0 :     goto __pyx_L19;
   14635             :   }
   14636             : 
   14637             :   /* "View.MemoryView":878
   14638             :  *         dst.data += start * stride
   14639             :  *     else:
   14640             :  *         dst.suboffsets[suboffset_dim[0]] += start * stride             # <<<<<<<<<<<<<<
   14641             :  * 
   14642             :  *     if suboffset >= 0:
   14643             :  */
   14644             :   /*else*/ {
   14645           0 :     __pyx_t_3 = (__pyx_v_suboffset_dim[0]);
   14646           0 :     (__pyx_v_dst->suboffsets[__pyx_t_3]) = ((__pyx_v_dst->suboffsets[__pyx_t_3]) + (__pyx_v_start * __pyx_v_stride));
   14647             :   }
   14648           0 :   __pyx_L19:;
   14649             : 
   14650             :   /* "View.MemoryView":880
   14651             :  *         dst.suboffsets[suboffset_dim[0]] += start * stride
   14652             :  * 
   14653             :  *     if suboffset >= 0:             # <<<<<<<<<<<<<<
   14654             :  *         if not is_slice:
   14655             :  *             if new_ndim == 0:
   14656             :  */
   14657           0 :   __pyx_t_2 = (__pyx_v_suboffset >= 0);
   14658           0 :   if (__pyx_t_2) {
   14659             : 
   14660             :     /* "View.MemoryView":881
   14661             :  * 
   14662             :  *     if suboffset >= 0:
   14663             :  *         if not is_slice:             # <<<<<<<<<<<<<<
   14664             :  *             if new_ndim == 0:
   14665             :  *                 dst.data = (<char **> dst.data)[0] + suboffset
   14666             :  */
   14667           0 :     __pyx_t_2 = (!__pyx_v_is_slice);
   14668           0 :     if (__pyx_t_2) {
   14669             : 
   14670             :       /* "View.MemoryView":882
   14671             :  *     if suboffset >= 0:
   14672             :  *         if not is_slice:
   14673             :  *             if new_ndim == 0:             # <<<<<<<<<<<<<<
   14674             :  *                 dst.data = (<char **> dst.data)[0] + suboffset
   14675             :  *             else:
   14676             :  */
   14677           0 :       __pyx_t_2 = (__pyx_v_new_ndim == 0);
   14678           0 :       if (__pyx_t_2) {
   14679             : 
   14680             :         /* "View.MemoryView":883
   14681             :  *         if not is_slice:
   14682             :  *             if new_ndim == 0:
   14683             :  *                 dst.data = (<char **> dst.data)[0] + suboffset             # <<<<<<<<<<<<<<
   14684             :  *             else:
   14685             :  *                 _err_dim(PyExc_IndexError, "All dimensions preceding dimension %d "
   14686             :  */
   14687           0 :         __pyx_v_dst->data = ((((char **)__pyx_v_dst->data)[0]) + __pyx_v_suboffset);
   14688             : 
   14689             :         /* "View.MemoryView":882
   14690             :  *     if suboffset >= 0:
   14691             :  *         if not is_slice:
   14692             :  *             if new_ndim == 0:             # <<<<<<<<<<<<<<
   14693             :  *                 dst.data = (<char **> dst.data)[0] + suboffset
   14694             :  *             else:
   14695             :  */
   14696           0 :         goto __pyx_L22;
   14697             :       }
   14698             : 
   14699             :       /* "View.MemoryView":885
   14700             :  *                 dst.data = (<char **> dst.data)[0] + suboffset
   14701             :  *             else:
   14702             :  *                 _err_dim(PyExc_IndexError, "All dimensions preceding dimension %d "             # <<<<<<<<<<<<<<
   14703             :  *                                      "must be indexed and not sliced", dim)
   14704             :  *         else:
   14705             :  */
   14706             :       /*else*/ {
   14707             : 
   14708             :         /* "View.MemoryView":886
   14709             :  *             else:
   14710             :  *                 _err_dim(PyExc_IndexError, "All dimensions preceding dimension %d "
   14711             :  *                                      "must be indexed and not sliced", dim)             # <<<<<<<<<<<<<<
   14712             :  *         else:
   14713             :  *             suboffset_dim[0] = new_ndim
   14714             :  */
   14715           0 :         __pyx_t_3 = __pyx_memoryview_err_dim(PyExc_IndexError, __pyx_kp_s_All_dimensions_preceding_dimensi, __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 885, __pyx_L1_error)
   14716             :       }
   14717           0 :       __pyx_L22:;
   14718             : 
   14719             :       /* "View.MemoryView":881
   14720             :  * 
   14721             :  *     if suboffset >= 0:
   14722             :  *         if not is_slice:             # <<<<<<<<<<<<<<
   14723             :  *             if new_ndim == 0:
   14724             :  *                 dst.data = (<char **> dst.data)[0] + suboffset
   14725             :  */
   14726           0 :       goto __pyx_L21;
   14727             :     }
   14728             : 
   14729             :     /* "View.MemoryView":888
   14730             :  *                                      "must be indexed and not sliced", dim)
   14731             :  *         else:
   14732             :  *             suboffset_dim[0] = new_ndim             # <<<<<<<<<<<<<<
   14733             :  * 
   14734             :  *     return 0
   14735             :  */
   14736             :     /*else*/ {
   14737           0 :       (__pyx_v_suboffset_dim[0]) = __pyx_v_new_ndim;
   14738             :     }
   14739           0 :     __pyx_L21:;
   14740             : 
   14741             :     /* "View.MemoryView":880
   14742             :  *         dst.suboffsets[suboffset_dim[0]] += start * stride
   14743             :  * 
   14744             :  *     if suboffset >= 0:             # <<<<<<<<<<<<<<
   14745             :  *         if not is_slice:
   14746             :  *             if new_ndim == 0:
   14747             :  */
   14748             :   }
   14749             : 
   14750             :   /* "View.MemoryView":890
   14751             :  *             suboffset_dim[0] = new_ndim
   14752             :  * 
   14753             :  *     return 0             # <<<<<<<<<<<<<<
   14754             :  * 
   14755             :  * 
   14756             :  */
   14757           0 :   __pyx_r = 0;
   14758           0 :   goto __pyx_L0;
   14759             : 
   14760             :   /* "View.MemoryView":793
   14761             :  * 
   14762             :  * @cname('__pyx_memoryview_slice_memviewslice')
   14763             :  * cdef int slice_memviewslice(             # <<<<<<<<<<<<<<
   14764             :  *         __Pyx_memviewslice *dst,
   14765             :  *         Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset,
   14766             :  */
   14767             : 
   14768             :   /* function exit code */
   14769           0 :   __pyx_L1_error:;
   14770             :   #ifdef WITH_THREAD
   14771           0 :   __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
   14772             :   #endif
   14773           0 :   __Pyx_AddTraceback("View.MemoryView.slice_memviewslice", __pyx_clineno, __pyx_lineno, __pyx_filename);
   14774           0 :   __pyx_r = -1;
   14775             :   #ifdef WITH_THREAD
   14776           0 :   __Pyx_PyGILState_Release(__pyx_gilstate_save);
   14777             :   #endif
   14778           0 :   __pyx_L0:;
   14779           0 :   return __pyx_r;
   14780             : }
   14781             : 
   14782             : /* "View.MemoryView":896
   14783             :  * 
   14784             :  * @cname('__pyx_pybuffer_index')
   14785             :  * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index,             # <<<<<<<<<<<<<<
   14786             :  *                           Py_ssize_t dim) except NULL:
   14787             :  *     cdef Py_ssize_t shape, stride, suboffset = -1
   14788             :  */
   14789             : 
   14790           0 : static char *__pyx_pybuffer_index(Py_buffer *__pyx_v_view, char *__pyx_v_bufp, Py_ssize_t __pyx_v_index, Py_ssize_t __pyx_v_dim) {
   14791           0 :   Py_ssize_t __pyx_v_shape;
   14792           0 :   Py_ssize_t __pyx_v_stride;
   14793           0 :   Py_ssize_t __pyx_v_suboffset;
   14794           0 :   Py_ssize_t __pyx_v_itemsize;
   14795           0 :   char *__pyx_v_resultp;
   14796           0 :   char *__pyx_r;
   14797             :   __Pyx_RefNannyDeclarations
   14798           0 :   Py_ssize_t __pyx_t_1;
   14799           0 :   int __pyx_t_2;
   14800           0 :   PyObject *__pyx_t_3 = NULL;
   14801           0 :   Py_UCS4 __pyx_t_4;
   14802           0 :   PyObject *__pyx_t_5 = NULL;
   14803           0 :   int __pyx_lineno = 0;
   14804           0 :   const char *__pyx_filename = NULL;
   14805           0 :   int __pyx_clineno = 0;
   14806           0 :   __Pyx_RefNannySetupContext("pybuffer_index", 1);
   14807             : 
   14808             :   /* "View.MemoryView":898
   14809             :  * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index,
   14810             :  *                           Py_ssize_t dim) except NULL:
   14811             :  *     cdef Py_ssize_t shape, stride, suboffset = -1             # <<<<<<<<<<<<<<
   14812             :  *     cdef Py_ssize_t itemsize = view.itemsize
   14813             :  *     cdef char *resultp
   14814             :  */
   14815           0 :   __pyx_v_suboffset = -1L;
   14816             : 
   14817             :   /* "View.MemoryView":899
   14818             :  *                           Py_ssize_t dim) except NULL:
   14819             :  *     cdef Py_ssize_t shape, stride, suboffset = -1
   14820             :  *     cdef Py_ssize_t itemsize = view.itemsize             # <<<<<<<<<<<<<<
   14821             :  *     cdef char *resultp
   14822             :  * 
   14823             :  */
   14824           0 :   __pyx_t_1 = __pyx_v_view->itemsize;
   14825           0 :   __pyx_v_itemsize = __pyx_t_1;
   14826             : 
   14827             :   /* "View.MemoryView":902
   14828             :  *     cdef char *resultp
   14829             :  * 
   14830             :  *     if view.ndim == 0:             # <<<<<<<<<<<<<<
   14831             :  *         shape = view.len // itemsize
   14832             :  *         stride = itemsize
   14833             :  */
   14834           0 :   __pyx_t_2 = (__pyx_v_view->ndim == 0);
   14835           0 :   if (__pyx_t_2) {
   14836             : 
   14837             :     /* "View.MemoryView":903
   14838             :  * 
   14839             :  *     if view.ndim == 0:
   14840             :  *         shape = view.len // itemsize             # <<<<<<<<<<<<<<
   14841             :  *         stride = itemsize
   14842             :  *     else:
   14843             :  */
   14844           0 :     if (unlikely(__pyx_v_itemsize == 0)) {
   14845           0 :       PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
   14846           0 :       __PYX_ERR(1, 903, __pyx_L1_error)
   14847             :     }
   14848           0 :     else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1)  && unlikely(__Pyx_UNARY_NEG_WOULD_OVERFLOW(__pyx_v_view->len))) {
   14849           0 :       PyErr_SetString(PyExc_OverflowError, "value too large to perform division");
   14850           0 :       __PYX_ERR(1, 903, __pyx_L1_error)
   14851             :     }
   14852           0 :     __pyx_v_shape = __Pyx_div_Py_ssize_t(__pyx_v_view->len, __pyx_v_itemsize);
   14853             : 
   14854             :     /* "View.MemoryView":904
   14855             :  *     if view.ndim == 0:
   14856             :  *         shape = view.len // itemsize
   14857             :  *         stride = itemsize             # <<<<<<<<<<<<<<
   14858             :  *     else:
   14859             :  *         shape = view.shape[dim]
   14860             :  */
   14861           0 :     __pyx_v_stride = __pyx_v_itemsize;
   14862             : 
   14863             :     /* "View.MemoryView":902
   14864             :  *     cdef char *resultp
   14865             :  * 
   14866             :  *     if view.ndim == 0:             # <<<<<<<<<<<<<<
   14867             :  *         shape = view.len // itemsize
   14868             :  *         stride = itemsize
   14869             :  */
   14870           0 :     goto __pyx_L3;
   14871             :   }
   14872             : 
   14873             :   /* "View.MemoryView":906
   14874             :  *         stride = itemsize
   14875             :  *     else:
   14876             :  *         shape = view.shape[dim]             # <<<<<<<<<<<<<<
   14877             :  *         stride = view.strides[dim]
   14878             :  *         if view.suboffsets != NULL:
   14879             :  */
   14880             :   /*else*/ {
   14881           0 :     __pyx_v_shape = (__pyx_v_view->shape[__pyx_v_dim]);
   14882             : 
   14883             :     /* "View.MemoryView":907
   14884             :  *     else:
   14885             :  *         shape = view.shape[dim]
   14886             :  *         stride = view.strides[dim]             # <<<<<<<<<<<<<<
   14887             :  *         if view.suboffsets != NULL:
   14888             :  *             suboffset = view.suboffsets[dim]
   14889             :  */
   14890           0 :     __pyx_v_stride = (__pyx_v_view->strides[__pyx_v_dim]);
   14891             : 
   14892             :     /* "View.MemoryView":908
   14893             :  *         shape = view.shape[dim]
   14894             :  *         stride = view.strides[dim]
   14895             :  *         if view.suboffsets != NULL:             # <<<<<<<<<<<<<<
   14896             :  *             suboffset = view.suboffsets[dim]
   14897             :  * 
   14898             :  */
   14899           0 :     __pyx_t_2 = (__pyx_v_view->suboffsets != NULL);
   14900           0 :     if (__pyx_t_2) {
   14901             : 
   14902             :       /* "View.MemoryView":909
   14903             :  *         stride = view.strides[dim]
   14904             :  *         if view.suboffsets != NULL:
   14905             :  *             suboffset = view.suboffsets[dim]             # <<<<<<<<<<<<<<
   14906             :  * 
   14907             :  *     if index < 0:
   14908             :  */
   14909           0 :       __pyx_v_suboffset = (__pyx_v_view->suboffsets[__pyx_v_dim]);
   14910             : 
   14911             :       /* "View.MemoryView":908
   14912             :  *         shape = view.shape[dim]
   14913             :  *         stride = view.strides[dim]
   14914             :  *         if view.suboffsets != NULL:             # <<<<<<<<<<<<<<
   14915             :  *             suboffset = view.suboffsets[dim]
   14916             :  * 
   14917             :  */
   14918             :     }
   14919             :   }
   14920           0 :   __pyx_L3:;
   14921             : 
   14922             :   /* "View.MemoryView":911
   14923             :  *             suboffset = view.suboffsets[dim]
   14924             :  * 
   14925             :  *     if index < 0:             # <<<<<<<<<<<<<<
   14926             :  *         index += view.shape[dim]
   14927             :  *         if index < 0:
   14928             :  */
   14929           0 :   __pyx_t_2 = (__pyx_v_index < 0);
   14930           0 :   if (__pyx_t_2) {
   14931             : 
   14932             :     /* "View.MemoryView":912
   14933             :  * 
   14934             :  *     if index < 0:
   14935             :  *         index += view.shape[dim]             # <<<<<<<<<<<<<<
   14936             :  *         if index < 0:
   14937             :  *             raise IndexError, f"Out of bounds on buffer access (axis {dim})"
   14938             :  */
   14939           0 :     __pyx_v_index = (__pyx_v_index + (__pyx_v_view->shape[__pyx_v_dim]));
   14940             : 
   14941             :     /* "View.MemoryView":913
   14942             :  *     if index < 0:
   14943             :  *         index += view.shape[dim]
   14944             :  *         if index < 0:             # <<<<<<<<<<<<<<
   14945             :  *             raise IndexError, f"Out of bounds on buffer access (axis {dim})"
   14946             :  * 
   14947             :  */
   14948           0 :     __pyx_t_2 = (__pyx_v_index < 0);
   14949           0 :     if (unlikely(__pyx_t_2)) {
   14950             : 
   14951             :       /* "View.MemoryView":914
   14952             :  *         index += view.shape[dim]
   14953             :  *         if index < 0:
   14954             :  *             raise IndexError, f"Out of bounds on buffer access (axis {dim})"             # <<<<<<<<<<<<<<
   14955             :  * 
   14956             :  *     if index >= shape:
   14957             :  */
   14958           0 :       __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 914, __pyx_L1_error)
   14959           0 :       __Pyx_GOTREF(__pyx_t_3);
   14960           0 :       __pyx_t_1 = 0;
   14961           0 :       __pyx_t_4 = 127;
   14962           0 :       __Pyx_INCREF(__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
   14963           0 :       __pyx_t_1 += 37;
   14964           0 :       __Pyx_GIVEREF(__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
   14965           0 :       PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_Out_of_bounds_on_buffer_access_a);
   14966           0 :       __pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_dim, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 914, __pyx_L1_error)
   14967           0 :       __Pyx_GOTREF(__pyx_t_5);
   14968           0 :       __pyx_t_1 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
   14969           0 :       __Pyx_GIVEREF(__pyx_t_5);
   14970           0 :       PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5);
   14971           0 :       __pyx_t_5 = 0;
   14972           0 :       __Pyx_INCREF(__pyx_kp_u__7);
   14973           0 :       __pyx_t_1 += 1;
   14974           0 :       __Pyx_GIVEREF(__pyx_kp_u__7);
   14975           0 :       PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u__7);
   14976           0 :       __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 914, __pyx_L1_error)
   14977           0 :       __Pyx_GOTREF(__pyx_t_5);
   14978           0 :       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   14979           0 :       __Pyx_Raise(__pyx_builtin_IndexError, __pyx_t_5, 0, 0);
   14980           0 :       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   14981           0 :       __PYX_ERR(1, 914, __pyx_L1_error)
   14982             : 
   14983             :       /* "View.MemoryView":913
   14984             :  *     if index < 0:
   14985             :  *         index += view.shape[dim]
   14986             :  *         if index < 0:             # <<<<<<<<<<<<<<
   14987             :  *             raise IndexError, f"Out of bounds on buffer access (axis {dim})"
   14988             :  * 
   14989             :  */
   14990             :     }
   14991             : 
   14992             :     /* "View.MemoryView":911
   14993             :  *             suboffset = view.suboffsets[dim]
   14994             :  * 
   14995             :  *     if index < 0:             # <<<<<<<<<<<<<<
   14996             :  *         index += view.shape[dim]
   14997             :  *         if index < 0:
   14998             :  */
   14999             :   }
   15000             : 
   15001             :   /* "View.MemoryView":916
   15002             :  *             raise IndexError, f"Out of bounds on buffer access (axis {dim})"
   15003             :  * 
   15004             :  *     if index >= shape:             # <<<<<<<<<<<<<<
   15005             :  *         raise IndexError, f"Out of bounds on buffer access (axis {dim})"
   15006             :  * 
   15007             :  */
   15008           0 :   __pyx_t_2 = (__pyx_v_index >= __pyx_v_shape);
   15009           0 :   if (unlikely(__pyx_t_2)) {
   15010             : 
   15011             :     /* "View.MemoryView":917
   15012             :  * 
   15013             :  *     if index >= shape:
   15014             :  *         raise IndexError, f"Out of bounds on buffer access (axis {dim})"             # <<<<<<<<<<<<<<
   15015             :  * 
   15016             :  *     resultp = bufp + index * stride
   15017             :  */
   15018           0 :     __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 917, __pyx_L1_error)
   15019           0 :     __Pyx_GOTREF(__pyx_t_5);
   15020           0 :     __pyx_t_1 = 0;
   15021           0 :     __pyx_t_4 = 127;
   15022           0 :     __Pyx_INCREF(__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
   15023           0 :     __pyx_t_1 += 37;
   15024           0 :     __Pyx_GIVEREF(__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
   15025           0 :     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_kp_u_Out_of_bounds_on_buffer_access_a);
   15026           0 :     __pyx_t_3 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_dim, 0, ' ', 'd'); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 917, __pyx_L1_error)
   15027           0 :     __Pyx_GOTREF(__pyx_t_3);
   15028           0 :     __pyx_t_1 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3);
   15029           0 :     __Pyx_GIVEREF(__pyx_t_3);
   15030           0 :     PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
   15031           0 :     __pyx_t_3 = 0;
   15032           0 :     __Pyx_INCREF(__pyx_kp_u__7);
   15033           0 :     __pyx_t_1 += 1;
   15034           0 :     __Pyx_GIVEREF(__pyx_kp_u__7);
   15035           0 :     PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_kp_u__7);
   15036           0 :     __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 917, __pyx_L1_error)
   15037           0 :     __Pyx_GOTREF(__pyx_t_3);
   15038           0 :     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   15039           0 :     __Pyx_Raise(__pyx_builtin_IndexError, __pyx_t_3, 0, 0);
   15040           0 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   15041           0 :     __PYX_ERR(1, 917, __pyx_L1_error)
   15042             : 
   15043             :     /* "View.MemoryView":916
   15044             :  *             raise IndexError, f"Out of bounds on buffer access (axis {dim})"
   15045             :  * 
   15046             :  *     if index >= shape:             # <<<<<<<<<<<<<<
   15047             :  *         raise IndexError, f"Out of bounds on buffer access (axis {dim})"
   15048             :  * 
   15049             :  */
   15050             :   }
   15051             : 
   15052             :   /* "View.MemoryView":919
   15053             :  *         raise IndexError, f"Out of bounds on buffer access (axis {dim})"
   15054             :  * 
   15055             :  *     resultp = bufp + index * stride             # <<<<<<<<<<<<<<
   15056             :  *     if suboffset >= 0:
   15057             :  *         resultp = (<char **> resultp)[0] + suboffset
   15058             :  */
   15059           0 :   __pyx_v_resultp = (__pyx_v_bufp + (__pyx_v_index * __pyx_v_stride));
   15060             : 
   15061             :   /* "View.MemoryView":920
   15062             :  * 
   15063             :  *     resultp = bufp + index * stride
   15064             :  *     if suboffset >= 0:             # <<<<<<<<<<<<<<
   15065             :  *         resultp = (<char **> resultp)[0] + suboffset
   15066             :  * 
   15067             :  */
   15068           0 :   __pyx_t_2 = (__pyx_v_suboffset >= 0);
   15069           0 :   if (__pyx_t_2) {
   15070             : 
   15071             :     /* "View.MemoryView":921
   15072             :  *     resultp = bufp + index * stride
   15073             :  *     if suboffset >= 0:
   15074             :  *         resultp = (<char **> resultp)[0] + suboffset             # <<<<<<<<<<<<<<
   15075             :  * 
   15076             :  *     return resultp
   15077             :  */
   15078           0 :     __pyx_v_resultp = ((((char **)__pyx_v_resultp)[0]) + __pyx_v_suboffset);
   15079             : 
   15080             :     /* "View.MemoryView":920
   15081             :  * 
   15082             :  *     resultp = bufp + index * stride
   15083             :  *     if suboffset >= 0:             # <<<<<<<<<<<<<<
   15084             :  *         resultp = (<char **> resultp)[0] + suboffset
   15085             :  * 
   15086             :  */
   15087             :   }
   15088             : 
   15089             :   /* "View.MemoryView":923
   15090             :  *         resultp = (<char **> resultp)[0] + suboffset
   15091             :  * 
   15092             :  *     return resultp             # <<<<<<<<<<<<<<
   15093             :  * 
   15094             :  * 
   15095             :  */
   15096           0 :   __pyx_r = __pyx_v_resultp;
   15097           0 :   goto __pyx_L0;
   15098             : 
   15099             :   /* "View.MemoryView":896
   15100             :  * 
   15101             :  * @cname('__pyx_pybuffer_index')
   15102             :  * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index,             # <<<<<<<<<<<<<<
   15103             :  *                           Py_ssize_t dim) except NULL:
   15104             :  *     cdef Py_ssize_t shape, stride, suboffset = -1
   15105             :  */
   15106             : 
   15107             :   /* function exit code */
   15108           0 :   __pyx_L1_error:;
   15109           0 :   __Pyx_XDECREF(__pyx_t_3);
   15110           0 :   __Pyx_XDECREF(__pyx_t_5);
   15111           0 :   __Pyx_AddTraceback("View.MemoryView.pybuffer_index", __pyx_clineno, __pyx_lineno, __pyx_filename);
   15112           0 :   __pyx_r = NULL;
   15113           0 :   __pyx_L0:;
   15114           0 :   __Pyx_RefNannyFinishContext();
   15115           0 :   return __pyx_r;
   15116             : }
   15117             : 
   15118             : /* "View.MemoryView":929
   15119             :  * 
   15120             :  * @cname('__pyx_memslice_transpose')
   15121             :  * cdef int transpose_memslice(__Pyx_memviewslice *memslice) except -1 nogil:             # <<<<<<<<<<<<<<
   15122             :  *     cdef int ndim = memslice.memview.view.ndim
   15123             :  * 
   15124             :  */
   15125             : 
   15126           0 : static int __pyx_memslice_transpose(__Pyx_memviewslice *__pyx_v_memslice) {
   15127           0 :   int __pyx_v_ndim;
   15128           0 :   Py_ssize_t *__pyx_v_shape;
   15129           0 :   Py_ssize_t *__pyx_v_strides;
   15130           0 :   int __pyx_v_i;
   15131           0 :   int __pyx_v_j;
   15132           0 :   int __pyx_r;
   15133           0 :   int __pyx_t_1;
   15134           0 :   Py_ssize_t *__pyx_t_2;
   15135           0 :   long __pyx_t_3;
   15136           0 :   long __pyx_t_4;
   15137           0 :   Py_ssize_t __pyx_t_5;
   15138           0 :   Py_ssize_t __pyx_t_6;
   15139           0 :   int __pyx_t_7;
   15140           0 :   int __pyx_t_8;
   15141           0 :   int __pyx_t_9;
   15142           0 :   int __pyx_lineno = 0;
   15143           0 :   const char *__pyx_filename = NULL;
   15144           0 :   int __pyx_clineno = 0;
   15145             :   #ifdef WITH_THREAD
   15146           0 :   PyGILState_STATE __pyx_gilstate_save;
   15147             :   #endif
   15148             : 
   15149             :   /* "View.MemoryView":930
   15150             :  * @cname('__pyx_memslice_transpose')
   15151             :  * cdef int transpose_memslice(__Pyx_memviewslice *memslice) except -1 nogil:
   15152             :  *     cdef int ndim = memslice.memview.view.ndim             # <<<<<<<<<<<<<<
   15153             :  * 
   15154             :  *     cdef Py_ssize_t *shape = memslice.shape
   15155             :  */
   15156           0 :   __pyx_t_1 = __pyx_v_memslice->memview->view.ndim;
   15157           0 :   __pyx_v_ndim = __pyx_t_1;
   15158             : 
   15159             :   /* "View.MemoryView":932
   15160             :  *     cdef int ndim = memslice.memview.view.ndim
   15161             :  * 
   15162             :  *     cdef Py_ssize_t *shape = memslice.shape             # <<<<<<<<<<<<<<
   15163             :  *     cdef Py_ssize_t *strides = memslice.strides
   15164             :  * 
   15165             :  */
   15166           0 :   __pyx_t_2 = __pyx_v_memslice->shape;
   15167           0 :   __pyx_v_shape = __pyx_t_2;
   15168             : 
   15169             :   /* "View.MemoryView":933
   15170             :  * 
   15171             :  *     cdef Py_ssize_t *shape = memslice.shape
   15172             :  *     cdef Py_ssize_t *strides = memslice.strides             # <<<<<<<<<<<<<<
   15173             :  * 
   15174             :  * 
   15175             :  */
   15176           0 :   __pyx_t_2 = __pyx_v_memslice->strides;
   15177           0 :   __pyx_v_strides = __pyx_t_2;
   15178             : 
   15179             :   /* "View.MemoryView":937
   15180             :  * 
   15181             :  *     cdef int i, j
   15182             :  *     for i in range(ndim // 2):             # <<<<<<<<<<<<<<
   15183             :  *         j = ndim - 1 - i
   15184             :  *         strides[i], strides[j] = strides[j], strides[i]
   15185             :  */
   15186           0 :   __pyx_t_3 = __Pyx_div_long(__pyx_v_ndim, 2);
   15187           0 :   __pyx_t_4 = __pyx_t_3;
   15188           0 :   for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_4; __pyx_t_1+=1) {
   15189           0 :     __pyx_v_i = __pyx_t_1;
   15190             : 
   15191             :     /* "View.MemoryView":938
   15192             :  *     cdef int i, j
   15193             :  *     for i in range(ndim // 2):
   15194             :  *         j = ndim - 1 - i             # <<<<<<<<<<<<<<
   15195             :  *         strides[i], strides[j] = strides[j], strides[i]
   15196             :  *         shape[i], shape[j] = shape[j], shape[i]
   15197             :  */
   15198           0 :     __pyx_v_j = ((__pyx_v_ndim - 1) - __pyx_v_i);
   15199             : 
   15200             :     /* "View.MemoryView":939
   15201             :  *     for i in range(ndim // 2):
   15202             :  *         j = ndim - 1 - i
   15203             :  *         strides[i], strides[j] = strides[j], strides[i]             # <<<<<<<<<<<<<<
   15204             :  *         shape[i], shape[j] = shape[j], shape[i]
   15205             :  * 
   15206             :  */
   15207           0 :     __pyx_t_5 = (__pyx_v_strides[__pyx_v_j]);
   15208           0 :     __pyx_t_6 = (__pyx_v_strides[__pyx_v_i]);
   15209           0 :     (__pyx_v_strides[__pyx_v_i]) = __pyx_t_5;
   15210           0 :     (__pyx_v_strides[__pyx_v_j]) = __pyx_t_6;
   15211             : 
   15212             :     /* "View.MemoryView":940
   15213             :  *         j = ndim - 1 - i
   15214             :  *         strides[i], strides[j] = strides[j], strides[i]
   15215             :  *         shape[i], shape[j] = shape[j], shape[i]             # <<<<<<<<<<<<<<
   15216             :  * 
   15217             :  *         if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0:
   15218             :  */
   15219           0 :     __pyx_t_6 = (__pyx_v_shape[__pyx_v_j]);
   15220           0 :     __pyx_t_5 = (__pyx_v_shape[__pyx_v_i]);
   15221           0 :     (__pyx_v_shape[__pyx_v_i]) = __pyx_t_6;
   15222           0 :     (__pyx_v_shape[__pyx_v_j]) = __pyx_t_5;
   15223             : 
   15224             :     /* "View.MemoryView":942
   15225             :  *         shape[i], shape[j] = shape[j], shape[i]
   15226             :  * 
   15227             :  *         if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0:             # <<<<<<<<<<<<<<
   15228             :  *             _err(PyExc_ValueError, "Cannot transpose memoryview with indirect dimensions")
   15229             :  * 
   15230             :  */
   15231           0 :     __pyx_t_8 = ((__pyx_v_memslice->suboffsets[__pyx_v_i]) >= 0);
   15232           0 :     if (!__pyx_t_8) {
   15233           0 :     } else {
   15234           0 :       __pyx_t_7 = __pyx_t_8;
   15235           0 :       goto __pyx_L6_bool_binop_done;
   15236             :     }
   15237           0 :     __pyx_t_8 = ((__pyx_v_memslice->suboffsets[__pyx_v_j]) >= 0);
   15238           0 :     __pyx_t_7 = __pyx_t_8;
   15239           0 :     __pyx_L6_bool_binop_done:;
   15240           0 :     if (__pyx_t_7) {
   15241             : 
   15242             :       /* "View.MemoryView":943
   15243             :  * 
   15244             :  *         if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0:
   15245             :  *             _err(PyExc_ValueError, "Cannot transpose memoryview with indirect dimensions")             # <<<<<<<<<<<<<<
   15246             :  * 
   15247             :  *     return 0
   15248             :  */
   15249           0 :       __pyx_t_9 = __pyx_memoryview_err(PyExc_ValueError, __pyx_kp_s_Cannot_transpose_memoryview_with); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 943, __pyx_L1_error)
   15250             : 
   15251             :       /* "View.MemoryView":942
   15252             :  *         shape[i], shape[j] = shape[j], shape[i]
   15253             :  * 
   15254             :  *         if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0:             # <<<<<<<<<<<<<<
   15255             :  *             _err(PyExc_ValueError, "Cannot transpose memoryview with indirect dimensions")
   15256             :  * 
   15257             :  */
   15258             :     }
   15259             :   }
   15260             : 
   15261             :   /* "View.MemoryView":945
   15262             :  *             _err(PyExc_ValueError, "Cannot transpose memoryview with indirect dimensions")
   15263             :  * 
   15264             :  *     return 0             # <<<<<<<<<<<<<<
   15265             :  * 
   15266             :  * 
   15267             :  */
   15268           0 :   __pyx_r = 0;
   15269           0 :   goto __pyx_L0;
   15270             : 
   15271             :   /* "View.MemoryView":929
   15272             :  * 
   15273             :  * @cname('__pyx_memslice_transpose')
   15274             :  * cdef int transpose_memslice(__Pyx_memviewslice *memslice) except -1 nogil:             # <<<<<<<<<<<<<<
   15275             :  *     cdef int ndim = memslice.memview.view.ndim
   15276             :  * 
   15277             :  */
   15278             : 
   15279             :   /* function exit code */
   15280           0 :   __pyx_L1_error:;
   15281             :   #ifdef WITH_THREAD
   15282           0 :   __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
   15283             :   #endif
   15284           0 :   __Pyx_AddTraceback("View.MemoryView.transpose_memslice", __pyx_clineno, __pyx_lineno, __pyx_filename);
   15285           0 :   __pyx_r = -1;
   15286             :   #ifdef WITH_THREAD
   15287           0 :   __Pyx_PyGILState_Release(__pyx_gilstate_save);
   15288             :   #endif
   15289           0 :   __pyx_L0:;
   15290           0 :   return __pyx_r;
   15291             : }
   15292             : 
   15293             : /* "View.MemoryView":963
   15294             :  *     cdef int (*to_dtype_func)(char *, object) except 0
   15295             :  * 
   15296             :  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
   15297             :  *         __PYX_XCLEAR_MEMVIEW(&self.from_slice, 1)
   15298             :  * 
   15299             :  */
   15300             : 
   15301             : /* Python wrapper */
   15302             : static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self); /*proto*/
   15303      136725 : static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self) {
   15304      136725 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   15305             :   __Pyx_RefNannyDeclarations
   15306      136725 :   __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
   15307      136725 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   15308      273450 :   __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self));
   15309             : 
   15310             :   /* function exit code */
   15311      136725 :   __Pyx_RefNannyFinishContext();
   15312             : }
   15313             : 
   15314      136725 : static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self) {
   15315             : 
   15316             :   /* "View.MemoryView":964
   15317             :  * 
   15318             :  *     def __dealloc__(self):
   15319             :  *         __PYX_XCLEAR_MEMVIEW(&self.from_slice, 1)             # <<<<<<<<<<<<<<
   15320             :  * 
   15321             :  *     cdef convert_item_to_object(self, char *itemp):
   15322             :  */
   15323      136725 :   __PYX_XCLEAR_MEMVIEW((&__pyx_v_self->from_slice), 1);
   15324             : 
   15325             :   /* "View.MemoryView":963
   15326             :  *     cdef int (*to_dtype_func)(char *, object) except 0
   15327             :  * 
   15328             :  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
   15329             :  *         __PYX_XCLEAR_MEMVIEW(&self.from_slice, 1)
   15330             :  * 
   15331             :  */
   15332             : 
   15333             :   /* function exit code */
   15334             : }
   15335             : 
   15336             : /* "View.MemoryView":966
   15337             :  *         __PYX_XCLEAR_MEMVIEW(&self.from_slice, 1)
   15338             :  * 
   15339             :  *     cdef convert_item_to_object(self, char *itemp):             # <<<<<<<<<<<<<<
   15340             :  *         if self.to_object_func != NULL:
   15341             :  *             return self.to_object_func(itemp)
   15342             :  */
   15343             : 
   15344           0 : static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp) {
   15345           0 :   PyObject *__pyx_r = NULL;
   15346             :   __Pyx_RefNannyDeclarations
   15347           0 :   int __pyx_t_1;
   15348           0 :   PyObject *__pyx_t_2 = NULL;
   15349           0 :   int __pyx_lineno = 0;
   15350           0 :   const char *__pyx_filename = NULL;
   15351           0 :   int __pyx_clineno = 0;
   15352           0 :   __Pyx_RefNannySetupContext("convert_item_to_object", 1);
   15353             : 
   15354             :   /* "View.MemoryView":967
   15355             :  * 
   15356             :  *     cdef convert_item_to_object(self, char *itemp):
   15357             :  *         if self.to_object_func != NULL:             # <<<<<<<<<<<<<<
   15358             :  *             return self.to_object_func(itemp)
   15359             :  *         else:
   15360             :  */
   15361           0 :   __pyx_t_1 = (__pyx_v_self->to_object_func != NULL);
   15362           0 :   if (__pyx_t_1) {
   15363             : 
   15364             :     /* "View.MemoryView":968
   15365             :  *     cdef convert_item_to_object(self, char *itemp):
   15366             :  *         if self.to_object_func != NULL:
   15367             :  *             return self.to_object_func(itemp)             # <<<<<<<<<<<<<<
   15368             :  *         else:
   15369             :  *             return memoryview.convert_item_to_object(self, itemp)
   15370             :  */
   15371           0 :     __Pyx_XDECREF(__pyx_r);
   15372           0 :     __pyx_t_2 = __pyx_v_self->to_object_func(__pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 968, __pyx_L1_error)
   15373           0 :     __Pyx_GOTREF(__pyx_t_2);
   15374           0 :     __pyx_r = __pyx_t_2;
   15375           0 :     __pyx_t_2 = 0;
   15376           0 :     goto __pyx_L0;
   15377             : 
   15378             :     /* "View.MemoryView":967
   15379             :  * 
   15380             :  *     cdef convert_item_to_object(self, char *itemp):
   15381             :  *         if self.to_object_func != NULL:             # <<<<<<<<<<<<<<
   15382             :  *             return self.to_object_func(itemp)
   15383             :  *         else:
   15384             :  */
   15385             :   }
   15386             : 
   15387             :   /* "View.MemoryView":970
   15388             :  *             return self.to_object_func(itemp)
   15389             :  *         else:
   15390             :  *             return memoryview.convert_item_to_object(self, itemp)             # <<<<<<<<<<<<<<
   15391             :  * 
   15392             :  *     cdef assign_item_from_object(self, char *itemp, object value):
   15393             :  */
   15394             :   /*else*/ {
   15395           0 :     __Pyx_XDECREF(__pyx_r);
   15396           0 :     __pyx_t_2 = __pyx_memoryview_convert_item_to_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 970, __pyx_L1_error)
   15397           0 :     __Pyx_GOTREF(__pyx_t_2);
   15398           0 :     __pyx_r = __pyx_t_2;
   15399           0 :     __pyx_t_2 = 0;
   15400           0 :     goto __pyx_L0;
   15401             :   }
   15402             : 
   15403             :   /* "View.MemoryView":966
   15404             :  *         __PYX_XCLEAR_MEMVIEW(&self.from_slice, 1)
   15405             :  * 
   15406             :  *     cdef convert_item_to_object(self, char *itemp):             # <<<<<<<<<<<<<<
   15407             :  *         if self.to_object_func != NULL:
   15408             :  *             return self.to_object_func(itemp)
   15409             :  */
   15410             : 
   15411             :   /* function exit code */
   15412           0 :   __pyx_L1_error:;
   15413           0 :   __Pyx_XDECREF(__pyx_t_2);
   15414           0 :   __Pyx_AddTraceback("View.MemoryView._memoryviewslice.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
   15415           0 :   __pyx_r = 0;
   15416           0 :   __pyx_L0:;
   15417           0 :   __Pyx_XGIVEREF(__pyx_r);
   15418           0 :   __Pyx_RefNannyFinishContext();
   15419           0 :   return __pyx_r;
   15420             : }
   15421             : 
   15422             : /* "View.MemoryView":972
   15423             :  *             return memoryview.convert_item_to_object(self, itemp)
   15424             :  * 
   15425             :  *     cdef assign_item_from_object(self, char *itemp, object value):             # <<<<<<<<<<<<<<
   15426             :  *         if self.to_dtype_func != NULL:
   15427             :  *             self.to_dtype_func(itemp, value)
   15428             :  */
   15429             : 
   15430           0 : static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) {
   15431           0 :   PyObject *__pyx_r = NULL;
   15432             :   __Pyx_RefNannyDeclarations
   15433           0 :   int __pyx_t_1;
   15434           0 :   int __pyx_t_2;
   15435           0 :   PyObject *__pyx_t_3 = NULL;
   15436           0 :   int __pyx_lineno = 0;
   15437           0 :   const char *__pyx_filename = NULL;
   15438           0 :   int __pyx_clineno = 0;
   15439           0 :   __Pyx_RefNannySetupContext("assign_item_from_object", 1);
   15440             : 
   15441             :   /* "View.MemoryView":973
   15442             :  * 
   15443             :  *     cdef assign_item_from_object(self, char *itemp, object value):
   15444             :  *         if self.to_dtype_func != NULL:             # <<<<<<<<<<<<<<
   15445             :  *             self.to_dtype_func(itemp, value)
   15446             :  *         else:
   15447             :  */
   15448           0 :   __pyx_t_1 = (__pyx_v_self->to_dtype_func != NULL);
   15449           0 :   if (__pyx_t_1) {
   15450             : 
   15451             :     /* "View.MemoryView":974
   15452             :  *     cdef assign_item_from_object(self, char *itemp, object value):
   15453             :  *         if self.to_dtype_func != NULL:
   15454             :  *             self.to_dtype_func(itemp, value)             # <<<<<<<<<<<<<<
   15455             :  *         else:
   15456             :  *             memoryview.assign_item_from_object(self, itemp, value)
   15457             :  */
   15458           0 :     __pyx_t_2 = __pyx_v_self->to_dtype_func(__pyx_v_itemp, __pyx_v_value); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(1, 974, __pyx_L1_error)
   15459             : 
   15460             :     /* "View.MemoryView":973
   15461             :  * 
   15462             :  *     cdef assign_item_from_object(self, char *itemp, object value):
   15463             :  *         if self.to_dtype_func != NULL:             # <<<<<<<<<<<<<<
   15464             :  *             self.to_dtype_func(itemp, value)
   15465             :  *         else:
   15466             :  */
   15467           0 :     goto __pyx_L3;
   15468             :   }
   15469             : 
   15470             :   /* "View.MemoryView":976
   15471             :  *             self.to_dtype_func(itemp, value)
   15472             :  *         else:
   15473             :  *             memoryview.assign_item_from_object(self, itemp, value)             # <<<<<<<<<<<<<<
   15474             :  * 
   15475             :  *     cdef _get_base(self):
   15476             :  */
   15477             :   /*else*/ {
   15478           0 :     __pyx_t_3 = __pyx_memoryview_assign_item_from_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 976, __pyx_L1_error)
   15479           0 :     __Pyx_GOTREF(__pyx_t_3);
   15480           0 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   15481             :   }
   15482           0 :   __pyx_L3:;
   15483             : 
   15484             :   /* "View.MemoryView":972
   15485             :  *             return memoryview.convert_item_to_object(self, itemp)
   15486             :  * 
   15487             :  *     cdef assign_item_from_object(self, char *itemp, object value):             # <<<<<<<<<<<<<<
   15488             :  *         if self.to_dtype_func != NULL:
   15489             :  *             self.to_dtype_func(itemp, value)
   15490             :  */
   15491             : 
   15492             :   /* function exit code */
   15493           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   15494           0 :   goto __pyx_L0;
   15495           0 :   __pyx_L1_error:;
   15496           0 :   __Pyx_XDECREF(__pyx_t_3);
   15497           0 :   __Pyx_AddTraceback("View.MemoryView._memoryviewslice.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
   15498           0 :   __pyx_r = 0;
   15499           0 :   __pyx_L0:;
   15500           0 :   __Pyx_XGIVEREF(__pyx_r);
   15501           0 :   __Pyx_RefNannyFinishContext();
   15502           0 :   return __pyx_r;
   15503             : }
   15504             : 
   15505             : /* "View.MemoryView":978
   15506             :  *             memoryview.assign_item_from_object(self, itemp, value)
   15507             :  * 
   15508             :  *     cdef _get_base(self):             # <<<<<<<<<<<<<<
   15509             :  *         return self.from_object
   15510             :  * 
   15511             :  */
   15512             : 
   15513           0 : static PyObject *__pyx_memoryviewslice__get_base(struct __pyx_memoryviewslice_obj *__pyx_v_self) {
   15514           0 :   PyObject *__pyx_r = NULL;
   15515             :   __Pyx_RefNannyDeclarations
   15516           0 :   __Pyx_RefNannySetupContext("_get_base", 1);
   15517             : 
   15518             :   /* "View.MemoryView":979
   15519             :  * 
   15520             :  *     cdef _get_base(self):
   15521             :  *         return self.from_object             # <<<<<<<<<<<<<<
   15522             :  * 
   15523             :  * 
   15524             :  */
   15525           0 :   __Pyx_XDECREF(__pyx_r);
   15526           0 :   __Pyx_INCREF(__pyx_v_self->from_object);
   15527           0 :   __pyx_r = __pyx_v_self->from_object;
   15528           0 :   goto __pyx_L0;
   15529             : 
   15530             :   /* "View.MemoryView":978
   15531             :  *             memoryview.assign_item_from_object(self, itemp, value)
   15532             :  * 
   15533             :  *     cdef _get_base(self):             # <<<<<<<<<<<<<<
   15534             :  *         return self.from_object
   15535             :  * 
   15536             :  */
   15537             : 
   15538             :   /* function exit code */
   15539           0 :   __pyx_L0:;
   15540           0 :   __Pyx_XGIVEREF(__pyx_r);
   15541           0 :   __Pyx_RefNannyFinishContext();
   15542           0 :   return __pyx_r;
   15543             : }
   15544             : 
   15545             : /* "(tree fragment)":1
   15546             :  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
   15547             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
   15548             :  * def __setstate_cython__(self, __pyx_state):
   15549             :  */
   15550             : 
   15551             : /* Python wrapper */
   15552             : static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, 
   15553             : #if CYTHON_METH_FASTCALL
   15554             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   15555             : #else
   15556             : PyObject *__pyx_args, PyObject *__pyx_kwds
   15557             : #endif
   15558             : ); /*proto*/
   15559           0 : static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, 
   15560             : #if CYTHON_METH_FASTCALL
   15561             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   15562             : #else
   15563             : PyObject *__pyx_args, PyObject *__pyx_kwds
   15564             : #endif
   15565             : ) {
   15566             :   #if !CYTHON_METH_FASTCALL
   15567             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   15568             :   #endif
   15569           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   15570           0 :   PyObject *__pyx_r = 0;
   15571             :   __Pyx_RefNannyDeclarations
   15572           0 :   __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
   15573             :   #if !CYTHON_METH_FASTCALL
   15574             :   #if CYTHON_ASSUME_SAFE_MACROS
   15575             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   15576             :   #else
   15577             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   15578             :   #endif
   15579             :   #endif
   15580           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   15581           0 :   if (unlikely(__pyx_nargs > 0)) {
   15582           0 :     __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
   15583           0 :   if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
   15584           0 :   __pyx_r = __pyx_pf___pyx_memoryviewslice___reduce_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self));
   15585             : 
   15586             :   /* function exit code */
   15587           0 :   __Pyx_RefNannyFinishContext();
   15588           0 :   return __pyx_r;
   15589             : }
   15590             : 
   15591           0 : static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self) {
   15592           0 :   PyObject *__pyx_r = NULL;
   15593             :   __Pyx_RefNannyDeclarations
   15594           0 :   int __pyx_lineno = 0;
   15595           0 :   const char *__pyx_filename = NULL;
   15596           0 :   int __pyx_clineno = 0;
   15597           0 :   __Pyx_RefNannySetupContext("__reduce_cython__", 1);
   15598             : 
   15599             :   /* "(tree fragment)":2
   15600             :  * def __reduce_cython__(self):
   15601             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
   15602             :  * def __setstate_cython__(self, __pyx_state):
   15603             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
   15604             :  */
   15605           0 :   __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
   15606           0 :   __PYX_ERR(1, 2, __pyx_L1_error)
   15607             : 
   15608             :   /* "(tree fragment)":1
   15609             :  * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
   15610             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
   15611             :  * def __setstate_cython__(self, __pyx_state):
   15612             :  */
   15613             : 
   15614             :   /* function exit code */
   15615           0 :   __pyx_L1_error:;
   15616           0 :   __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   15617           0 :   __pyx_r = NULL;
   15618           0 :   __Pyx_XGIVEREF(__pyx_r);
   15619           0 :   __Pyx_RefNannyFinishContext();
   15620           0 :   return __pyx_r;
   15621             : }
   15622             : 
   15623             : /* "(tree fragment)":3
   15624             :  * def __reduce_cython__(self):
   15625             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
   15626             :  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
   15627             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
   15628             :  */
   15629             : 
   15630             : /* Python wrapper */
   15631             : static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, 
   15632             : #if CYTHON_METH_FASTCALL
   15633             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   15634             : #else
   15635             : PyObject *__pyx_args, PyObject *__pyx_kwds
   15636             : #endif
   15637             : ); /*proto*/
   15638           0 : static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, 
   15639             : #if CYTHON_METH_FASTCALL
   15640             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   15641             : #else
   15642             : PyObject *__pyx_args, PyObject *__pyx_kwds
   15643             : #endif
   15644             : ) {
   15645           0 :   CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
   15646             :   #if !CYTHON_METH_FASTCALL
   15647             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   15648             :   #endif
   15649           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   15650           0 :   PyObject* values[1] = {0};
   15651           0 :   int __pyx_lineno = 0;
   15652           0 :   const char *__pyx_filename = NULL;
   15653           0 :   int __pyx_clineno = 0;
   15654           0 :   PyObject *__pyx_r = 0;
   15655             :   __Pyx_RefNannyDeclarations
   15656           0 :   __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
   15657             :   #if !CYTHON_METH_FASTCALL
   15658             :   #if CYTHON_ASSUME_SAFE_MACROS
   15659             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   15660             :   #else
   15661             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   15662             :   #endif
   15663             :   #endif
   15664           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   15665             :   {
   15666           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
   15667           0 :     if (__pyx_kwds) {
   15668           0 :       Py_ssize_t kw_args;
   15669           0 :       switch (__pyx_nargs) {
   15670           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   15671           0 :         CYTHON_FALLTHROUGH;
   15672           0 :         case  0: break;
   15673           0 :         default: goto __pyx_L5_argtuple_error;
   15674             :       }
   15675           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   15676           0 :       switch (__pyx_nargs) {
   15677             :         case  0:
   15678           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
   15679           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   15680           0 :           kw_args--;
   15681             :         }
   15682           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error)
   15683           0 :         else goto __pyx_L5_argtuple_error;
   15684             :       }
   15685           0 :       if (unlikely(kw_args > 0)) {
   15686           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   15687           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error)
   15688             :       }
   15689           0 :     } else if (unlikely(__pyx_nargs != 1)) {
   15690           0 :       goto __pyx_L5_argtuple_error;
   15691             :     } else {
   15692           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   15693             :     }
   15694           0 :     __pyx_v___pyx_state = values[0];
   15695             :   }
   15696           0 :   goto __pyx_L6_skip;
   15697           0 :   __pyx_L5_argtuple_error:;
   15698           0 :   __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
   15699           0 :   __pyx_L6_skip:;
   15700           0 :   goto __pyx_L4_argument_unpacking_done;
   15701           0 :   __pyx_L3_error:;
   15702             :   {
   15703           0 :     Py_ssize_t __pyx_temp;
   15704           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   15705             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   15706             :     }
   15707             :   }
   15708           0 :   __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   15709           0 :   __Pyx_RefNannyFinishContext();
   15710           0 :   return NULL;
   15711           0 :   __pyx_L4_argument_unpacking_done:;
   15712           0 :   __pyx_r = __pyx_pf___pyx_memoryviewslice_2__setstate_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self), __pyx_v___pyx_state);
   15713             : 
   15714             :   /* function exit code */
   15715             :   {
   15716           0 :     Py_ssize_t __pyx_temp;
   15717           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   15718             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   15719             :     }
   15720             :   }
   15721             :   __Pyx_RefNannyFinishContext();
   15722             :   return __pyx_r;
   15723             : }
   15724             : 
   15725           0 : static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
   15726           0 :   PyObject *__pyx_r = NULL;
   15727             :   __Pyx_RefNannyDeclarations
   15728           0 :   int __pyx_lineno = 0;
   15729           0 :   const char *__pyx_filename = NULL;
   15730           0 :   int __pyx_clineno = 0;
   15731           0 :   __Pyx_RefNannySetupContext("__setstate_cython__", 1);
   15732             : 
   15733             :   /* "(tree fragment)":4
   15734             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
   15735             :  * def __setstate_cython__(self, __pyx_state):
   15736             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"             # <<<<<<<<<<<<<<
   15737             :  */
   15738           0 :   __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
   15739           0 :   __PYX_ERR(1, 4, __pyx_L1_error)
   15740             : 
   15741             :   /* "(tree fragment)":3
   15742             :  * def __reduce_cython__(self):
   15743             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
   15744             :  * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
   15745             :  *     raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
   15746             :  */
   15747             : 
   15748             :   /* function exit code */
   15749           0 :   __pyx_L1_error:;
   15750           0 :   __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   15751           0 :   __pyx_r = NULL;
   15752           0 :   __Pyx_XGIVEREF(__pyx_r);
   15753           0 :   __Pyx_RefNannyFinishContext();
   15754           0 :   return __pyx_r;
   15755             : }
   15756             : 
   15757             : /* "View.MemoryView":999
   15758             :  * 
   15759             :  * @cname('__pyx_memoryview_fromslice')
   15760             :  * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice,             # <<<<<<<<<<<<<<
   15761             :  *                           int ndim,
   15762             :  *                           object (*to_object_func)(char *),
   15763             :  */
   15764             : 
   15765      136725 : static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice __pyx_v_memviewslice, int __pyx_v_ndim, PyObject *(*__pyx_v_to_object_func)(char *), int (*__pyx_v_to_dtype_func)(char *, PyObject *), int __pyx_v_dtype_is_object) {
   15766      136725 :   struct __pyx_memoryviewslice_obj *__pyx_v_result = 0;
   15767      136725 :   Py_ssize_t __pyx_v_suboffset;
   15768      136725 :   PyObject *__pyx_v_length = NULL;
   15769      136725 :   PyObject *__pyx_r = NULL;
   15770             :   __Pyx_RefNannyDeclarations
   15771      136725 :   int __pyx_t_1;
   15772      136725 :   PyObject *__pyx_t_2 = NULL;
   15773      136725 :   PyObject *__pyx_t_3 = NULL;
   15774      136725 :   __Pyx_TypeInfo *__pyx_t_4;
   15775      136725 :   Py_buffer __pyx_t_5;
   15776      136725 :   Py_ssize_t *__pyx_t_6;
   15777      136725 :   Py_ssize_t *__pyx_t_7;
   15778      136725 :   Py_ssize_t *__pyx_t_8;
   15779      136725 :   Py_ssize_t __pyx_t_9;
   15780      136725 :   int __pyx_lineno = 0;
   15781      136725 :   const char *__pyx_filename = NULL;
   15782      136725 :   int __pyx_clineno = 0;
   15783      136725 :   __Pyx_RefNannySetupContext("memoryview_fromslice", 1);
   15784             : 
   15785             :   /* "View.MemoryView":1007
   15786             :  *     cdef _memoryviewslice result
   15787             :  * 
   15788             :  *     if <PyObject *> memviewslice.memview == Py_None:             # <<<<<<<<<<<<<<
   15789             :  *         return None
   15790             :  * 
   15791             :  */
   15792      136725 :   __pyx_t_1 = (((PyObject *)__pyx_v_memviewslice.memview) == Py_None);
   15793      136725 :   if (__pyx_t_1) {
   15794             : 
   15795             :     /* "View.MemoryView":1008
   15796             :  * 
   15797             :  *     if <PyObject *> memviewslice.memview == Py_None:
   15798             :  *         return None             # <<<<<<<<<<<<<<
   15799             :  * 
   15800             :  * 
   15801             :  */
   15802           0 :     __Pyx_XDECREF(__pyx_r);
   15803           0 :     __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   15804           0 :     goto __pyx_L0;
   15805             : 
   15806             :     /* "View.MemoryView":1007
   15807             :  *     cdef _memoryviewslice result
   15808             :  * 
   15809             :  *     if <PyObject *> memviewslice.memview == Py_None:             # <<<<<<<<<<<<<<
   15810             :  *         return None
   15811             :  * 
   15812             :  */
   15813             :   }
   15814             : 
   15815             :   /* "View.MemoryView":1013
   15816             :  * 
   15817             :  * 
   15818             :  *     result = _memoryviewslice.__new__(_memoryviewslice, None, 0, dtype_is_object)             # <<<<<<<<<<<<<<
   15819             :  * 
   15820             :  *     result.from_slice = memviewslice
   15821             :  */
   15822      136725 :   __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1013, __pyx_L1_error)
   15823      136725 :   __Pyx_GOTREF(__pyx_t_2);
   15824      136725 :   __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1013, __pyx_L1_error)
   15825      136725 :   __Pyx_GOTREF(__pyx_t_3);
   15826      136725 :   __Pyx_INCREF(Py_None);
   15827      136725 :   __Pyx_GIVEREF(Py_None);
   15828      136725 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, Py_None)) __PYX_ERR(1, 1013, __pyx_L1_error);
   15829      136725 :   __Pyx_INCREF(__pyx_int_0);
   15830      136725 :   __Pyx_GIVEREF(__pyx_int_0);
   15831      136725 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0)) __PYX_ERR(1, 1013, __pyx_L1_error);
   15832      136725 :   __Pyx_GIVEREF(__pyx_t_2);
   15833      136725 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(1, 1013, __pyx_L1_error);
   15834      136725 :   __pyx_t_2 = 0;
   15835      136725 :   __pyx_t_2 = ((PyObject *)__pyx_tp_new__memoryviewslice(((PyTypeObject *)__pyx_memoryviewslice_type), __pyx_t_3, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1013, __pyx_L1_error)
   15836      136725 :   __Pyx_GOTREF((PyObject *)__pyx_t_2);
   15837      136725 :   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   15838      136725 :   __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2);
   15839      136725 :   __pyx_t_2 = 0;
   15840             : 
   15841             :   /* "View.MemoryView":1015
   15842             :  *     result = _memoryviewslice.__new__(_memoryviewslice, None, 0, dtype_is_object)
   15843             :  * 
   15844             :  *     result.from_slice = memviewslice             # <<<<<<<<<<<<<<
   15845             :  *     __PYX_INC_MEMVIEW(&memviewslice, 1)
   15846             :  * 
   15847             :  */
   15848      136725 :   __pyx_v_result->from_slice = __pyx_v_memviewslice;
   15849             : 
   15850             :   /* "View.MemoryView":1016
   15851             :  * 
   15852             :  *     result.from_slice = memviewslice
   15853             :  *     __PYX_INC_MEMVIEW(&memviewslice, 1)             # <<<<<<<<<<<<<<
   15854             :  * 
   15855             :  *     result.from_object = (<memoryview> memviewslice.memview)._get_base()
   15856             :  */
   15857      136725 :   __PYX_INC_MEMVIEW((&__pyx_v_memviewslice), 1);
   15858             : 
   15859             :   /* "View.MemoryView":1018
   15860             :  *     __PYX_INC_MEMVIEW(&memviewslice, 1)
   15861             :  * 
   15862             :  *     result.from_object = (<memoryview> memviewslice.memview)._get_base()             # <<<<<<<<<<<<<<
   15863             :  *     result.typeinfo = memviewslice.memview.typeinfo
   15864             :  * 
   15865             :  */
   15866      136725 :   __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)->__pyx_vtab)->_get_base(((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1018, __pyx_L1_error)
   15867      136725 :   __Pyx_GOTREF(__pyx_t_2);
   15868      136725 :   __Pyx_GIVEREF(__pyx_t_2);
   15869      136725 :   __Pyx_GOTREF(__pyx_v_result->from_object);
   15870      136725 :   __Pyx_DECREF(__pyx_v_result->from_object);
   15871      136725 :   __pyx_v_result->from_object = __pyx_t_2;
   15872      136725 :   __pyx_t_2 = 0;
   15873             : 
   15874             :   /* "View.MemoryView":1019
   15875             :  * 
   15876             :  *     result.from_object = (<memoryview> memviewslice.memview)._get_base()
   15877             :  *     result.typeinfo = memviewslice.memview.typeinfo             # <<<<<<<<<<<<<<
   15878             :  * 
   15879             :  *     result.view = memviewslice.memview.view
   15880             :  */
   15881      136725 :   __pyx_t_4 = __pyx_v_memviewslice.memview->typeinfo;
   15882      136725 :   __pyx_v_result->__pyx_base.typeinfo = __pyx_t_4;
   15883             : 
   15884             :   /* "View.MemoryView":1021
   15885             :  *     result.typeinfo = memviewslice.memview.typeinfo
   15886             :  * 
   15887             :  *     result.view = memviewslice.memview.view             # <<<<<<<<<<<<<<
   15888             :  *     result.view.buf = <void *> memviewslice.data
   15889             :  *     result.view.ndim = ndim
   15890             :  */
   15891      136725 :   __pyx_t_5 = __pyx_v_memviewslice.memview->view;
   15892      136725 :   __pyx_v_result->__pyx_base.view = __pyx_t_5;
   15893             : 
   15894             :   /* "View.MemoryView":1022
   15895             :  * 
   15896             :  *     result.view = memviewslice.memview.view
   15897             :  *     result.view.buf = <void *> memviewslice.data             # <<<<<<<<<<<<<<
   15898             :  *     result.view.ndim = ndim
   15899             :  *     (<__pyx_buffer *> &result.view).obj = Py_None
   15900             :  */
   15901      136725 :   __pyx_v_result->__pyx_base.view.buf = ((void *)__pyx_v_memviewslice.data);
   15902             : 
   15903             :   /* "View.MemoryView":1023
   15904             :  *     result.view = memviewslice.memview.view
   15905             :  *     result.view.buf = <void *> memviewslice.data
   15906             :  *     result.view.ndim = ndim             # <<<<<<<<<<<<<<
   15907             :  *     (<__pyx_buffer *> &result.view).obj = Py_None
   15908             :  *     Py_INCREF(Py_None)
   15909             :  */
   15910      136725 :   __pyx_v_result->__pyx_base.view.ndim = __pyx_v_ndim;
   15911             : 
   15912             :   /* "View.MemoryView":1024
   15913             :  *     result.view.buf = <void *> memviewslice.data
   15914             :  *     result.view.ndim = ndim
   15915             :  *     (<__pyx_buffer *> &result.view).obj = Py_None             # <<<<<<<<<<<<<<
   15916             :  *     Py_INCREF(Py_None)
   15917             :  * 
   15918             :  */
   15919      136725 :   ((Py_buffer *)(&__pyx_v_result->__pyx_base.view))->obj = Py_None;
   15920             : 
   15921             :   /* "View.MemoryView":1025
   15922             :  *     result.view.ndim = ndim
   15923             :  *     (<__pyx_buffer *> &result.view).obj = Py_None
   15924             :  *     Py_INCREF(Py_None)             # <<<<<<<<<<<<<<
   15925             :  * 
   15926             :  *     if (<memoryview>memviewslice.memview).flags & PyBUF_WRITABLE:
   15927             :  */
   15928      136725 :   Py_INCREF(Py_None);
   15929             : 
   15930             :   /* "View.MemoryView":1027
   15931             :  *     Py_INCREF(Py_None)
   15932             :  * 
   15933             :  *     if (<memoryview>memviewslice.memview).flags & PyBUF_WRITABLE:             # <<<<<<<<<<<<<<
   15934             :  *         result.flags = PyBUF_RECORDS
   15935             :  *     else:
   15936             :  */
   15937      136725 :   __pyx_t_1 = ((((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)->flags & PyBUF_WRITABLE) != 0);
   15938      136725 :   if (__pyx_t_1) {
   15939             : 
   15940             :     /* "View.MemoryView":1028
   15941             :  * 
   15942             :  *     if (<memoryview>memviewslice.memview).flags & PyBUF_WRITABLE:
   15943             :  *         result.flags = PyBUF_RECORDS             # <<<<<<<<<<<<<<
   15944             :  *     else:
   15945             :  *         result.flags = PyBUF_RECORDS_RO
   15946             :  */
   15947       50680 :     __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS;
   15948             : 
   15949             :     /* "View.MemoryView":1027
   15950             :  *     Py_INCREF(Py_None)
   15951             :  * 
   15952             :  *     if (<memoryview>memviewslice.memview).flags & PyBUF_WRITABLE:             # <<<<<<<<<<<<<<
   15953             :  *         result.flags = PyBUF_RECORDS
   15954             :  *     else:
   15955             :  */
   15956       50680 :     goto __pyx_L4;
   15957             :   }
   15958             : 
   15959             :   /* "View.MemoryView":1030
   15960             :  *         result.flags = PyBUF_RECORDS
   15961             :  *     else:
   15962             :  *         result.flags = PyBUF_RECORDS_RO             # <<<<<<<<<<<<<<
   15963             :  * 
   15964             :  *     result.view.shape = <Py_ssize_t *> result.from_slice.shape
   15965             :  */
   15966             :   /*else*/ {
   15967       86045 :     __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS_RO;
   15968             :   }
   15969      136725 :   __pyx_L4:;
   15970             : 
   15971             :   /* "View.MemoryView":1032
   15972             :  *         result.flags = PyBUF_RECORDS_RO
   15973             :  * 
   15974             :  *     result.view.shape = <Py_ssize_t *> result.from_slice.shape             # <<<<<<<<<<<<<<
   15975             :  *     result.view.strides = <Py_ssize_t *> result.from_slice.strides
   15976             :  * 
   15977             :  */
   15978      136725 :   __pyx_v_result->__pyx_base.view.shape = ((Py_ssize_t *)__pyx_v_result->from_slice.shape);
   15979             : 
   15980             :   /* "View.MemoryView":1033
   15981             :  * 
   15982             :  *     result.view.shape = <Py_ssize_t *> result.from_slice.shape
   15983             :  *     result.view.strides = <Py_ssize_t *> result.from_slice.strides             # <<<<<<<<<<<<<<
   15984             :  * 
   15985             :  * 
   15986             :  */
   15987      136725 :   __pyx_v_result->__pyx_base.view.strides = ((Py_ssize_t *)__pyx_v_result->from_slice.strides);
   15988             : 
   15989             :   /* "View.MemoryView":1036
   15990             :  * 
   15991             :  * 
   15992             :  *     result.view.suboffsets = NULL             # <<<<<<<<<<<<<<
   15993             :  *     for suboffset in result.from_slice.suboffsets[:ndim]:
   15994             :  *         if suboffset >= 0:
   15995             :  */
   15996      136725 :   __pyx_v_result->__pyx_base.view.suboffsets = NULL;
   15997             : 
   15998             :   /* "View.MemoryView":1037
   15999             :  * 
   16000             :  *     result.view.suboffsets = NULL
   16001             :  *     for suboffset in result.from_slice.suboffsets[:ndim]:             # <<<<<<<<<<<<<<
   16002             :  *         if suboffset >= 0:
   16003             :  *             result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets
   16004             :  */
   16005      136725 :   __pyx_t_7 = (__pyx_v_result->from_slice.suboffsets + __pyx_v_ndim);
   16006      273450 :   for (__pyx_t_8 = __pyx_v_result->from_slice.suboffsets; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) {
   16007      136725 :     __pyx_t_6 = __pyx_t_8;
   16008      136725 :     __pyx_v_suboffset = (__pyx_t_6[0]);
   16009             : 
   16010             :     /* "View.MemoryView":1038
   16011             :  *     result.view.suboffsets = NULL
   16012             :  *     for suboffset in result.from_slice.suboffsets[:ndim]:
   16013             :  *         if suboffset >= 0:             # <<<<<<<<<<<<<<
   16014             :  *             result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets
   16015             :  *             break
   16016             :  */
   16017      136725 :     __pyx_t_1 = (__pyx_v_suboffset >= 0);
   16018      136725 :     if (__pyx_t_1) {
   16019             : 
   16020             :       /* "View.MemoryView":1039
   16021             :  *     for suboffset in result.from_slice.suboffsets[:ndim]:
   16022             :  *         if suboffset >= 0:
   16023             :  *             result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets             # <<<<<<<<<<<<<<
   16024             :  *             break
   16025             :  * 
   16026             :  */
   16027           0 :       __pyx_v_result->__pyx_base.view.suboffsets = ((Py_ssize_t *)__pyx_v_result->from_slice.suboffsets);
   16028             : 
   16029             :       /* "View.MemoryView":1040
   16030             :  *         if suboffset >= 0:
   16031             :  *             result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets
   16032             :  *             break             # <<<<<<<<<<<<<<
   16033             :  * 
   16034             :  *     result.view.len = result.view.itemsize
   16035             :  */
   16036           0 :       goto __pyx_L6_break;
   16037             : 
   16038             :       /* "View.MemoryView":1038
   16039             :  *     result.view.suboffsets = NULL
   16040             :  *     for suboffset in result.from_slice.suboffsets[:ndim]:
   16041             :  *         if suboffset >= 0:             # <<<<<<<<<<<<<<
   16042             :  *             result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets
   16043             :  *             break
   16044             :  */
   16045             :     }
   16046             :   }
   16047      136725 :   __pyx_L6_break:;
   16048             : 
   16049             :   /* "View.MemoryView":1042
   16050             :  *             break
   16051             :  * 
   16052             :  *     result.view.len = result.view.itemsize             # <<<<<<<<<<<<<<
   16053             :  *     for length in result.view.shape[:ndim]:
   16054             :  *         result.view.len *= length
   16055             :  */
   16056      136725 :   __pyx_t_9 = __pyx_v_result->__pyx_base.view.itemsize;
   16057      136725 :   __pyx_v_result->__pyx_base.view.len = __pyx_t_9;
   16058             : 
   16059             :   /* "View.MemoryView":1043
   16060             :  * 
   16061             :  *     result.view.len = result.view.itemsize
   16062             :  *     for length in result.view.shape[:ndim]:             # <<<<<<<<<<<<<<
   16063             :  *         result.view.len *= length
   16064             :  * 
   16065             :  */
   16066      136725 :   __pyx_t_7 = (__pyx_v_result->__pyx_base.view.shape + __pyx_v_ndim);
   16067      273450 :   for (__pyx_t_8 = __pyx_v_result->__pyx_base.view.shape; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) {
   16068      136725 :     __pyx_t_6 = __pyx_t_8;
   16069      136725 :     __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_6[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1043, __pyx_L1_error)
   16070      136725 :     __Pyx_GOTREF(__pyx_t_2);
   16071      136725 :     __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_2);
   16072      136725 :     __pyx_t_2 = 0;
   16073             : 
   16074             :     /* "View.MemoryView":1044
   16075             :  *     result.view.len = result.view.itemsize
   16076             :  *     for length in result.view.shape[:ndim]:
   16077             :  *         result.view.len *= length             # <<<<<<<<<<<<<<
   16078             :  * 
   16079             :  *     result.to_object_func = to_object_func
   16080             :  */
   16081      136725 :     __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_result->__pyx_base.view.len); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1044, __pyx_L1_error)
   16082      136725 :     __Pyx_GOTREF(__pyx_t_2);
   16083      136725 :     __pyx_t_3 = PyNumber_InPlaceMultiply(__pyx_t_2, __pyx_v_length); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1044, __pyx_L1_error)
   16084      136725 :     __Pyx_GOTREF(__pyx_t_3);
   16085      136725 :     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   16086      136725 :     __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 1044, __pyx_L1_error)
   16087      136725 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   16088      136725 :     __pyx_v_result->__pyx_base.view.len = __pyx_t_9;
   16089             :   }
   16090             : 
   16091             :   /* "View.MemoryView":1046
   16092             :  *         result.view.len *= length
   16093             :  * 
   16094             :  *     result.to_object_func = to_object_func             # <<<<<<<<<<<<<<
   16095             :  *     result.to_dtype_func = to_dtype_func
   16096             :  * 
   16097             :  */
   16098      136725 :   __pyx_v_result->to_object_func = __pyx_v_to_object_func;
   16099             : 
   16100             :   /* "View.MemoryView":1047
   16101             :  * 
   16102             :  *     result.to_object_func = to_object_func
   16103             :  *     result.to_dtype_func = to_dtype_func             # <<<<<<<<<<<<<<
   16104             :  * 
   16105             :  *     return result
   16106             :  */
   16107      136725 :   __pyx_v_result->to_dtype_func = __pyx_v_to_dtype_func;
   16108             : 
   16109             :   /* "View.MemoryView":1049
   16110             :  *     result.to_dtype_func = to_dtype_func
   16111             :  * 
   16112             :  *     return result             # <<<<<<<<<<<<<<
   16113             :  * 
   16114             :  * @cname('__pyx_memoryview_get_slice_from_memoryview')
   16115             :  */
   16116      136725 :   __Pyx_XDECREF(__pyx_r);
   16117      136725 :   __Pyx_INCREF((PyObject *)__pyx_v_result);
   16118      136725 :   __pyx_r = ((PyObject *)__pyx_v_result);
   16119      136725 :   goto __pyx_L0;
   16120             : 
   16121             :   /* "View.MemoryView":999
   16122             :  * 
   16123             :  * @cname('__pyx_memoryview_fromslice')
   16124             :  * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice,             # <<<<<<<<<<<<<<
   16125             :  *                           int ndim,
   16126             :  *                           object (*to_object_func)(char *),
   16127             :  */
   16128             : 
   16129             :   /* function exit code */
   16130           0 :   __pyx_L1_error:;
   16131           0 :   __Pyx_XDECREF(__pyx_t_2);
   16132           0 :   __Pyx_XDECREF(__pyx_t_3);
   16133           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview_fromslice", __pyx_clineno, __pyx_lineno, __pyx_filename);
   16134           0 :   __pyx_r = 0;
   16135      136725 :   __pyx_L0:;
   16136      136725 :   __Pyx_XDECREF((PyObject *)__pyx_v_result);
   16137      136725 :   __Pyx_XDECREF(__pyx_v_length);
   16138      136725 :   __Pyx_XGIVEREF(__pyx_r);
   16139      136725 :   __Pyx_RefNannyFinishContext();
   16140      136725 :   return __pyx_r;
   16141             : }
   16142             : 
   16143             : /* "View.MemoryView":1052
   16144             :  * 
   16145             :  * @cname('__pyx_memoryview_get_slice_from_memoryview')
   16146             :  * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview,             # <<<<<<<<<<<<<<
   16147             :  *                                                    __Pyx_memviewslice *mslice) except NULL:
   16148             :  *     cdef _memoryviewslice obj
   16149             :  */
   16150             : 
   16151           0 : static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_mslice) {
   16152           0 :   struct __pyx_memoryviewslice_obj *__pyx_v_obj = 0;
   16153           0 :   __Pyx_memviewslice *__pyx_r;
   16154             :   __Pyx_RefNannyDeclarations
   16155           0 :   int __pyx_t_1;
   16156           0 :   PyObject *__pyx_t_2 = NULL;
   16157           0 :   int __pyx_lineno = 0;
   16158           0 :   const char *__pyx_filename = NULL;
   16159           0 :   int __pyx_clineno = 0;
   16160           0 :   __Pyx_RefNannySetupContext("get_slice_from_memview", 1);
   16161             : 
   16162             :   /* "View.MemoryView":1055
   16163             :  *                                                    __Pyx_memviewslice *mslice) except NULL:
   16164             :  *     cdef _memoryviewslice obj
   16165             :  *     if isinstance(memview, _memoryviewslice):             # <<<<<<<<<<<<<<
   16166             :  *         obj = memview
   16167             :  *         return &obj.from_slice
   16168             :  */
   16169           0 :   __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); 
   16170           0 :   if (__pyx_t_1) {
   16171             : 
   16172             :     /* "View.MemoryView":1056
   16173             :  *     cdef _memoryviewslice obj
   16174             :  *     if isinstance(memview, _memoryviewslice):
   16175             :  *         obj = memview             # <<<<<<<<<<<<<<
   16176             :  *         return &obj.from_slice
   16177             :  *     else:
   16178             :  */
   16179           0 :     if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(1, 1056, __pyx_L1_error)
   16180           0 :     __pyx_t_2 = ((PyObject *)__pyx_v_memview);
   16181           0 :     __Pyx_INCREF(__pyx_t_2);
   16182           0 :     __pyx_v_obj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2);
   16183           0 :     __pyx_t_2 = 0;
   16184             : 
   16185             :     /* "View.MemoryView":1057
   16186             :  *     if isinstance(memview, _memoryviewslice):
   16187             :  *         obj = memview
   16188             :  *         return &obj.from_slice             # <<<<<<<<<<<<<<
   16189             :  *     else:
   16190             :  *         slice_copy(memview, mslice)
   16191             :  */
   16192           0 :     __pyx_r = (&__pyx_v_obj->from_slice);
   16193           0 :     goto __pyx_L0;
   16194             : 
   16195             :     /* "View.MemoryView":1055
   16196             :  *                                                    __Pyx_memviewslice *mslice) except NULL:
   16197             :  *     cdef _memoryviewslice obj
   16198             :  *     if isinstance(memview, _memoryviewslice):             # <<<<<<<<<<<<<<
   16199             :  *         obj = memview
   16200             :  *         return &obj.from_slice
   16201             :  */
   16202             :   }
   16203             : 
   16204             :   /* "View.MemoryView":1059
   16205             :  *         return &obj.from_slice
   16206             :  *     else:
   16207             :  *         slice_copy(memview, mslice)             # <<<<<<<<<<<<<<
   16208             :  *         return mslice
   16209             :  * 
   16210             :  */
   16211             :   /*else*/ {
   16212           0 :     __pyx_memoryview_slice_copy(__pyx_v_memview, __pyx_v_mslice);
   16213             : 
   16214             :     /* "View.MemoryView":1060
   16215             :  *     else:
   16216             :  *         slice_copy(memview, mslice)
   16217             :  *         return mslice             # <<<<<<<<<<<<<<
   16218             :  * 
   16219             :  * @cname('__pyx_memoryview_slice_copy')
   16220             :  */
   16221           0 :     __pyx_r = __pyx_v_mslice;
   16222           0 :     goto __pyx_L0;
   16223             :   }
   16224             : 
   16225             :   /* "View.MemoryView":1052
   16226             :  * 
   16227             :  * @cname('__pyx_memoryview_get_slice_from_memoryview')
   16228             :  * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview,             # <<<<<<<<<<<<<<
   16229             :  *                                                    __Pyx_memviewslice *mslice) except NULL:
   16230             :  *     cdef _memoryviewslice obj
   16231             :  */
   16232             : 
   16233             :   /* function exit code */
   16234           0 :   __pyx_L1_error:;
   16235           0 :   __Pyx_XDECREF(__pyx_t_2);
   16236           0 :   __Pyx_AddTraceback("View.MemoryView.get_slice_from_memview", __pyx_clineno, __pyx_lineno, __pyx_filename);
   16237           0 :   __pyx_r = NULL;
   16238           0 :   __pyx_L0:;
   16239           0 :   __Pyx_XDECREF((PyObject *)__pyx_v_obj);
   16240           0 :   __Pyx_RefNannyFinishContext();
   16241           0 :   return __pyx_r;
   16242             : }
   16243             : 
   16244             : /* "View.MemoryView":1063
   16245             :  * 
   16246             :  * @cname('__pyx_memoryview_slice_copy')
   16247             :  * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst) noexcept:             # <<<<<<<<<<<<<<
   16248             :  *     cdef int dim
   16249             :  *     cdef (Py_ssize_t*) shape, strides, suboffsets
   16250             :  */
   16251             : 
   16252           0 : static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_dst) {
   16253           0 :   int __pyx_v_dim;
   16254           0 :   Py_ssize_t *__pyx_v_shape;
   16255           0 :   Py_ssize_t *__pyx_v_strides;
   16256           0 :   Py_ssize_t *__pyx_v_suboffsets;
   16257           0 :   Py_ssize_t *__pyx_t_1;
   16258           0 :   int __pyx_t_2;
   16259           0 :   int __pyx_t_3;
   16260           0 :   int __pyx_t_4;
   16261           0 :   Py_ssize_t __pyx_t_5;
   16262           0 :   int __pyx_t_6;
   16263             : 
   16264             :   /* "View.MemoryView":1067
   16265             :  *     cdef (Py_ssize_t*) shape, strides, suboffsets
   16266             :  * 
   16267             :  *     shape = memview.view.shape             # <<<<<<<<<<<<<<
   16268             :  *     strides = memview.view.strides
   16269             :  *     suboffsets = memview.view.suboffsets
   16270             :  */
   16271           0 :   __pyx_t_1 = __pyx_v_memview->view.shape;
   16272           0 :   __pyx_v_shape = __pyx_t_1;
   16273             : 
   16274             :   /* "View.MemoryView":1068
   16275             :  * 
   16276             :  *     shape = memview.view.shape
   16277             :  *     strides = memview.view.strides             # <<<<<<<<<<<<<<
   16278             :  *     suboffsets = memview.view.suboffsets
   16279             :  * 
   16280             :  */
   16281           0 :   __pyx_t_1 = __pyx_v_memview->view.strides;
   16282           0 :   __pyx_v_strides = __pyx_t_1;
   16283             : 
   16284             :   /* "View.MemoryView":1069
   16285             :  *     shape = memview.view.shape
   16286             :  *     strides = memview.view.strides
   16287             :  *     suboffsets = memview.view.suboffsets             # <<<<<<<<<<<<<<
   16288             :  * 
   16289             :  *     dst.memview = <__pyx_memoryview *> memview
   16290             :  */
   16291           0 :   __pyx_t_1 = __pyx_v_memview->view.suboffsets;
   16292           0 :   __pyx_v_suboffsets = __pyx_t_1;
   16293             : 
   16294             :   /* "View.MemoryView":1071
   16295             :  *     suboffsets = memview.view.suboffsets
   16296             :  * 
   16297             :  *     dst.memview = <__pyx_memoryview *> memview             # <<<<<<<<<<<<<<
   16298             :  *     dst.data = <char *> memview.view.buf
   16299             :  * 
   16300             :  */
   16301           0 :   __pyx_v_dst->memview = ((struct __pyx_memoryview_obj *)__pyx_v_memview);
   16302             : 
   16303             :   /* "View.MemoryView":1072
   16304             :  * 
   16305             :  *     dst.memview = <__pyx_memoryview *> memview
   16306             :  *     dst.data = <char *> memview.view.buf             # <<<<<<<<<<<<<<
   16307             :  * 
   16308             :  *     for dim in range(memview.view.ndim):
   16309             :  */
   16310           0 :   __pyx_v_dst->data = ((char *)__pyx_v_memview->view.buf);
   16311             : 
   16312             :   /* "View.MemoryView":1074
   16313             :  *     dst.data = <char *> memview.view.buf
   16314             :  * 
   16315             :  *     for dim in range(memview.view.ndim):             # <<<<<<<<<<<<<<
   16316             :  *         dst.shape[dim] = shape[dim]
   16317             :  *         dst.strides[dim] = strides[dim]
   16318             :  */
   16319           0 :   __pyx_t_2 = __pyx_v_memview->view.ndim;
   16320           0 :   __pyx_t_3 = __pyx_t_2;
   16321           0 :   for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
   16322           0 :     __pyx_v_dim = __pyx_t_4;
   16323             : 
   16324             :     /* "View.MemoryView":1075
   16325             :  * 
   16326             :  *     for dim in range(memview.view.ndim):
   16327             :  *         dst.shape[dim] = shape[dim]             # <<<<<<<<<<<<<<
   16328             :  *         dst.strides[dim] = strides[dim]
   16329             :  *         dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1
   16330             :  */
   16331           0 :     (__pyx_v_dst->shape[__pyx_v_dim]) = (__pyx_v_shape[__pyx_v_dim]);
   16332             : 
   16333             :     /* "View.MemoryView":1076
   16334             :  *     for dim in range(memview.view.ndim):
   16335             :  *         dst.shape[dim] = shape[dim]
   16336             :  *         dst.strides[dim] = strides[dim]             # <<<<<<<<<<<<<<
   16337             :  *         dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1
   16338             :  * 
   16339             :  */
   16340           0 :     (__pyx_v_dst->strides[__pyx_v_dim]) = (__pyx_v_strides[__pyx_v_dim]);
   16341             : 
   16342             :     /* "View.MemoryView":1077
   16343             :  *         dst.shape[dim] = shape[dim]
   16344             :  *         dst.strides[dim] = strides[dim]
   16345             :  *         dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1             # <<<<<<<<<<<<<<
   16346             :  * 
   16347             :  * @cname('__pyx_memoryview_copy_object')
   16348             :  */
   16349           0 :     __pyx_t_6 = (__pyx_v_suboffsets != 0);
   16350           0 :     if (__pyx_t_6) {
   16351           0 :       __pyx_t_5 = (__pyx_v_suboffsets[__pyx_v_dim]);
   16352             :     } else {
   16353             :       __pyx_t_5 = -1L;
   16354             :     }
   16355           0 :     (__pyx_v_dst->suboffsets[__pyx_v_dim]) = __pyx_t_5;
   16356             :   }
   16357             : 
   16358             :   /* "View.MemoryView":1063
   16359             :  * 
   16360             :  * @cname('__pyx_memoryview_slice_copy')
   16361             :  * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst) noexcept:             # <<<<<<<<<<<<<<
   16362             :  *     cdef int dim
   16363             :  *     cdef (Py_ssize_t*) shape, strides, suboffsets
   16364             :  */
   16365             : 
   16366             :   /* function exit code */
   16367           0 : }
   16368             : 
   16369             : /* "View.MemoryView":1080
   16370             :  * 
   16371             :  * @cname('__pyx_memoryview_copy_object')
   16372             :  * cdef memoryview_copy(memoryview memview):             # <<<<<<<<<<<<<<
   16373             :  *     "Create a new memoryview object"
   16374             :  *     cdef __Pyx_memviewslice memviewslice
   16375             :  */
   16376             : 
   16377           0 : static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *__pyx_v_memview) {
   16378           0 :   __Pyx_memviewslice __pyx_v_memviewslice;
   16379           0 :   PyObject *__pyx_r = NULL;
   16380             :   __Pyx_RefNannyDeclarations
   16381           0 :   PyObject *__pyx_t_1 = NULL;
   16382           0 :   int __pyx_lineno = 0;
   16383           0 :   const char *__pyx_filename = NULL;
   16384           0 :   int __pyx_clineno = 0;
   16385           0 :   __Pyx_RefNannySetupContext("memoryview_copy", 1);
   16386             : 
   16387             :   /* "View.MemoryView":1083
   16388             :  *     "Create a new memoryview object"
   16389             :  *     cdef __Pyx_memviewslice memviewslice
   16390             :  *     slice_copy(memview, &memviewslice)             # <<<<<<<<<<<<<<
   16391             :  *     return memoryview_copy_from_slice(memview, &memviewslice)
   16392             :  * 
   16393             :  */
   16394           0 :   __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_memviewslice));
   16395             : 
   16396             :   /* "View.MemoryView":1084
   16397             :  *     cdef __Pyx_memviewslice memviewslice
   16398             :  *     slice_copy(memview, &memviewslice)
   16399             :  *     return memoryview_copy_from_slice(memview, &memviewslice)             # <<<<<<<<<<<<<<
   16400             :  * 
   16401             :  * @cname('__pyx_memoryview_copy_object_from_slice')
   16402             :  */
   16403           0 :   __Pyx_XDECREF(__pyx_r);
   16404           0 :   __pyx_t_1 = __pyx_memoryview_copy_object_from_slice(__pyx_v_memview, (&__pyx_v_memviewslice)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1084, __pyx_L1_error)
   16405           0 :   __Pyx_GOTREF(__pyx_t_1);
   16406           0 :   __pyx_r = __pyx_t_1;
   16407           0 :   __pyx_t_1 = 0;
   16408           0 :   goto __pyx_L0;
   16409             : 
   16410             :   /* "View.MemoryView":1080
   16411             :  * 
   16412             :  * @cname('__pyx_memoryview_copy_object')
   16413             :  * cdef memoryview_copy(memoryview memview):             # <<<<<<<<<<<<<<
   16414             :  *     "Create a new memoryview object"
   16415             :  *     cdef __Pyx_memviewslice memviewslice
   16416             :  */
   16417             : 
   16418             :   /* function exit code */
   16419           0 :   __pyx_L1_error:;
   16420           0 :   __Pyx_XDECREF(__pyx_t_1);
   16421           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview_copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
   16422           0 :   __pyx_r = 0;
   16423           0 :   __pyx_L0:;
   16424           0 :   __Pyx_XGIVEREF(__pyx_r);
   16425           0 :   __Pyx_RefNannyFinishContext();
   16426           0 :   return __pyx_r;
   16427             : }
   16428             : 
   16429             : /* "View.MemoryView":1087
   16430             :  * 
   16431             :  * @cname('__pyx_memoryview_copy_object_from_slice')
   16432             :  * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice):             # <<<<<<<<<<<<<<
   16433             :  *     """
   16434             :  *     Create a new memoryview object from a given memoryview object and slice.
   16435             :  */
   16436             : 
   16437           0 : static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_memviewslice) {
   16438           0 :   PyObject *(*__pyx_v_to_object_func)(char *);
   16439           0 :   int (*__pyx_v_to_dtype_func)(char *, PyObject *);
   16440           0 :   PyObject *__pyx_r = NULL;
   16441             :   __Pyx_RefNannyDeclarations
   16442           0 :   int __pyx_t_1;
   16443           0 :   PyObject *(*__pyx_t_2)(char *);
   16444           0 :   int (*__pyx_t_3)(char *, PyObject *);
   16445           0 :   PyObject *__pyx_t_4 = NULL;
   16446           0 :   int __pyx_lineno = 0;
   16447           0 :   const char *__pyx_filename = NULL;
   16448           0 :   int __pyx_clineno = 0;
   16449           0 :   __Pyx_RefNannySetupContext("memoryview_copy_from_slice", 1);
   16450             : 
   16451             :   /* "View.MemoryView":1094
   16452             :  *     cdef int (*to_dtype_func)(char *, object) except 0
   16453             :  * 
   16454             :  *     if isinstance(memview, _memoryviewslice):             # <<<<<<<<<<<<<<
   16455             :  *         to_object_func = (<_memoryviewslice> memview).to_object_func
   16456             :  *         to_dtype_func = (<_memoryviewslice> memview).to_dtype_func
   16457             :  */
   16458           0 :   __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); 
   16459           0 :   if (__pyx_t_1) {
   16460             : 
   16461             :     /* "View.MemoryView":1095
   16462             :  * 
   16463             :  *     if isinstance(memview, _memoryviewslice):
   16464             :  *         to_object_func = (<_memoryviewslice> memview).to_object_func             # <<<<<<<<<<<<<<
   16465             :  *         to_dtype_func = (<_memoryviewslice> memview).to_dtype_func
   16466             :  *     else:
   16467             :  */
   16468           0 :     __pyx_t_2 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_object_func;
   16469           0 :     __pyx_v_to_object_func = __pyx_t_2;
   16470             : 
   16471             :     /* "View.MemoryView":1096
   16472             :  *     if isinstance(memview, _memoryviewslice):
   16473             :  *         to_object_func = (<_memoryviewslice> memview).to_object_func
   16474             :  *         to_dtype_func = (<_memoryviewslice> memview).to_dtype_func             # <<<<<<<<<<<<<<
   16475             :  *     else:
   16476             :  *         to_object_func = NULL
   16477             :  */
   16478           0 :     __pyx_t_3 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_dtype_func;
   16479           0 :     __pyx_v_to_dtype_func = __pyx_t_3;
   16480             : 
   16481             :     /* "View.MemoryView":1094
   16482             :  *     cdef int (*to_dtype_func)(char *, object) except 0
   16483             :  * 
   16484             :  *     if isinstance(memview, _memoryviewslice):             # <<<<<<<<<<<<<<
   16485             :  *         to_object_func = (<_memoryviewslice> memview).to_object_func
   16486             :  *         to_dtype_func = (<_memoryviewslice> memview).to_dtype_func
   16487             :  */
   16488           0 :     goto __pyx_L3;
   16489             :   }
   16490             : 
   16491             :   /* "View.MemoryView":1098
   16492             :  *         to_dtype_func = (<_memoryviewslice> memview).to_dtype_func
   16493             :  *     else:
   16494             :  *         to_object_func = NULL             # <<<<<<<<<<<<<<
   16495             :  *         to_dtype_func = NULL
   16496             :  * 
   16497             :  */
   16498             :   /*else*/ {
   16499             :     __pyx_v_to_object_func = NULL;
   16500             : 
   16501             :     /* "View.MemoryView":1099
   16502             :  *     else:
   16503             :  *         to_object_func = NULL
   16504             :  *         to_dtype_func = NULL             # <<<<<<<<<<<<<<
   16505             :  * 
   16506             :  *     return memoryview_fromslice(memviewslice[0], memview.view.ndim,
   16507             :  */
   16508             :     __pyx_v_to_dtype_func = NULL;
   16509             :   }
   16510           0 :   __pyx_L3:;
   16511             : 
   16512             :   /* "View.MemoryView":1101
   16513             :  *         to_dtype_func = NULL
   16514             :  * 
   16515             :  *     return memoryview_fromslice(memviewslice[0], memview.view.ndim,             # <<<<<<<<<<<<<<
   16516             :  *                                 to_object_func, to_dtype_func,
   16517             :  *                                 memview.dtype_is_object)
   16518             :  */
   16519           0 :   __Pyx_XDECREF(__pyx_r);
   16520             : 
   16521             :   /* "View.MemoryView":1103
   16522             :  *     return memoryview_fromslice(memviewslice[0], memview.view.ndim,
   16523             :  *                                 to_object_func, to_dtype_func,
   16524             :  *                                 memview.dtype_is_object)             # <<<<<<<<<<<<<<
   16525             :  * 
   16526             :  * 
   16527             :  */
   16528           0 :   __pyx_t_4 = __pyx_memoryview_fromslice((__pyx_v_memviewslice[0]), __pyx_v_memview->view.ndim, __pyx_v_to_object_func, __pyx_v_to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1101, __pyx_L1_error)
   16529           0 :   __Pyx_GOTREF(__pyx_t_4);
   16530           0 :   __pyx_r = __pyx_t_4;
   16531           0 :   __pyx_t_4 = 0;
   16532           0 :   goto __pyx_L0;
   16533             : 
   16534             :   /* "View.MemoryView":1087
   16535             :  * 
   16536             :  * @cname('__pyx_memoryview_copy_object_from_slice')
   16537             :  * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice):             # <<<<<<<<<<<<<<
   16538             :  *     """
   16539             :  *     Create a new memoryview object from a given memoryview object and slice.
   16540             :  */
   16541             : 
   16542             :   /* function exit code */
   16543           0 :   __pyx_L1_error:;
   16544           0 :   __Pyx_XDECREF(__pyx_t_4);
   16545           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview_copy_from_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
   16546           0 :   __pyx_r = 0;
   16547           0 :   __pyx_L0:;
   16548           0 :   __Pyx_XGIVEREF(__pyx_r);
   16549           0 :   __Pyx_RefNannyFinishContext();
   16550           0 :   return __pyx_r;
   16551             : }
   16552             : 
   16553             : /* "View.MemoryView":1109
   16554             :  * 
   16555             :  * 
   16556             :  * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) noexcept nogil:             # <<<<<<<<<<<<<<
   16557             :  *     return -arg if arg < 0 else arg
   16558             :  * 
   16559             :  */
   16560             : 
   16561           0 : static Py_ssize_t abs_py_ssize_t(Py_ssize_t __pyx_v_arg) {
   16562           0 :   Py_ssize_t __pyx_r;
   16563           0 :   Py_ssize_t __pyx_t_1;
   16564           0 :   int __pyx_t_2;
   16565             : 
   16566             :   /* "View.MemoryView":1110
   16567             :  * 
   16568             :  * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) noexcept nogil:
   16569             :  *     return -arg if arg < 0 else arg             # <<<<<<<<<<<<<<
   16570             :  * 
   16571             :  * @cname('__pyx_get_best_slice_order')
   16572             :  */
   16573           0 :   __pyx_t_2 = (__pyx_v_arg < 0);
   16574           0 :   if (__pyx_t_2) {
   16575             :     __pyx_t_1 = (-__pyx_v_arg);
   16576             :   } else {
   16577             :     __pyx_t_1 = __pyx_v_arg;
   16578             :   }
   16579           0 :   __pyx_r = __pyx_t_1;
   16580           0 :   goto __pyx_L0;
   16581             : 
   16582             :   /* "View.MemoryView":1109
   16583             :  * 
   16584             :  * 
   16585             :  * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) noexcept nogil:             # <<<<<<<<<<<<<<
   16586             :  *     return -arg if arg < 0 else arg
   16587             :  * 
   16588             :  */
   16589             : 
   16590             :   /* function exit code */
   16591           0 :   __pyx_L0:;
   16592           0 :   return __pyx_r;
   16593             : }
   16594             : 
   16595             : /* "View.MemoryView":1113
   16596             :  * 
   16597             :  * @cname('__pyx_get_best_slice_order')
   16598             :  * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) noexcept nogil:             # <<<<<<<<<<<<<<
   16599             :  *     """
   16600             :  *     Figure out the best memory access order for a given slice.
   16601             :  */
   16602             : 
   16603           0 : static char __pyx_get_best_slice_order(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim) {
   16604           0 :   int __pyx_v_i;
   16605           0 :   Py_ssize_t __pyx_v_c_stride;
   16606           0 :   Py_ssize_t __pyx_v_f_stride;
   16607           0 :   char __pyx_r;
   16608           0 :   int __pyx_t_1;
   16609           0 :   int __pyx_t_2;
   16610           0 :   int __pyx_t_3;
   16611           0 :   int __pyx_t_4;
   16612             : 
   16613             :   /* "View.MemoryView":1118
   16614             :  *     """
   16615             :  *     cdef int i
   16616             :  *     cdef Py_ssize_t c_stride = 0             # <<<<<<<<<<<<<<
   16617             :  *     cdef Py_ssize_t f_stride = 0
   16618             :  * 
   16619             :  */
   16620           0 :   __pyx_v_c_stride = 0;
   16621             : 
   16622             :   /* "View.MemoryView":1119
   16623             :  *     cdef int i
   16624             :  *     cdef Py_ssize_t c_stride = 0
   16625             :  *     cdef Py_ssize_t f_stride = 0             # <<<<<<<<<<<<<<
   16626             :  * 
   16627             :  *     for i in range(ndim - 1, -1, -1):
   16628             :  */
   16629           0 :   __pyx_v_f_stride = 0;
   16630             : 
   16631             :   /* "View.MemoryView":1121
   16632             :  *     cdef Py_ssize_t f_stride = 0
   16633             :  * 
   16634             :  *     for i in range(ndim - 1, -1, -1):             # <<<<<<<<<<<<<<
   16635             :  *         if mslice.shape[i] > 1:
   16636             :  *             c_stride = mslice.strides[i]
   16637             :  */
   16638           0 :   for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) {
   16639           0 :     __pyx_v_i = __pyx_t_1;
   16640             : 
   16641             :     /* "View.MemoryView":1122
   16642             :  * 
   16643             :  *     for i in range(ndim - 1, -1, -1):
   16644             :  *         if mslice.shape[i] > 1:             # <<<<<<<<<<<<<<
   16645             :  *             c_stride = mslice.strides[i]
   16646             :  *             break
   16647             :  */
   16648           0 :     __pyx_t_2 = ((__pyx_v_mslice->shape[__pyx_v_i]) > 1);
   16649           0 :     if (__pyx_t_2) {
   16650             : 
   16651             :       /* "View.MemoryView":1123
   16652             :  *     for i in range(ndim - 1, -1, -1):
   16653             :  *         if mslice.shape[i] > 1:
   16654             :  *             c_stride = mslice.strides[i]             # <<<<<<<<<<<<<<
   16655             :  *             break
   16656             :  * 
   16657             :  */
   16658           0 :       __pyx_v_c_stride = (__pyx_v_mslice->strides[__pyx_v_i]);
   16659             : 
   16660             :       /* "View.MemoryView":1124
   16661             :  *         if mslice.shape[i] > 1:
   16662             :  *             c_stride = mslice.strides[i]
   16663             :  *             break             # <<<<<<<<<<<<<<
   16664             :  * 
   16665             :  *     for i in range(ndim):
   16666             :  */
   16667           0 :       goto __pyx_L4_break;
   16668             : 
   16669             :       /* "View.MemoryView":1122
   16670             :  * 
   16671             :  *     for i in range(ndim - 1, -1, -1):
   16672             :  *         if mslice.shape[i] > 1:             # <<<<<<<<<<<<<<
   16673             :  *             c_stride = mslice.strides[i]
   16674             :  *             break
   16675             :  */
   16676             :     }
   16677             :   }
   16678           0 :   __pyx_L4_break:;
   16679             : 
   16680             :   /* "View.MemoryView":1126
   16681             :  *             break
   16682             :  * 
   16683             :  *     for i in range(ndim):             # <<<<<<<<<<<<<<
   16684             :  *         if mslice.shape[i] > 1:
   16685             :  *             f_stride = mslice.strides[i]
   16686             :  */
   16687           0 :   __pyx_t_1 = __pyx_v_ndim;
   16688           0 :   __pyx_t_3 = __pyx_t_1;
   16689           0 :   for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
   16690           0 :     __pyx_v_i = __pyx_t_4;
   16691             : 
   16692             :     /* "View.MemoryView":1127
   16693             :  * 
   16694             :  *     for i in range(ndim):
   16695             :  *         if mslice.shape[i] > 1:             # <<<<<<<<<<<<<<
   16696             :  *             f_stride = mslice.strides[i]
   16697             :  *             break
   16698             :  */
   16699           0 :     __pyx_t_2 = ((__pyx_v_mslice->shape[__pyx_v_i]) > 1);
   16700           0 :     if (__pyx_t_2) {
   16701             : 
   16702             :       /* "View.MemoryView":1128
   16703             :  *     for i in range(ndim):
   16704             :  *         if mslice.shape[i] > 1:
   16705             :  *             f_stride = mslice.strides[i]             # <<<<<<<<<<<<<<
   16706             :  *             break
   16707             :  * 
   16708             :  */
   16709           0 :       __pyx_v_f_stride = (__pyx_v_mslice->strides[__pyx_v_i]);
   16710             : 
   16711             :       /* "View.MemoryView":1129
   16712             :  *         if mslice.shape[i] > 1:
   16713             :  *             f_stride = mslice.strides[i]
   16714             :  *             break             # <<<<<<<<<<<<<<
   16715             :  * 
   16716             :  *     if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride):
   16717             :  */
   16718           0 :       goto __pyx_L7_break;
   16719             : 
   16720             :       /* "View.MemoryView":1127
   16721             :  * 
   16722             :  *     for i in range(ndim):
   16723             :  *         if mslice.shape[i] > 1:             # <<<<<<<<<<<<<<
   16724             :  *             f_stride = mslice.strides[i]
   16725             :  *             break
   16726             :  */
   16727             :     }
   16728             :   }
   16729           0 :   __pyx_L7_break:;
   16730             : 
   16731             :   /* "View.MemoryView":1131
   16732             :  *             break
   16733             :  * 
   16734             :  *     if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride):             # <<<<<<<<<<<<<<
   16735             :  *         return 'C'
   16736             :  *     else:
   16737             :  */
   16738           0 :   __pyx_t_2 = (abs_py_ssize_t(__pyx_v_c_stride) <= abs_py_ssize_t(__pyx_v_f_stride));
   16739           0 :   if (__pyx_t_2) {
   16740             : 
   16741             :     /* "View.MemoryView":1132
   16742             :  * 
   16743             :  *     if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride):
   16744             :  *         return 'C'             # <<<<<<<<<<<<<<
   16745             :  *     else:
   16746             :  *         return 'F'
   16747             :  */
   16748           0 :     __pyx_r = 'C';
   16749           0 :     goto __pyx_L0;
   16750             : 
   16751             :     /* "View.MemoryView":1131
   16752             :  *             break
   16753             :  * 
   16754             :  *     if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride):             # <<<<<<<<<<<<<<
   16755             :  *         return 'C'
   16756             :  *     else:
   16757             :  */
   16758             :   }
   16759             : 
   16760             :   /* "View.MemoryView":1134
   16761             :  *         return 'C'
   16762             :  *     else:
   16763             :  *         return 'F'             # <<<<<<<<<<<<<<
   16764             :  * 
   16765             :  * @cython.cdivision(True)
   16766             :  */
   16767             :   /*else*/ {
   16768           0 :     __pyx_r = 'F';
   16769           0 :     goto __pyx_L0;
   16770             :   }
   16771             : 
   16772             :   /* "View.MemoryView":1113
   16773             :  * 
   16774             :  * @cname('__pyx_get_best_slice_order')
   16775             :  * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) noexcept nogil:             # <<<<<<<<<<<<<<
   16776             :  *     """
   16777             :  *     Figure out the best memory access order for a given slice.
   16778             :  */
   16779             : 
   16780             :   /* function exit code */
   16781           0 :   __pyx_L0:;
   16782           0 :   return __pyx_r;
   16783             : }
   16784             : 
   16785             : /* "View.MemoryView":1137
   16786             :  * 
   16787             :  * @cython.cdivision(True)
   16788             :  * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides,             # <<<<<<<<<<<<<<
   16789             :  *                                    char *dst_data, Py_ssize_t *dst_strides,
   16790             :  *                                    Py_ssize_t *src_shape, Py_ssize_t *dst_shape,
   16791             :  */
   16792             : 
   16793           0 : static void _copy_strided_to_strided(char *__pyx_v_src_data, Py_ssize_t *__pyx_v_src_strides, char *__pyx_v_dst_data, Py_ssize_t *__pyx_v_dst_strides, Py_ssize_t *__pyx_v_src_shape, Py_ssize_t *__pyx_v_dst_shape, int __pyx_v_ndim, size_t __pyx_v_itemsize) {
   16794           0 :   CYTHON_UNUSED Py_ssize_t __pyx_v_i;
   16795           0 :   CYTHON_UNUSED Py_ssize_t __pyx_v_src_extent;
   16796           0 :   Py_ssize_t __pyx_v_dst_extent;
   16797           0 :   Py_ssize_t __pyx_v_src_stride;
   16798           0 :   Py_ssize_t __pyx_v_dst_stride;
   16799           0 :   int __pyx_t_1;
   16800           0 :   int __pyx_t_2;
   16801           0 :   Py_ssize_t __pyx_t_3;
   16802           0 :   Py_ssize_t __pyx_t_4;
   16803           0 :   Py_ssize_t __pyx_t_5;
   16804             : 
   16805             :   /* "View.MemoryView":1144
   16806             :  * 
   16807             :  *     cdef Py_ssize_t i
   16808             :  *     cdef Py_ssize_t src_extent = src_shape[0]             # <<<<<<<<<<<<<<
   16809             :  *     cdef Py_ssize_t dst_extent = dst_shape[0]
   16810             :  *     cdef Py_ssize_t src_stride = src_strides[0]
   16811             :  */
   16812           0 :   __pyx_v_src_extent = (__pyx_v_src_shape[0]);
   16813             : 
   16814             :   /* "View.MemoryView":1145
   16815             :  *     cdef Py_ssize_t i
   16816             :  *     cdef Py_ssize_t src_extent = src_shape[0]
   16817             :  *     cdef Py_ssize_t dst_extent = dst_shape[0]             # <<<<<<<<<<<<<<
   16818             :  *     cdef Py_ssize_t src_stride = src_strides[0]
   16819             :  *     cdef Py_ssize_t dst_stride = dst_strides[0]
   16820             :  */
   16821           0 :   __pyx_v_dst_extent = (__pyx_v_dst_shape[0]);
   16822             : 
   16823             :   /* "View.MemoryView":1146
   16824             :  *     cdef Py_ssize_t src_extent = src_shape[0]
   16825             :  *     cdef Py_ssize_t dst_extent = dst_shape[0]
   16826             :  *     cdef Py_ssize_t src_stride = src_strides[0]             # <<<<<<<<<<<<<<
   16827             :  *     cdef Py_ssize_t dst_stride = dst_strides[0]
   16828             :  * 
   16829             :  */
   16830           0 :   __pyx_v_src_stride = (__pyx_v_src_strides[0]);
   16831             : 
   16832             :   /* "View.MemoryView":1147
   16833             :  *     cdef Py_ssize_t dst_extent = dst_shape[0]
   16834             :  *     cdef Py_ssize_t src_stride = src_strides[0]
   16835             :  *     cdef Py_ssize_t dst_stride = dst_strides[0]             # <<<<<<<<<<<<<<
   16836             :  * 
   16837             :  *     if ndim == 1:
   16838             :  */
   16839           0 :   __pyx_v_dst_stride = (__pyx_v_dst_strides[0]);
   16840             : 
   16841             :   /* "View.MemoryView":1149
   16842             :  *     cdef Py_ssize_t dst_stride = dst_strides[0]
   16843             :  * 
   16844             :  *     if ndim == 1:             # <<<<<<<<<<<<<<
   16845             :  *         if (src_stride > 0 and dst_stride > 0 and
   16846             :  *             <size_t> src_stride == itemsize == <size_t> dst_stride):
   16847             :  */
   16848           0 :   __pyx_t_1 = (__pyx_v_ndim == 1);
   16849           0 :   if (__pyx_t_1) {
   16850             : 
   16851             :     /* "View.MemoryView":1150
   16852             :  * 
   16853             :  *     if ndim == 1:
   16854             :  *         if (src_stride > 0 and dst_stride > 0 and             # <<<<<<<<<<<<<<
   16855             :  *             <size_t> src_stride == itemsize == <size_t> dst_stride):
   16856             :  *             memcpy(dst_data, src_data, itemsize * dst_extent)
   16857             :  */
   16858           0 :     __pyx_t_2 = (__pyx_v_src_stride > 0);
   16859           0 :     if (__pyx_t_2) {
   16860           0 :     } else {
   16861           0 :       __pyx_t_1 = __pyx_t_2;
   16862           0 :       goto __pyx_L5_bool_binop_done;
   16863             :     }
   16864           0 :     __pyx_t_2 = (__pyx_v_dst_stride > 0);
   16865           0 :     if (__pyx_t_2) {
   16866           0 :     } else {
   16867           0 :       __pyx_t_1 = __pyx_t_2;
   16868           0 :       goto __pyx_L5_bool_binop_done;
   16869             :     }
   16870             : 
   16871             :     /* "View.MemoryView":1151
   16872             :  *     if ndim == 1:
   16873             :  *         if (src_stride > 0 and dst_stride > 0 and
   16874             :  *             <size_t> src_stride == itemsize == <size_t> dst_stride):             # <<<<<<<<<<<<<<
   16875             :  *             memcpy(dst_data, src_data, itemsize * dst_extent)
   16876             :  *         else:
   16877             :  */
   16878           0 :     __pyx_t_2 = (((size_t)__pyx_v_src_stride) == __pyx_v_itemsize);
   16879           0 :     if (__pyx_t_2) {
   16880           0 :       __pyx_t_2 = (__pyx_v_itemsize == ((size_t)__pyx_v_dst_stride));
   16881             :     }
   16882             :     __pyx_t_1 = __pyx_t_2;
   16883           0 :     __pyx_L5_bool_binop_done:;
   16884             : 
   16885             :     /* "View.MemoryView":1150
   16886             :  * 
   16887             :  *     if ndim == 1:
   16888             :  *         if (src_stride > 0 and dst_stride > 0 and             # <<<<<<<<<<<<<<
   16889             :  *             <size_t> src_stride == itemsize == <size_t> dst_stride):
   16890             :  *             memcpy(dst_data, src_data, itemsize * dst_extent)
   16891             :  */
   16892           0 :     if (__pyx_t_1) {
   16893             : 
   16894             :       /* "View.MemoryView":1152
   16895             :  *         if (src_stride > 0 and dst_stride > 0 and
   16896             :  *             <size_t> src_stride == itemsize == <size_t> dst_stride):
   16897             :  *             memcpy(dst_data, src_data, itemsize * dst_extent)             # <<<<<<<<<<<<<<
   16898             :  *         else:
   16899             :  *             for i in range(dst_extent):
   16900             :  */
   16901           0 :       (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, (__pyx_v_itemsize * __pyx_v_dst_extent)));
   16902             : 
   16903             :       /* "View.MemoryView":1150
   16904             :  * 
   16905             :  *     if ndim == 1:
   16906             :  *         if (src_stride > 0 and dst_stride > 0 and             # <<<<<<<<<<<<<<
   16907             :  *             <size_t> src_stride == itemsize == <size_t> dst_stride):
   16908             :  *             memcpy(dst_data, src_data, itemsize * dst_extent)
   16909             :  */
   16910           0 :       goto __pyx_L4;
   16911             :     }
   16912             : 
   16913             :     /* "View.MemoryView":1154
   16914             :  *             memcpy(dst_data, src_data, itemsize * dst_extent)
   16915             :  *         else:
   16916             :  *             for i in range(dst_extent):             # <<<<<<<<<<<<<<
   16917             :  *                 memcpy(dst_data, src_data, itemsize)
   16918             :  *                 src_data += src_stride
   16919             :  */
   16920             :     /*else*/ {
   16921             :       __pyx_t_3 = __pyx_v_dst_extent;
   16922             :       __pyx_t_4 = __pyx_t_3;
   16923           0 :       for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
   16924           0 :         __pyx_v_i = __pyx_t_5;
   16925             : 
   16926             :         /* "View.MemoryView":1155
   16927             :  *         else:
   16928             :  *             for i in range(dst_extent):
   16929             :  *                 memcpy(dst_data, src_data, itemsize)             # <<<<<<<<<<<<<<
   16930             :  *                 src_data += src_stride
   16931             :  *                 dst_data += dst_stride
   16932             :  */
   16933           0 :         (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, __pyx_v_itemsize));
   16934             : 
   16935             :         /* "View.MemoryView":1156
   16936             :  *             for i in range(dst_extent):
   16937             :  *                 memcpy(dst_data, src_data, itemsize)
   16938             :  *                 src_data += src_stride             # <<<<<<<<<<<<<<
   16939             :  *                 dst_data += dst_stride
   16940             :  *     else:
   16941             :  */
   16942           0 :         __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride);
   16943             : 
   16944             :         /* "View.MemoryView":1157
   16945             :  *                 memcpy(dst_data, src_data, itemsize)
   16946             :  *                 src_data += src_stride
   16947             :  *                 dst_data += dst_stride             # <<<<<<<<<<<<<<
   16948             :  *     else:
   16949             :  *         for i in range(dst_extent):
   16950             :  */
   16951           0 :         __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride);
   16952             :       }
   16953             :     }
   16954           0 :     __pyx_L4:;
   16955             : 
   16956             :     /* "View.MemoryView":1149
   16957             :  *     cdef Py_ssize_t dst_stride = dst_strides[0]
   16958             :  * 
   16959             :  *     if ndim == 1:             # <<<<<<<<<<<<<<
   16960             :  *         if (src_stride > 0 and dst_stride > 0 and
   16961             :  *             <size_t> src_stride == itemsize == <size_t> dst_stride):
   16962             :  */
   16963           0 :     goto __pyx_L3;
   16964             :   }
   16965             : 
   16966             :   /* "View.MemoryView":1159
   16967             :  *                 dst_data += dst_stride
   16968             :  *     else:
   16969             :  *         for i in range(dst_extent):             # <<<<<<<<<<<<<<
   16970             :  *             _copy_strided_to_strided(src_data, src_strides + 1,
   16971             :  *                                      dst_data, dst_strides + 1,
   16972             :  */
   16973             :   /*else*/ {
   16974             :     __pyx_t_3 = __pyx_v_dst_extent;
   16975             :     __pyx_t_4 = __pyx_t_3;
   16976           0 :     for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
   16977           0 :       __pyx_v_i = __pyx_t_5;
   16978             : 
   16979             :       /* "View.MemoryView":1160
   16980             :  *     else:
   16981             :  *         for i in range(dst_extent):
   16982             :  *             _copy_strided_to_strided(src_data, src_strides + 1,             # <<<<<<<<<<<<<<
   16983             :  *                                      dst_data, dst_strides + 1,
   16984             :  *                                      src_shape + 1, dst_shape + 1,
   16985             :  */
   16986           0 :       _copy_strided_to_strided(__pyx_v_src_data, (__pyx_v_src_strides + 1), __pyx_v_dst_data, (__pyx_v_dst_strides + 1), (__pyx_v_src_shape + 1), (__pyx_v_dst_shape + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize);
   16987             : 
   16988             :       /* "View.MemoryView":1164
   16989             :  *                                      src_shape + 1, dst_shape + 1,
   16990             :  *                                      ndim - 1, itemsize)
   16991             :  *             src_data += src_stride             # <<<<<<<<<<<<<<
   16992             :  *             dst_data += dst_stride
   16993             :  * 
   16994             :  */
   16995           0 :       __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride);
   16996             : 
   16997             :       /* "View.MemoryView":1165
   16998             :  *                                      ndim - 1, itemsize)
   16999             :  *             src_data += src_stride
   17000             :  *             dst_data += dst_stride             # <<<<<<<<<<<<<<
   17001             :  * 
   17002             :  * cdef void copy_strided_to_strided(__Pyx_memviewslice *src,
   17003             :  */
   17004           0 :       __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride);
   17005             :     }
   17006             :   }
   17007           0 :   __pyx_L3:;
   17008             : 
   17009             :   /* "View.MemoryView":1137
   17010             :  * 
   17011             :  * @cython.cdivision(True)
   17012             :  * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides,             # <<<<<<<<<<<<<<
   17013             :  *                                    char *dst_data, Py_ssize_t *dst_strides,
   17014             :  *                                    Py_ssize_t *src_shape, Py_ssize_t *dst_shape,
   17015             :  */
   17016             : 
   17017             :   /* function exit code */
   17018           0 : }
   17019             : 
   17020             : /* "View.MemoryView":1167
   17021             :  *             dst_data += dst_stride
   17022             :  * 
   17023             :  * cdef void copy_strided_to_strided(__Pyx_memviewslice *src,             # <<<<<<<<<<<<<<
   17024             :  *                                   __Pyx_memviewslice *dst,
   17025             :  *                                   int ndim, size_t itemsize) noexcept nogil:
   17026             :  */
   17027             : 
   17028           0 : static void copy_strided_to_strided(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize) {
   17029             : 
   17030             :   /* "View.MemoryView":1170
   17031             :  *                                   __Pyx_memviewslice *dst,
   17032             :  *                                   int ndim, size_t itemsize) noexcept nogil:
   17033             :  *     _copy_strided_to_strided(src.data, src.strides, dst.data, dst.strides,             # <<<<<<<<<<<<<<
   17034             :  *                              src.shape, dst.shape, ndim, itemsize)
   17035             :  * 
   17036             :  */
   17037           0 :   _copy_strided_to_strided(__pyx_v_src->data, __pyx_v_src->strides, __pyx_v_dst->data, __pyx_v_dst->strides, __pyx_v_src->shape, __pyx_v_dst->shape, __pyx_v_ndim, __pyx_v_itemsize);
   17038             : 
   17039             :   /* "View.MemoryView":1167
   17040             :  *             dst_data += dst_stride
   17041             :  * 
   17042             :  * cdef void copy_strided_to_strided(__Pyx_memviewslice *src,             # <<<<<<<<<<<<<<
   17043             :  *                                   __Pyx_memviewslice *dst,
   17044             :  *                                   int ndim, size_t itemsize) noexcept nogil:
   17045             :  */
   17046             : 
   17047             :   /* function exit code */
   17048           0 : }
   17049             : 
   17050             : /* "View.MemoryView":1174
   17051             :  * 
   17052             :  * @cname('__pyx_memoryview_slice_get_size')
   17053             :  * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) noexcept nogil:             # <<<<<<<<<<<<<<
   17054             :  *     "Return the size of the memory occupied by the slice in number of bytes"
   17055             :  *     cdef Py_ssize_t shape, size = src.memview.view.itemsize
   17056             :  */
   17057             : 
   17058           0 : static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *__pyx_v_src, int __pyx_v_ndim) {
   17059           0 :   Py_ssize_t __pyx_v_shape;
   17060           0 :   Py_ssize_t __pyx_v_size;
   17061           0 :   Py_ssize_t __pyx_r;
   17062           0 :   Py_ssize_t __pyx_t_1;
   17063           0 :   Py_ssize_t *__pyx_t_2;
   17064           0 :   Py_ssize_t *__pyx_t_3;
   17065           0 :   Py_ssize_t *__pyx_t_4;
   17066             : 
   17067             :   /* "View.MemoryView":1176
   17068             :  * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) noexcept nogil:
   17069             :  *     "Return the size of the memory occupied by the slice in number of bytes"
   17070             :  *     cdef Py_ssize_t shape, size = src.memview.view.itemsize             # <<<<<<<<<<<<<<
   17071             :  * 
   17072             :  *     for shape in src.shape[:ndim]:
   17073             :  */
   17074           0 :   __pyx_t_1 = __pyx_v_src->memview->view.itemsize;
   17075           0 :   __pyx_v_size = __pyx_t_1;
   17076             : 
   17077             :   /* "View.MemoryView":1178
   17078             :  *     cdef Py_ssize_t shape, size = src.memview.view.itemsize
   17079             :  * 
   17080             :  *     for shape in src.shape[:ndim]:             # <<<<<<<<<<<<<<
   17081             :  *         size *= shape
   17082             :  * 
   17083             :  */
   17084           0 :   __pyx_t_3 = (__pyx_v_src->shape + __pyx_v_ndim);
   17085           0 :   for (__pyx_t_4 = __pyx_v_src->shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) {
   17086           0 :     __pyx_t_2 = __pyx_t_4;
   17087           0 :     __pyx_v_shape = (__pyx_t_2[0]);
   17088             : 
   17089             :     /* "View.MemoryView":1179
   17090             :  * 
   17091             :  *     for shape in src.shape[:ndim]:
   17092             :  *         size *= shape             # <<<<<<<<<<<<<<
   17093             :  * 
   17094             :  *     return size
   17095             :  */
   17096           0 :     __pyx_v_size = (__pyx_v_size * __pyx_v_shape);
   17097             :   }
   17098             : 
   17099             :   /* "View.MemoryView":1181
   17100             :  *         size *= shape
   17101             :  * 
   17102             :  *     return size             # <<<<<<<<<<<<<<
   17103             :  * 
   17104             :  * @cname('__pyx_fill_contig_strides_array')
   17105             :  */
   17106           0 :   __pyx_r = __pyx_v_size;
   17107           0 :   goto __pyx_L0;
   17108             : 
   17109             :   /* "View.MemoryView":1174
   17110             :  * 
   17111             :  * @cname('__pyx_memoryview_slice_get_size')
   17112             :  * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) noexcept nogil:             # <<<<<<<<<<<<<<
   17113             :  *     "Return the size of the memory occupied by the slice in number of bytes"
   17114             :  *     cdef Py_ssize_t shape, size = src.memview.view.itemsize
   17115             :  */
   17116             : 
   17117             :   /* function exit code */
   17118           0 :   __pyx_L0:;
   17119           0 :   return __pyx_r;
   17120             : }
   17121             : 
   17122             : /* "View.MemoryView":1184
   17123             :  * 
   17124             :  * @cname('__pyx_fill_contig_strides_array')
   17125             :  * cdef Py_ssize_t fill_contig_strides_array(             # <<<<<<<<<<<<<<
   17126             :  *                 Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride,
   17127             :  *                 int ndim, char order) noexcept nogil:
   17128             :  */
   17129             : 
   17130           0 : static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, Py_ssize_t __pyx_v_stride, int __pyx_v_ndim, char __pyx_v_order) {
   17131           0 :   int __pyx_v_idx;
   17132           0 :   Py_ssize_t __pyx_r;
   17133           0 :   int __pyx_t_1;
   17134           0 :   int __pyx_t_2;
   17135           0 :   int __pyx_t_3;
   17136           0 :   int __pyx_t_4;
   17137             : 
   17138             :   /* "View.MemoryView":1193
   17139             :  *     cdef int idx
   17140             :  * 
   17141             :  *     if order == 'F':             # <<<<<<<<<<<<<<
   17142             :  *         for idx in range(ndim):
   17143             :  *             strides[idx] = stride
   17144             :  */
   17145           0 :   __pyx_t_1 = (__pyx_v_order == 'F');
   17146           0 :   if (__pyx_t_1) {
   17147             : 
   17148             :     /* "View.MemoryView":1194
   17149             :  * 
   17150             :  *     if order == 'F':
   17151             :  *         for idx in range(ndim):             # <<<<<<<<<<<<<<
   17152             :  *             strides[idx] = stride
   17153             :  *             stride *= shape[idx]
   17154             :  */
   17155           0 :     __pyx_t_2 = __pyx_v_ndim;
   17156             :     __pyx_t_3 = __pyx_t_2;
   17157           0 :     for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
   17158           0 :       __pyx_v_idx = __pyx_t_4;
   17159             : 
   17160             :       /* "View.MemoryView":1195
   17161             :  *     if order == 'F':
   17162             :  *         for idx in range(ndim):
   17163             :  *             strides[idx] = stride             # <<<<<<<<<<<<<<
   17164             :  *             stride *= shape[idx]
   17165             :  *     else:
   17166             :  */
   17167           0 :       (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride;
   17168             : 
   17169             :       /* "View.MemoryView":1196
   17170             :  *         for idx in range(ndim):
   17171             :  *             strides[idx] = stride
   17172             :  *             stride *= shape[idx]             # <<<<<<<<<<<<<<
   17173             :  *     else:
   17174             :  *         for idx in range(ndim - 1, -1, -1):
   17175             :  */
   17176           0 :       __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx]));
   17177             :     }
   17178             : 
   17179             :     /* "View.MemoryView":1193
   17180             :  *     cdef int idx
   17181             :  * 
   17182             :  *     if order == 'F':             # <<<<<<<<<<<<<<
   17183             :  *         for idx in range(ndim):
   17184             :  *             strides[idx] = stride
   17185             :  */
   17186           0 :     goto __pyx_L3;
   17187             :   }
   17188             : 
   17189             :   /* "View.MemoryView":1198
   17190             :  *             stride *= shape[idx]
   17191             :  *     else:
   17192             :  *         for idx in range(ndim - 1, -1, -1):             # <<<<<<<<<<<<<<
   17193             :  *             strides[idx] = stride
   17194             :  *             stride *= shape[idx]
   17195             :  */
   17196             :   /*else*/ {
   17197           0 :     for (__pyx_t_2 = (__pyx_v_ndim - 1); __pyx_t_2 > -1; __pyx_t_2-=1) {
   17198           0 :       __pyx_v_idx = __pyx_t_2;
   17199             : 
   17200             :       /* "View.MemoryView":1199
   17201             :  *     else:
   17202             :  *         for idx in range(ndim - 1, -1, -1):
   17203             :  *             strides[idx] = stride             # <<<<<<<<<<<<<<
   17204             :  *             stride *= shape[idx]
   17205             :  * 
   17206             :  */
   17207           0 :       (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride;
   17208             : 
   17209             :       /* "View.MemoryView":1200
   17210             :  *         for idx in range(ndim - 1, -1, -1):
   17211             :  *             strides[idx] = stride
   17212             :  *             stride *= shape[idx]             # <<<<<<<<<<<<<<
   17213             :  * 
   17214             :  *     return stride
   17215             :  */
   17216           0 :       __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx]));
   17217             :     }
   17218             :   }
   17219           0 :   __pyx_L3:;
   17220             : 
   17221             :   /* "View.MemoryView":1202
   17222             :  *             stride *= shape[idx]
   17223             :  * 
   17224             :  *     return stride             # <<<<<<<<<<<<<<
   17225             :  * 
   17226             :  * @cname('__pyx_memoryview_copy_data_to_temp')
   17227             :  */
   17228           0 :   __pyx_r = __pyx_v_stride;
   17229           0 :   goto __pyx_L0;
   17230             : 
   17231             :   /* "View.MemoryView":1184
   17232             :  * 
   17233             :  * @cname('__pyx_fill_contig_strides_array')
   17234             :  * cdef Py_ssize_t fill_contig_strides_array(             # <<<<<<<<<<<<<<
   17235             :  *                 Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride,
   17236             :  *                 int ndim, char order) noexcept nogil:
   17237             :  */
   17238             : 
   17239             :   /* function exit code */
   17240           0 :   __pyx_L0:;
   17241           0 :   return __pyx_r;
   17242             : }
   17243             : 
   17244             : /* "View.MemoryView":1205
   17245             :  * 
   17246             :  * @cname('__pyx_memoryview_copy_data_to_temp')
   17247             :  * cdef void *copy_data_to_temp(__Pyx_memviewslice *src,             # <<<<<<<<<<<<<<
   17248             :  *                              __Pyx_memviewslice *tmpslice,
   17249             :  *                              char order,
   17250             :  */
   17251             : 
   17252           0 : static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_tmpslice, char __pyx_v_order, int __pyx_v_ndim) {
   17253           0 :   int __pyx_v_i;
   17254           0 :   void *__pyx_v_result;
   17255           0 :   size_t __pyx_v_itemsize;
   17256           0 :   size_t __pyx_v_size;
   17257           0 :   void *__pyx_r;
   17258           0 :   Py_ssize_t __pyx_t_1;
   17259           0 :   int __pyx_t_2;
   17260           0 :   int __pyx_t_3;
   17261           0 :   struct __pyx_memoryview_obj *__pyx_t_4;
   17262           0 :   int __pyx_t_5;
   17263           0 :   int __pyx_t_6;
   17264           0 :   int __pyx_lineno = 0;
   17265           0 :   const char *__pyx_filename = NULL;
   17266           0 :   int __pyx_clineno = 0;
   17267             :   #ifdef WITH_THREAD
   17268           0 :   PyGILState_STATE __pyx_gilstate_save;
   17269             :   #endif
   17270             : 
   17271             :   /* "View.MemoryView":1216
   17272             :  *     cdef void *result
   17273             :  * 
   17274             :  *     cdef size_t itemsize = src.memview.view.itemsize             # <<<<<<<<<<<<<<
   17275             :  *     cdef size_t size = slice_get_size(src, ndim)
   17276             :  * 
   17277             :  */
   17278           0 :   __pyx_t_1 = __pyx_v_src->memview->view.itemsize;
   17279           0 :   __pyx_v_itemsize = __pyx_t_1;
   17280             : 
   17281             :   /* "View.MemoryView":1217
   17282             :  * 
   17283             :  *     cdef size_t itemsize = src.memview.view.itemsize
   17284             :  *     cdef size_t size = slice_get_size(src, ndim)             # <<<<<<<<<<<<<<
   17285             :  * 
   17286             :  *     result = malloc(size)
   17287             :  */
   17288           0 :   __pyx_v_size = __pyx_memoryview_slice_get_size(__pyx_v_src, __pyx_v_ndim);
   17289             : 
   17290             :   /* "View.MemoryView":1219
   17291             :  *     cdef size_t size = slice_get_size(src, ndim)
   17292             :  * 
   17293             :  *     result = malloc(size)             # <<<<<<<<<<<<<<
   17294             :  *     if not result:
   17295             :  *         _err_no_memory()
   17296             :  */
   17297           0 :   __pyx_v_result = malloc(__pyx_v_size);
   17298             : 
   17299             :   /* "View.MemoryView":1220
   17300             :  * 
   17301             :  *     result = malloc(size)
   17302             :  *     if not result:             # <<<<<<<<<<<<<<
   17303             :  *         _err_no_memory()
   17304             :  * 
   17305             :  */
   17306           0 :   __pyx_t_2 = (!(__pyx_v_result != 0));
   17307           0 :   if (__pyx_t_2) {
   17308             : 
   17309             :     /* "View.MemoryView":1221
   17310             :  *     result = malloc(size)
   17311             :  *     if not result:
   17312             :  *         _err_no_memory()             # <<<<<<<<<<<<<<
   17313             :  * 
   17314             :  * 
   17315             :  */
   17316           0 :     __pyx_t_3 = __pyx_memoryview_err_no_memory(); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 1221, __pyx_L1_error)
   17317             : 
   17318             :     /* "View.MemoryView":1220
   17319             :  * 
   17320             :  *     result = malloc(size)
   17321             :  *     if not result:             # <<<<<<<<<<<<<<
   17322             :  *         _err_no_memory()
   17323             :  * 
   17324             :  */
   17325             :   }
   17326             : 
   17327             :   /* "View.MemoryView":1224
   17328             :  * 
   17329             :  * 
   17330             :  *     tmpslice.data = <char *> result             # <<<<<<<<<<<<<<
   17331             :  *     tmpslice.memview = src.memview
   17332             :  *     for i in range(ndim):
   17333             :  */
   17334           0 :   __pyx_v_tmpslice->data = ((char *)__pyx_v_result);
   17335             : 
   17336             :   /* "View.MemoryView":1225
   17337             :  * 
   17338             :  *     tmpslice.data = <char *> result
   17339             :  *     tmpslice.memview = src.memview             # <<<<<<<<<<<<<<
   17340             :  *     for i in range(ndim):
   17341             :  *         tmpslice.shape[i] = src.shape[i]
   17342             :  */
   17343           0 :   __pyx_t_4 = __pyx_v_src->memview;
   17344           0 :   __pyx_v_tmpslice->memview = __pyx_t_4;
   17345             : 
   17346             :   /* "View.MemoryView":1226
   17347             :  *     tmpslice.data = <char *> result
   17348             :  *     tmpslice.memview = src.memview
   17349             :  *     for i in range(ndim):             # <<<<<<<<<<<<<<
   17350             :  *         tmpslice.shape[i] = src.shape[i]
   17351             :  *         tmpslice.suboffsets[i] = -1
   17352             :  */
   17353           0 :   __pyx_t_3 = __pyx_v_ndim;
   17354           0 :   __pyx_t_5 = __pyx_t_3;
   17355           0 :   for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   17356           0 :     __pyx_v_i = __pyx_t_6;
   17357             : 
   17358             :     /* "View.MemoryView":1227
   17359             :  *     tmpslice.memview = src.memview
   17360             :  *     for i in range(ndim):
   17361             :  *         tmpslice.shape[i] = src.shape[i]             # <<<<<<<<<<<<<<
   17362             :  *         tmpslice.suboffsets[i] = -1
   17363             :  * 
   17364             :  */
   17365           0 :     (__pyx_v_tmpslice->shape[__pyx_v_i]) = (__pyx_v_src->shape[__pyx_v_i]);
   17366             : 
   17367             :     /* "View.MemoryView":1228
   17368             :  *     for i in range(ndim):
   17369             :  *         tmpslice.shape[i] = src.shape[i]
   17370             :  *         tmpslice.suboffsets[i] = -1             # <<<<<<<<<<<<<<
   17371             :  * 
   17372             :  *     fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, ndim, order)
   17373             :  */
   17374           0 :     (__pyx_v_tmpslice->suboffsets[__pyx_v_i]) = -1L;
   17375             :   }
   17376             : 
   17377             :   /* "View.MemoryView":1230
   17378             :  *         tmpslice.suboffsets[i] = -1
   17379             :  * 
   17380             :  *     fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, ndim, order)             # <<<<<<<<<<<<<<
   17381             :  * 
   17382             :  * 
   17383             :  */
   17384           0 :   (void)(__pyx_fill_contig_strides_array((&(__pyx_v_tmpslice->shape[0])), (&(__pyx_v_tmpslice->strides[0])), __pyx_v_itemsize, __pyx_v_ndim, __pyx_v_order));
   17385             : 
   17386             :   /* "View.MemoryView":1233
   17387             :  * 
   17388             :  * 
   17389             :  *     for i in range(ndim):             # <<<<<<<<<<<<<<
   17390             :  *         if tmpslice.shape[i] == 1:
   17391             :  *             tmpslice.strides[i] = 0
   17392             :  */
   17393           0 :   __pyx_t_3 = __pyx_v_ndim;
   17394           0 :   __pyx_t_5 = __pyx_t_3;
   17395           0 :   for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   17396           0 :     __pyx_v_i = __pyx_t_6;
   17397             : 
   17398             :     /* "View.MemoryView":1234
   17399             :  * 
   17400             :  *     for i in range(ndim):
   17401             :  *         if tmpslice.shape[i] == 1:             # <<<<<<<<<<<<<<
   17402             :  *             tmpslice.strides[i] = 0
   17403             :  * 
   17404             :  */
   17405           0 :     __pyx_t_2 = ((__pyx_v_tmpslice->shape[__pyx_v_i]) == 1);
   17406           0 :     if (__pyx_t_2) {
   17407             : 
   17408             :       /* "View.MemoryView":1235
   17409             :  *     for i in range(ndim):
   17410             :  *         if tmpslice.shape[i] == 1:
   17411             :  *             tmpslice.strides[i] = 0             # <<<<<<<<<<<<<<
   17412             :  * 
   17413             :  *     if slice_is_contig(src[0], order, ndim):
   17414             :  */
   17415           0 :       (__pyx_v_tmpslice->strides[__pyx_v_i]) = 0;
   17416             : 
   17417             :       /* "View.MemoryView":1234
   17418             :  * 
   17419             :  *     for i in range(ndim):
   17420             :  *         if tmpslice.shape[i] == 1:             # <<<<<<<<<<<<<<
   17421             :  *             tmpslice.strides[i] = 0
   17422             :  * 
   17423             :  */
   17424             :     }
   17425             :   }
   17426             : 
   17427             :   /* "View.MemoryView":1237
   17428             :  *             tmpslice.strides[i] = 0
   17429             :  * 
   17430             :  *     if slice_is_contig(src[0], order, ndim):             # <<<<<<<<<<<<<<
   17431             :  *         memcpy(result, src.data, size)
   17432             :  *     else:
   17433             :  */
   17434           0 :   __pyx_t_2 = __pyx_memviewslice_is_contig((__pyx_v_src[0]), __pyx_v_order, __pyx_v_ndim);
   17435           0 :   if (__pyx_t_2) {
   17436             : 
   17437             :     /* "View.MemoryView":1238
   17438             :  * 
   17439             :  *     if slice_is_contig(src[0], order, ndim):
   17440             :  *         memcpy(result, src.data, size)             # <<<<<<<<<<<<<<
   17441             :  *     else:
   17442             :  *         copy_strided_to_strided(src, tmpslice, ndim, itemsize)
   17443             :  */
   17444           0 :     (void)(memcpy(__pyx_v_result, __pyx_v_src->data, __pyx_v_size));
   17445             : 
   17446             :     /* "View.MemoryView":1237
   17447             :  *             tmpslice.strides[i] = 0
   17448             :  * 
   17449             :  *     if slice_is_contig(src[0], order, ndim):             # <<<<<<<<<<<<<<
   17450             :  *         memcpy(result, src.data, size)
   17451             :  *     else:
   17452             :  */
   17453           0 :     goto __pyx_L9;
   17454             :   }
   17455             : 
   17456             :   /* "View.MemoryView":1240
   17457             :  *         memcpy(result, src.data, size)
   17458             :  *     else:
   17459             :  *         copy_strided_to_strided(src, tmpslice, ndim, itemsize)             # <<<<<<<<<<<<<<
   17460             :  * 
   17461             :  *     return result
   17462             :  */
   17463             :   /*else*/ {
   17464           0 :     copy_strided_to_strided(__pyx_v_src, __pyx_v_tmpslice, __pyx_v_ndim, __pyx_v_itemsize);
   17465             :   }
   17466           0 :   __pyx_L9:;
   17467             : 
   17468             :   /* "View.MemoryView":1242
   17469             :  *         copy_strided_to_strided(src, tmpslice, ndim, itemsize)
   17470             :  * 
   17471             :  *     return result             # <<<<<<<<<<<<<<
   17472             :  * 
   17473             :  * 
   17474             :  */
   17475           0 :   __pyx_r = __pyx_v_result;
   17476           0 :   goto __pyx_L0;
   17477             : 
   17478             :   /* "View.MemoryView":1205
   17479             :  * 
   17480             :  * @cname('__pyx_memoryview_copy_data_to_temp')
   17481             :  * cdef void *copy_data_to_temp(__Pyx_memviewslice *src,             # <<<<<<<<<<<<<<
   17482             :  *                              __Pyx_memviewslice *tmpslice,
   17483             :  *                              char order,
   17484             :  */
   17485             : 
   17486             :   /* function exit code */
   17487           0 :   __pyx_L1_error:;
   17488             :   #ifdef WITH_THREAD
   17489           0 :   __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
   17490             :   #endif
   17491           0 :   __Pyx_AddTraceback("View.MemoryView.copy_data_to_temp", __pyx_clineno, __pyx_lineno, __pyx_filename);
   17492           0 :   __pyx_r = NULL;
   17493             :   #ifdef WITH_THREAD
   17494           0 :   __Pyx_PyGILState_Release(__pyx_gilstate_save);
   17495             :   #endif
   17496           0 :   __pyx_L0:;
   17497           0 :   return __pyx_r;
   17498             : }
   17499             : 
   17500             : /* "View.MemoryView":1247
   17501             :  * 
   17502             :  * @cname('__pyx_memoryview_err_extents')
   17503             :  * cdef int _err_extents(int i, Py_ssize_t extent1,             # <<<<<<<<<<<<<<
   17504             :  *                              Py_ssize_t extent2) except -1 with gil:
   17505             :  *     raise ValueError, f"got differing extents in dimension {i} (got {extent1} and {extent2})"
   17506             :  */
   17507             : 
   17508           0 : static int __pyx_memoryview_err_extents(int __pyx_v_i, Py_ssize_t __pyx_v_extent1, Py_ssize_t __pyx_v_extent2) {
   17509           0 :   int __pyx_r;
   17510             :   __Pyx_RefNannyDeclarations
   17511           0 :   PyObject *__pyx_t_1 = NULL;
   17512           0 :   Py_ssize_t __pyx_t_2;
   17513           0 :   Py_UCS4 __pyx_t_3;
   17514           0 :   PyObject *__pyx_t_4 = NULL;
   17515           0 :   int __pyx_lineno = 0;
   17516           0 :   const char *__pyx_filename = NULL;
   17517           0 :   int __pyx_clineno = 0;
   17518             :   #ifdef WITH_THREAD
   17519           0 :   PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
   17520             :   #endif
   17521           0 :   __Pyx_RefNannySetupContext("_err_extents", 0);
   17522             : 
   17523             :   /* "View.MemoryView":1249
   17524             :  * cdef int _err_extents(int i, Py_ssize_t extent1,
   17525             :  *                              Py_ssize_t extent2) except -1 with gil:
   17526             :  *     raise ValueError, f"got differing extents in dimension {i} (got {extent1} and {extent2})"             # <<<<<<<<<<<<<<
   17527             :  * 
   17528             :  * @cname('__pyx_memoryview_err_dim')
   17529             :  */
   17530           0 :   __pyx_t_1 = PyTuple_New(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1249, __pyx_L1_error)
   17531           0 :   __Pyx_GOTREF(__pyx_t_1);
   17532           0 :   __pyx_t_2 = 0;
   17533           0 :   __pyx_t_3 = 127;
   17534           0 :   __Pyx_INCREF(__pyx_kp_u_got_differing_extents_in_dimensi);
   17535           0 :   __pyx_t_2 += 35;
   17536           0 :   __Pyx_GIVEREF(__pyx_kp_u_got_differing_extents_in_dimensi);
   17537           0 :   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_got_differing_extents_in_dimensi);
   17538           0 :   __pyx_t_4 = __Pyx_PyUnicode_From_int(__pyx_v_i, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1249, __pyx_L1_error)
   17539           0 :   __Pyx_GOTREF(__pyx_t_4);
   17540           0 :   __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
   17541           0 :   __Pyx_GIVEREF(__pyx_t_4);
   17542           0 :   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4);
   17543           0 :   __pyx_t_4 = 0;
   17544           0 :   __Pyx_INCREF(__pyx_kp_u_got);
   17545           0 :   __pyx_t_2 += 6;
   17546           0 :   __Pyx_GIVEREF(__pyx_kp_u_got);
   17547           0 :   PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u_got);
   17548           0 :   __pyx_t_4 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_extent1, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1249, __pyx_L1_error)
   17549           0 :   __Pyx_GOTREF(__pyx_t_4);
   17550           0 :   __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
   17551           0 :   __Pyx_GIVEREF(__pyx_t_4);
   17552           0 :   PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_4);
   17553           0 :   __pyx_t_4 = 0;
   17554           0 :   __Pyx_INCREF(__pyx_kp_u_and);
   17555           0 :   __pyx_t_2 += 5;
   17556           0 :   __Pyx_GIVEREF(__pyx_kp_u_and);
   17557           0 :   PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_kp_u_and);
   17558           0 :   __pyx_t_4 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_extent2, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1249, __pyx_L1_error)
   17559           0 :   __Pyx_GOTREF(__pyx_t_4);
   17560           0 :   __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
   17561           0 :   __Pyx_GIVEREF(__pyx_t_4);
   17562           0 :   PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_t_4);
   17563           0 :   __pyx_t_4 = 0;
   17564           0 :   __Pyx_INCREF(__pyx_kp_u__7);
   17565           0 :   __pyx_t_2 += 1;
   17566           0 :   __Pyx_GIVEREF(__pyx_kp_u__7);
   17567           0 :   PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_kp_u__7);
   17568           0 :   __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 7, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1249, __pyx_L1_error)
   17569           0 :   __Pyx_GOTREF(__pyx_t_4);
   17570           0 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   17571           0 :   __Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_4, 0, 0);
   17572           0 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   17573           0 :   __PYX_ERR(1, 1249, __pyx_L1_error)
   17574             : 
   17575             :   /* "View.MemoryView":1247
   17576             :  * 
   17577             :  * @cname('__pyx_memoryview_err_extents')
   17578             :  * cdef int _err_extents(int i, Py_ssize_t extent1,             # <<<<<<<<<<<<<<
   17579             :  *                              Py_ssize_t extent2) except -1 with gil:
   17580             :  *     raise ValueError, f"got differing extents in dimension {i} (got {extent1} and {extent2})"
   17581             :  */
   17582             : 
   17583             :   /* function exit code */
   17584           0 :   __pyx_L1_error:;
   17585           0 :   __Pyx_XDECREF(__pyx_t_1);
   17586           0 :   __Pyx_XDECREF(__pyx_t_4);
   17587           0 :   __Pyx_AddTraceback("View.MemoryView._err_extents", __pyx_clineno, __pyx_lineno, __pyx_filename);
   17588           0 :   __pyx_r = -1;
   17589           0 :   __Pyx_RefNannyFinishContext();
   17590             :   #ifdef WITH_THREAD
   17591           0 :   __Pyx_PyGILState_Release(__pyx_gilstate_save);
   17592             :   #endif
   17593           0 :   return __pyx_r;
   17594             : }
   17595             : 
   17596             : /* "View.MemoryView":1252
   17597             :  * 
   17598             :  * @cname('__pyx_memoryview_err_dim')
   17599             :  * cdef int _err_dim(PyObject *error, str msg, int dim) except -1 with gil:             # <<<<<<<<<<<<<<
   17600             :  *     raise <object>error, msg % dim
   17601             :  * 
   17602             :  */
   17603             : 
   17604           0 : static int __pyx_memoryview_err_dim(PyObject *__pyx_v_error, PyObject *__pyx_v_msg, int __pyx_v_dim) {
   17605           0 :   int __pyx_r;
   17606             :   __Pyx_RefNannyDeclarations
   17607           0 :   PyObject *__pyx_t_1 = NULL;
   17608           0 :   PyObject *__pyx_t_2 = NULL;
   17609           0 :   int __pyx_lineno = 0;
   17610           0 :   const char *__pyx_filename = NULL;
   17611           0 :   int __pyx_clineno = 0;
   17612             :   #ifdef WITH_THREAD
   17613           0 :   PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
   17614             :   #endif
   17615           0 :   __Pyx_RefNannySetupContext("_err_dim", 0);
   17616           0 :   __Pyx_INCREF(__pyx_v_msg);
   17617             : 
   17618             :   /* "View.MemoryView":1253
   17619             :  * @cname('__pyx_memoryview_err_dim')
   17620             :  * cdef int _err_dim(PyObject *error, str msg, int dim) except -1 with gil:
   17621             :  *     raise <object>error, msg % dim             # <<<<<<<<<<<<<<
   17622             :  * 
   17623             :  * @cname('__pyx_memoryview_err')
   17624             :  */
   17625           0 :   __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_dim); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1253, __pyx_L1_error)
   17626           0 :   __Pyx_GOTREF(__pyx_t_1);
   17627           0 :   __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_v_msg, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1253, __pyx_L1_error)
   17628           0 :   __Pyx_GOTREF(__pyx_t_2);
   17629           0 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   17630           0 :   __Pyx_Raise(((PyObject *)__pyx_v_error), __pyx_t_2, 0, 0);
   17631           0 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   17632           0 :   __PYX_ERR(1, 1253, __pyx_L1_error)
   17633             : 
   17634             :   /* "View.MemoryView":1252
   17635             :  * 
   17636             :  * @cname('__pyx_memoryview_err_dim')
   17637             :  * cdef int _err_dim(PyObject *error, str msg, int dim) except -1 with gil:             # <<<<<<<<<<<<<<
   17638             :  *     raise <object>error, msg % dim
   17639             :  * 
   17640             :  */
   17641             : 
   17642             :   /* function exit code */
   17643           0 :   __pyx_L1_error:;
   17644           0 :   __Pyx_XDECREF(__pyx_t_1);
   17645           0 :   __Pyx_XDECREF(__pyx_t_2);
   17646           0 :   __Pyx_AddTraceback("View.MemoryView._err_dim", __pyx_clineno, __pyx_lineno, __pyx_filename);
   17647           0 :   __pyx_r = -1;
   17648           0 :   __Pyx_XDECREF(__pyx_v_msg);
   17649           0 :   __Pyx_RefNannyFinishContext();
   17650             :   #ifdef WITH_THREAD
   17651           0 :   __Pyx_PyGILState_Release(__pyx_gilstate_save);
   17652             :   #endif
   17653           0 :   return __pyx_r;
   17654             : }
   17655             : 
   17656             : /* "View.MemoryView":1256
   17657             :  * 
   17658             :  * @cname('__pyx_memoryview_err')
   17659             :  * cdef int _err(PyObject *error, str msg) except -1 with gil:             # <<<<<<<<<<<<<<
   17660             :  *     raise <object>error, msg
   17661             :  * 
   17662             :  */
   17663             : 
   17664           0 : static int __pyx_memoryview_err(PyObject *__pyx_v_error, PyObject *__pyx_v_msg) {
   17665           0 :   int __pyx_r;
   17666             :   __Pyx_RefNannyDeclarations
   17667           0 :   int __pyx_lineno = 0;
   17668           0 :   const char *__pyx_filename = NULL;
   17669           0 :   int __pyx_clineno = 0;
   17670             :   #ifdef WITH_THREAD
   17671           0 :   PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
   17672             :   #endif
   17673           0 :   __Pyx_RefNannySetupContext("_err", 0);
   17674           0 :   __Pyx_INCREF(__pyx_v_msg);
   17675             : 
   17676             :   /* "View.MemoryView":1257
   17677             :  * @cname('__pyx_memoryview_err')
   17678             :  * cdef int _err(PyObject *error, str msg) except -1 with gil:
   17679             :  *     raise <object>error, msg             # <<<<<<<<<<<<<<
   17680             :  * 
   17681             :  * @cname('__pyx_memoryview_err_no_memory')
   17682             :  */
   17683           0 :   __Pyx_Raise(((PyObject *)__pyx_v_error), __pyx_v_msg, 0, 0);
   17684           0 :   __PYX_ERR(1, 1257, __pyx_L1_error)
   17685             : 
   17686             :   /* "View.MemoryView":1256
   17687             :  * 
   17688             :  * @cname('__pyx_memoryview_err')
   17689             :  * cdef int _err(PyObject *error, str msg) except -1 with gil:             # <<<<<<<<<<<<<<
   17690             :  *     raise <object>error, msg
   17691             :  * 
   17692             :  */
   17693             : 
   17694             :   /* function exit code */
   17695           0 :   __pyx_L1_error:;
   17696           0 :   __Pyx_AddTraceback("View.MemoryView._err", __pyx_clineno, __pyx_lineno, __pyx_filename);
   17697           0 :   __pyx_r = -1;
   17698           0 :   __Pyx_XDECREF(__pyx_v_msg);
   17699           0 :   __Pyx_RefNannyFinishContext();
   17700             :   #ifdef WITH_THREAD
   17701           0 :   __Pyx_PyGILState_Release(__pyx_gilstate_save);
   17702             :   #endif
   17703           0 :   return __pyx_r;
   17704             : }
   17705             : 
   17706             : /* "View.MemoryView":1260
   17707             :  * 
   17708             :  * @cname('__pyx_memoryview_err_no_memory')
   17709             :  * cdef int _err_no_memory() except -1 with gil:             # <<<<<<<<<<<<<<
   17710             :  *     raise MemoryError
   17711             :  * 
   17712             :  */
   17713             : 
   17714           0 : static int __pyx_memoryview_err_no_memory(void) {
   17715           0 :   int __pyx_r;
   17716           0 :   int __pyx_lineno = 0;
   17717           0 :   const char *__pyx_filename = NULL;
   17718           0 :   int __pyx_clineno = 0;
   17719             :   #ifdef WITH_THREAD
   17720           0 :   PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
   17721             :   #endif
   17722             : 
   17723             :   /* "View.MemoryView":1261
   17724             :  * @cname('__pyx_memoryview_err_no_memory')
   17725             :  * cdef int _err_no_memory() except -1 with gil:
   17726             :  *     raise MemoryError             # <<<<<<<<<<<<<<
   17727             :  * 
   17728             :  * 
   17729             :  */
   17730           0 :   PyErr_NoMemory(); __PYX_ERR(1, 1261, __pyx_L1_error)
   17731             : 
   17732             :   /* "View.MemoryView":1260
   17733             :  * 
   17734             :  * @cname('__pyx_memoryview_err_no_memory')
   17735             :  * cdef int _err_no_memory() except -1 with gil:             # <<<<<<<<<<<<<<
   17736             :  *     raise MemoryError
   17737             :  * 
   17738             :  */
   17739             : 
   17740             :   /* function exit code */
   17741           0 :   __pyx_L1_error:;
   17742           0 :   __Pyx_AddTraceback("View.MemoryView._err_no_memory", __pyx_clineno, __pyx_lineno, __pyx_filename);
   17743           0 :   __pyx_r = -1;
   17744             :   #ifdef WITH_THREAD
   17745           0 :   __Pyx_PyGILState_Release(__pyx_gilstate_save);
   17746             :   #endif
   17747           0 :   return __pyx_r;
   17748             : }
   17749             : 
   17750             : /* "View.MemoryView":1265
   17751             :  * 
   17752             :  * @cname('__pyx_memoryview_copy_contents')
   17753             :  * cdef int memoryview_copy_contents(__Pyx_memviewslice src,             # <<<<<<<<<<<<<<
   17754             :  *                                   __Pyx_memviewslice dst,
   17755             :  *                                   int src_ndim, int dst_ndim,
   17756             :  */
   17757             : 
   17758           0 : static int __pyx_memoryview_copy_contents(__Pyx_memviewslice __pyx_v_src, __Pyx_memviewslice __pyx_v_dst, int __pyx_v_src_ndim, int __pyx_v_dst_ndim, int __pyx_v_dtype_is_object) {
   17759           0 :   void *__pyx_v_tmpdata;
   17760           0 :   size_t __pyx_v_itemsize;
   17761           0 :   int __pyx_v_i;
   17762           0 :   char __pyx_v_order;
   17763           0 :   int __pyx_v_broadcasting;
   17764           0 :   int __pyx_v_direct_copy;
   17765           0 :   __Pyx_memviewslice __pyx_v_tmp;
   17766           0 :   int __pyx_v_ndim;
   17767           0 :   int __pyx_r;
   17768           0 :   Py_ssize_t __pyx_t_1;
   17769           0 :   int __pyx_t_2;
   17770           0 :   int __pyx_t_3;
   17771           0 :   int __pyx_t_4;
   17772           0 :   int __pyx_t_5;
   17773           0 :   int __pyx_t_6;
   17774           0 :   void *__pyx_t_7;
   17775           0 :   int __pyx_lineno = 0;
   17776           0 :   const char *__pyx_filename = NULL;
   17777           0 :   int __pyx_clineno = 0;
   17778             :   #ifdef WITH_THREAD
   17779           0 :   PyGILState_STATE __pyx_gilstate_save;
   17780             :   #endif
   17781             : 
   17782             :   /* "View.MemoryView":1273
   17783             :  *     Check for overlapping memory and verify the shapes.
   17784             :  *     """
   17785             :  *     cdef void *tmpdata = NULL             # <<<<<<<<<<<<<<
   17786             :  *     cdef size_t itemsize = src.memview.view.itemsize
   17787             :  *     cdef int i
   17788             :  */
   17789           0 :   __pyx_v_tmpdata = NULL;
   17790             : 
   17791             :   /* "View.MemoryView":1274
   17792             :  *     """
   17793             :  *     cdef void *tmpdata = NULL
   17794             :  *     cdef size_t itemsize = src.memview.view.itemsize             # <<<<<<<<<<<<<<
   17795             :  *     cdef int i
   17796             :  *     cdef char order = get_best_order(&src, src_ndim)
   17797             :  */
   17798           0 :   __pyx_t_1 = __pyx_v_src.memview->view.itemsize;
   17799           0 :   __pyx_v_itemsize = __pyx_t_1;
   17800             : 
   17801             :   /* "View.MemoryView":1276
   17802             :  *     cdef size_t itemsize = src.memview.view.itemsize
   17803             :  *     cdef int i
   17804             :  *     cdef char order = get_best_order(&src, src_ndim)             # <<<<<<<<<<<<<<
   17805             :  *     cdef bint broadcasting = False
   17806             :  *     cdef bint direct_copy = False
   17807             :  */
   17808           0 :   __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_src), __pyx_v_src_ndim);
   17809             : 
   17810             :   /* "View.MemoryView":1277
   17811             :  *     cdef int i
   17812             :  *     cdef char order = get_best_order(&src, src_ndim)
   17813             :  *     cdef bint broadcasting = False             # <<<<<<<<<<<<<<
   17814             :  *     cdef bint direct_copy = False
   17815             :  *     cdef __Pyx_memviewslice tmp
   17816             :  */
   17817           0 :   __pyx_v_broadcasting = 0;
   17818             : 
   17819             :   /* "View.MemoryView":1278
   17820             :  *     cdef char order = get_best_order(&src, src_ndim)
   17821             :  *     cdef bint broadcasting = False
   17822             :  *     cdef bint direct_copy = False             # <<<<<<<<<<<<<<
   17823             :  *     cdef __Pyx_memviewslice tmp
   17824             :  * 
   17825             :  */
   17826           0 :   __pyx_v_direct_copy = 0;
   17827             : 
   17828             :   /* "View.MemoryView":1281
   17829             :  *     cdef __Pyx_memviewslice tmp
   17830             :  * 
   17831             :  *     if src_ndim < dst_ndim:             # <<<<<<<<<<<<<<
   17832             :  *         broadcast_leading(&src, src_ndim, dst_ndim)
   17833             :  *     elif dst_ndim < src_ndim:
   17834             :  */
   17835           0 :   __pyx_t_2 = (__pyx_v_src_ndim < __pyx_v_dst_ndim);
   17836           0 :   if (__pyx_t_2) {
   17837             : 
   17838             :     /* "View.MemoryView":1282
   17839             :  * 
   17840             :  *     if src_ndim < dst_ndim:
   17841             :  *         broadcast_leading(&src, src_ndim, dst_ndim)             # <<<<<<<<<<<<<<
   17842             :  *     elif dst_ndim < src_ndim:
   17843             :  *         broadcast_leading(&dst, dst_ndim, src_ndim)
   17844             :  */
   17845           0 :     __pyx_memoryview_broadcast_leading((&__pyx_v_src), __pyx_v_src_ndim, __pyx_v_dst_ndim);
   17846             : 
   17847             :     /* "View.MemoryView":1281
   17848             :  *     cdef __Pyx_memviewslice tmp
   17849             :  * 
   17850             :  *     if src_ndim < dst_ndim:             # <<<<<<<<<<<<<<
   17851             :  *         broadcast_leading(&src, src_ndim, dst_ndim)
   17852             :  *     elif dst_ndim < src_ndim:
   17853             :  */
   17854           0 :     goto __pyx_L3;
   17855             :   }
   17856             : 
   17857             :   /* "View.MemoryView":1283
   17858             :  *     if src_ndim < dst_ndim:
   17859             :  *         broadcast_leading(&src, src_ndim, dst_ndim)
   17860             :  *     elif dst_ndim < src_ndim:             # <<<<<<<<<<<<<<
   17861             :  *         broadcast_leading(&dst, dst_ndim, src_ndim)
   17862             :  * 
   17863             :  */
   17864           0 :   __pyx_t_2 = (__pyx_v_dst_ndim < __pyx_v_src_ndim);
   17865           0 :   if (__pyx_t_2) {
   17866             : 
   17867             :     /* "View.MemoryView":1284
   17868             :  *         broadcast_leading(&src, src_ndim, dst_ndim)
   17869             :  *     elif dst_ndim < src_ndim:
   17870             :  *         broadcast_leading(&dst, dst_ndim, src_ndim)             # <<<<<<<<<<<<<<
   17871             :  * 
   17872             :  *     cdef int ndim = max(src_ndim, dst_ndim)
   17873             :  */
   17874           0 :     __pyx_memoryview_broadcast_leading((&__pyx_v_dst), __pyx_v_dst_ndim, __pyx_v_src_ndim);
   17875             : 
   17876             :     /* "View.MemoryView":1283
   17877             :  *     if src_ndim < dst_ndim:
   17878             :  *         broadcast_leading(&src, src_ndim, dst_ndim)
   17879             :  *     elif dst_ndim < src_ndim:             # <<<<<<<<<<<<<<
   17880             :  *         broadcast_leading(&dst, dst_ndim, src_ndim)
   17881             :  * 
   17882             :  */
   17883             :   }
   17884           0 :   __pyx_L3:;
   17885             : 
   17886             :   /* "View.MemoryView":1286
   17887             :  *         broadcast_leading(&dst, dst_ndim, src_ndim)
   17888             :  * 
   17889             :  *     cdef int ndim = max(src_ndim, dst_ndim)             # <<<<<<<<<<<<<<
   17890             :  * 
   17891             :  *     for i in range(ndim):
   17892             :  */
   17893           0 :   __pyx_t_3 = __pyx_v_dst_ndim;
   17894           0 :   __pyx_t_4 = __pyx_v_src_ndim;
   17895           0 :   __pyx_t_2 = (__pyx_t_3 > __pyx_t_4);
   17896           0 :   if (__pyx_t_2) {
   17897             :     __pyx_t_5 = __pyx_t_3;
   17898             :   } else {
   17899             :     __pyx_t_5 = __pyx_t_4;
   17900             :   }
   17901           0 :   __pyx_v_ndim = __pyx_t_5;
   17902             : 
   17903             :   /* "View.MemoryView":1288
   17904             :  *     cdef int ndim = max(src_ndim, dst_ndim)
   17905             :  * 
   17906             :  *     for i in range(ndim):             # <<<<<<<<<<<<<<
   17907             :  *         if src.shape[i] != dst.shape[i]:
   17908             :  *             if src.shape[i] == 1:
   17909             :  */
   17910           0 :   __pyx_t_5 = __pyx_v_ndim;
   17911           0 :   __pyx_t_3 = __pyx_t_5;
   17912           0 :   for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
   17913           0 :     __pyx_v_i = __pyx_t_4;
   17914             : 
   17915             :     /* "View.MemoryView":1289
   17916             :  * 
   17917             :  *     for i in range(ndim):
   17918             :  *         if src.shape[i] != dst.shape[i]:             # <<<<<<<<<<<<<<
   17919             :  *             if src.shape[i] == 1:
   17920             :  *                 broadcasting = True
   17921             :  */
   17922           0 :     __pyx_t_2 = ((__pyx_v_src.shape[__pyx_v_i]) != (__pyx_v_dst.shape[__pyx_v_i]));
   17923           0 :     if (__pyx_t_2) {
   17924             : 
   17925             :       /* "View.MemoryView":1290
   17926             :  *     for i in range(ndim):
   17927             :  *         if src.shape[i] != dst.shape[i]:
   17928             :  *             if src.shape[i] == 1:             # <<<<<<<<<<<<<<
   17929             :  *                 broadcasting = True
   17930             :  *                 src.strides[i] = 0
   17931             :  */
   17932           0 :       __pyx_t_2 = ((__pyx_v_src.shape[__pyx_v_i]) == 1);
   17933           0 :       if (__pyx_t_2) {
   17934             : 
   17935             :         /* "View.MemoryView":1291
   17936             :  *         if src.shape[i] != dst.shape[i]:
   17937             :  *             if src.shape[i] == 1:
   17938             :  *                 broadcasting = True             # <<<<<<<<<<<<<<
   17939             :  *                 src.strides[i] = 0
   17940             :  *             else:
   17941             :  */
   17942           0 :         __pyx_v_broadcasting = 1;
   17943             : 
   17944             :         /* "View.MemoryView":1292
   17945             :  *             if src.shape[i] == 1:
   17946             :  *                 broadcasting = True
   17947             :  *                 src.strides[i] = 0             # <<<<<<<<<<<<<<
   17948             :  *             else:
   17949             :  *                 _err_extents(i, dst.shape[i], src.shape[i])
   17950             :  */
   17951           0 :         (__pyx_v_src.strides[__pyx_v_i]) = 0;
   17952             : 
   17953             :         /* "View.MemoryView":1290
   17954             :  *     for i in range(ndim):
   17955             :  *         if src.shape[i] != dst.shape[i]:
   17956             :  *             if src.shape[i] == 1:             # <<<<<<<<<<<<<<
   17957             :  *                 broadcasting = True
   17958             :  *                 src.strides[i] = 0
   17959             :  */
   17960           0 :         goto __pyx_L7;
   17961             :       }
   17962             : 
   17963             :       /* "View.MemoryView":1294
   17964             :  *                 src.strides[i] = 0
   17965             :  *             else:
   17966             :  *                 _err_extents(i, dst.shape[i], src.shape[i])             # <<<<<<<<<<<<<<
   17967             :  * 
   17968             :  *         if src.suboffsets[i] >= 0:
   17969             :  */
   17970             :       /*else*/ {
   17971           0 :         __pyx_t_6 = __pyx_memoryview_err_extents(__pyx_v_i, (__pyx_v_dst.shape[__pyx_v_i]), (__pyx_v_src.shape[__pyx_v_i])); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 1294, __pyx_L1_error)
   17972             :       }
   17973           0 :       __pyx_L7:;
   17974             : 
   17975             :       /* "View.MemoryView":1289
   17976             :  * 
   17977             :  *     for i in range(ndim):
   17978             :  *         if src.shape[i] != dst.shape[i]:             # <<<<<<<<<<<<<<
   17979             :  *             if src.shape[i] == 1:
   17980             :  *                 broadcasting = True
   17981             :  */
   17982             :     }
   17983             : 
   17984             :     /* "View.MemoryView":1296
   17985             :  *                 _err_extents(i, dst.shape[i], src.shape[i])
   17986             :  * 
   17987             :  *         if src.suboffsets[i] >= 0:             # <<<<<<<<<<<<<<
   17988             :  *             _err_dim(PyExc_ValueError, "Dimension %d is not direct", i)
   17989             :  * 
   17990             :  */
   17991           0 :     __pyx_t_2 = ((__pyx_v_src.suboffsets[__pyx_v_i]) >= 0);
   17992           0 :     if (__pyx_t_2) {
   17993             : 
   17994             :       /* "View.MemoryView":1297
   17995             :  * 
   17996             :  *         if src.suboffsets[i] >= 0:
   17997             :  *             _err_dim(PyExc_ValueError, "Dimension %d is not direct", i)             # <<<<<<<<<<<<<<
   17998             :  * 
   17999             :  *     if slices_overlap(&src, &dst, ndim, itemsize):
   18000             :  */
   18001           0 :       __pyx_t_6 = __pyx_memoryview_err_dim(PyExc_ValueError, __pyx_kp_s_Dimension_d_is_not_direct, __pyx_v_i); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 1297, __pyx_L1_error)
   18002             : 
   18003             :       /* "View.MemoryView":1296
   18004             :  *                 _err_extents(i, dst.shape[i], src.shape[i])
   18005             :  * 
   18006             :  *         if src.suboffsets[i] >= 0:             # <<<<<<<<<<<<<<
   18007             :  *             _err_dim(PyExc_ValueError, "Dimension %d is not direct", i)
   18008             :  * 
   18009             :  */
   18010             :     }
   18011             :   }
   18012             : 
   18013             :   /* "View.MemoryView":1299
   18014             :  *             _err_dim(PyExc_ValueError, "Dimension %d is not direct", i)
   18015             :  * 
   18016             :  *     if slices_overlap(&src, &dst, ndim, itemsize):             # <<<<<<<<<<<<<<
   18017             :  * 
   18018             :  *         if not slice_is_contig(src, order, ndim):
   18019             :  */
   18020           0 :   __pyx_t_2 = __pyx_slices_overlap((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize);
   18021           0 :   if (__pyx_t_2) {
   18022             : 
   18023             :     /* "View.MemoryView":1301
   18024             :  *     if slices_overlap(&src, &dst, ndim, itemsize):
   18025             :  * 
   18026             :  *         if not slice_is_contig(src, order, ndim):             # <<<<<<<<<<<<<<
   18027             :  *             order = get_best_order(&dst, ndim)
   18028             :  * 
   18029             :  */
   18030           0 :     __pyx_t_2 = (!__pyx_memviewslice_is_contig(__pyx_v_src, __pyx_v_order, __pyx_v_ndim));
   18031           0 :     if (__pyx_t_2) {
   18032             : 
   18033             :       /* "View.MemoryView":1302
   18034             :  * 
   18035             :  *         if not slice_is_contig(src, order, ndim):
   18036             :  *             order = get_best_order(&dst, ndim)             # <<<<<<<<<<<<<<
   18037             :  * 
   18038             :  *         tmpdata = copy_data_to_temp(&src, &tmp, order, ndim)
   18039             :  */
   18040           0 :       __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim);
   18041             : 
   18042             :       /* "View.MemoryView":1301
   18043             :  *     if slices_overlap(&src, &dst, ndim, itemsize):
   18044             :  * 
   18045             :  *         if not slice_is_contig(src, order, ndim):             # <<<<<<<<<<<<<<
   18046             :  *             order = get_best_order(&dst, ndim)
   18047             :  * 
   18048             :  */
   18049             :     }
   18050             : 
   18051             :     /* "View.MemoryView":1304
   18052             :  *             order = get_best_order(&dst, ndim)
   18053             :  * 
   18054             :  *         tmpdata = copy_data_to_temp(&src, &tmp, order, ndim)             # <<<<<<<<<<<<<<
   18055             :  *         src = tmp
   18056             :  * 
   18057             :  */
   18058           0 :     __pyx_t_7 = __pyx_memoryview_copy_data_to_temp((&__pyx_v_src), (&__pyx_v_tmp), __pyx_v_order, __pyx_v_ndim); if (unlikely(__pyx_t_7 == ((void *)NULL))) __PYX_ERR(1, 1304, __pyx_L1_error)
   18059           0 :     __pyx_v_tmpdata = __pyx_t_7;
   18060             : 
   18061             :     /* "View.MemoryView":1305
   18062             :  * 
   18063             :  *         tmpdata = copy_data_to_temp(&src, &tmp, order, ndim)
   18064             :  *         src = tmp             # <<<<<<<<<<<<<<
   18065             :  * 
   18066             :  *     if not broadcasting:
   18067             :  */
   18068           0 :     __pyx_v_src = __pyx_v_tmp;
   18069             : 
   18070             :     /* "View.MemoryView":1299
   18071             :  *             _err_dim(PyExc_ValueError, "Dimension %d is not direct", i)
   18072             :  * 
   18073             :  *     if slices_overlap(&src, &dst, ndim, itemsize):             # <<<<<<<<<<<<<<
   18074             :  * 
   18075             :  *         if not slice_is_contig(src, order, ndim):
   18076             :  */
   18077             :   }
   18078             : 
   18079             :   /* "View.MemoryView":1307
   18080             :  *         src = tmp
   18081             :  * 
   18082             :  *     if not broadcasting:             # <<<<<<<<<<<<<<
   18083             :  * 
   18084             :  * 
   18085             :  */
   18086           0 :   __pyx_t_2 = (!__pyx_v_broadcasting);
   18087           0 :   if (__pyx_t_2) {
   18088             : 
   18089             :     /* "View.MemoryView":1310
   18090             :  * 
   18091             :  * 
   18092             :  *         if slice_is_contig(src, 'C', ndim):             # <<<<<<<<<<<<<<
   18093             :  *             direct_copy = slice_is_contig(dst, 'C', ndim)
   18094             :  *         elif slice_is_contig(src, 'F', ndim):
   18095             :  */
   18096           0 :     __pyx_t_2 = __pyx_memviewslice_is_contig(__pyx_v_src, 'C', __pyx_v_ndim);
   18097           0 :     if (__pyx_t_2) {
   18098             : 
   18099             :       /* "View.MemoryView":1311
   18100             :  * 
   18101             :  *         if slice_is_contig(src, 'C', ndim):
   18102             :  *             direct_copy = slice_is_contig(dst, 'C', ndim)             # <<<<<<<<<<<<<<
   18103             :  *         elif slice_is_contig(src, 'F', ndim):
   18104             :  *             direct_copy = slice_is_contig(dst, 'F', ndim)
   18105             :  */
   18106           0 :       __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'C', __pyx_v_ndim);
   18107             : 
   18108             :       /* "View.MemoryView":1310
   18109             :  * 
   18110             :  * 
   18111             :  *         if slice_is_contig(src, 'C', ndim):             # <<<<<<<<<<<<<<
   18112             :  *             direct_copy = slice_is_contig(dst, 'C', ndim)
   18113             :  *         elif slice_is_contig(src, 'F', ndim):
   18114             :  */
   18115           0 :       goto __pyx_L12;
   18116             :     }
   18117             : 
   18118             :     /* "View.MemoryView":1312
   18119             :  *         if slice_is_contig(src, 'C', ndim):
   18120             :  *             direct_copy = slice_is_contig(dst, 'C', ndim)
   18121             :  *         elif slice_is_contig(src, 'F', ndim):             # <<<<<<<<<<<<<<
   18122             :  *             direct_copy = slice_is_contig(dst, 'F', ndim)
   18123             :  * 
   18124             :  */
   18125           0 :     __pyx_t_2 = __pyx_memviewslice_is_contig(__pyx_v_src, 'F', __pyx_v_ndim);
   18126           0 :     if (__pyx_t_2) {
   18127             : 
   18128             :       /* "View.MemoryView":1313
   18129             :  *             direct_copy = slice_is_contig(dst, 'C', ndim)
   18130             :  *         elif slice_is_contig(src, 'F', ndim):
   18131             :  *             direct_copy = slice_is_contig(dst, 'F', ndim)             # <<<<<<<<<<<<<<
   18132             :  * 
   18133             :  *         if direct_copy:
   18134             :  */
   18135           0 :       __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'F', __pyx_v_ndim);
   18136             : 
   18137             :       /* "View.MemoryView":1312
   18138             :  *         if slice_is_contig(src, 'C', ndim):
   18139             :  *             direct_copy = slice_is_contig(dst, 'C', ndim)
   18140             :  *         elif slice_is_contig(src, 'F', ndim):             # <<<<<<<<<<<<<<
   18141             :  *             direct_copy = slice_is_contig(dst, 'F', ndim)
   18142             :  * 
   18143             :  */
   18144             :     }
   18145           0 :     __pyx_L12:;
   18146             : 
   18147             :     /* "View.MemoryView":1315
   18148             :  *             direct_copy = slice_is_contig(dst, 'F', ndim)
   18149             :  * 
   18150             :  *         if direct_copy:             # <<<<<<<<<<<<<<
   18151             :  * 
   18152             :  *             refcount_copying(&dst, dtype_is_object, ndim, inc=False)
   18153             :  */
   18154           0 :     if (__pyx_v_direct_copy) {
   18155             : 
   18156             :       /* "View.MemoryView":1317
   18157             :  *         if direct_copy:
   18158             :  * 
   18159             :  *             refcount_copying(&dst, dtype_is_object, ndim, inc=False)             # <<<<<<<<<<<<<<
   18160             :  *             memcpy(dst.data, src.data, slice_get_size(&src, ndim))
   18161             :  *             refcount_copying(&dst, dtype_is_object, ndim, inc=True)
   18162             :  */
   18163           0 :       __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0);
   18164             : 
   18165             :       /* "View.MemoryView":1318
   18166             :  * 
   18167             :  *             refcount_copying(&dst, dtype_is_object, ndim, inc=False)
   18168             :  *             memcpy(dst.data, src.data, slice_get_size(&src, ndim))             # <<<<<<<<<<<<<<
   18169             :  *             refcount_copying(&dst, dtype_is_object, ndim, inc=True)
   18170             :  *             free(tmpdata)
   18171             :  */
   18172           0 :       (void)(memcpy(__pyx_v_dst.data, __pyx_v_src.data, __pyx_memoryview_slice_get_size((&__pyx_v_src), __pyx_v_ndim)));
   18173             : 
   18174             :       /* "View.MemoryView":1319
   18175             :  *             refcount_copying(&dst, dtype_is_object, ndim, inc=False)
   18176             :  *             memcpy(dst.data, src.data, slice_get_size(&src, ndim))
   18177             :  *             refcount_copying(&dst, dtype_is_object, ndim, inc=True)             # <<<<<<<<<<<<<<
   18178             :  *             free(tmpdata)
   18179             :  *             return 0
   18180             :  */
   18181           0 :       __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1);
   18182             : 
   18183             :       /* "View.MemoryView":1320
   18184             :  *             memcpy(dst.data, src.data, slice_get_size(&src, ndim))
   18185             :  *             refcount_copying(&dst, dtype_is_object, ndim, inc=True)
   18186             :  *             free(tmpdata)             # <<<<<<<<<<<<<<
   18187             :  *             return 0
   18188             :  * 
   18189             :  */
   18190           0 :       free(__pyx_v_tmpdata);
   18191             : 
   18192             :       /* "View.MemoryView":1321
   18193             :  *             refcount_copying(&dst, dtype_is_object, ndim, inc=True)
   18194             :  *             free(tmpdata)
   18195             :  *             return 0             # <<<<<<<<<<<<<<
   18196             :  * 
   18197             :  *     if order == 'F' == get_best_order(&dst, ndim):
   18198             :  */
   18199           0 :       __pyx_r = 0;
   18200           0 :       goto __pyx_L0;
   18201             : 
   18202             :       /* "View.MemoryView":1315
   18203             :  *             direct_copy = slice_is_contig(dst, 'F', ndim)
   18204             :  * 
   18205             :  *         if direct_copy:             # <<<<<<<<<<<<<<
   18206             :  * 
   18207             :  *             refcount_copying(&dst, dtype_is_object, ndim, inc=False)
   18208             :  */
   18209             :     }
   18210             : 
   18211             :     /* "View.MemoryView":1307
   18212             :  *         src = tmp
   18213             :  * 
   18214             :  *     if not broadcasting:             # <<<<<<<<<<<<<<
   18215             :  * 
   18216             :  * 
   18217             :  */
   18218             :   }
   18219             : 
   18220             :   /* "View.MemoryView":1323
   18221             :  *             return 0
   18222             :  * 
   18223             :  *     if order == 'F' == get_best_order(&dst, ndim):             # <<<<<<<<<<<<<<
   18224             :  * 
   18225             :  * 
   18226             :  */
   18227           0 :   __pyx_t_2 = (__pyx_v_order == 'F');
   18228           0 :   if (__pyx_t_2) {
   18229           0 :     __pyx_t_2 = ('F' == __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim));
   18230             :   }
   18231           0 :   if (__pyx_t_2) {
   18232             : 
   18233             :     /* "View.MemoryView":1326
   18234             :  * 
   18235             :  * 
   18236             :  *         transpose_memslice(&src)             # <<<<<<<<<<<<<<
   18237             :  *         transpose_memslice(&dst)
   18238             :  * 
   18239             :  */
   18240           0 :     __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_src)); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 1326, __pyx_L1_error)
   18241             : 
   18242             :     /* "View.MemoryView":1327
   18243             :  * 
   18244             :  *         transpose_memslice(&src)
   18245             :  *         transpose_memslice(&dst)             # <<<<<<<<<<<<<<
   18246             :  * 
   18247             :  *     refcount_copying(&dst, dtype_is_object, ndim, inc=False)
   18248             :  */
   18249           0 :     __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_dst)); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 1327, __pyx_L1_error)
   18250             : 
   18251             :     /* "View.MemoryView":1323
   18252             :  *             return 0
   18253             :  * 
   18254             :  *     if order == 'F' == get_best_order(&dst, ndim):             # <<<<<<<<<<<<<<
   18255             :  * 
   18256             :  * 
   18257             :  */
   18258             :   }
   18259             : 
   18260             :   /* "View.MemoryView":1329
   18261             :  *         transpose_memslice(&dst)
   18262             :  * 
   18263             :  *     refcount_copying(&dst, dtype_is_object, ndim, inc=False)             # <<<<<<<<<<<<<<
   18264             :  *     copy_strided_to_strided(&src, &dst, ndim, itemsize)
   18265             :  *     refcount_copying(&dst, dtype_is_object, ndim, inc=True)
   18266             :  */
   18267           0 :   __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0);
   18268             : 
   18269             :   /* "View.MemoryView":1330
   18270             :  * 
   18271             :  *     refcount_copying(&dst, dtype_is_object, ndim, inc=False)
   18272             :  *     copy_strided_to_strided(&src, &dst, ndim, itemsize)             # <<<<<<<<<<<<<<
   18273             :  *     refcount_copying(&dst, dtype_is_object, ndim, inc=True)
   18274             :  * 
   18275             :  */
   18276           0 :   copy_strided_to_strided((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize);
   18277             : 
   18278             :   /* "View.MemoryView":1331
   18279             :  *     refcount_copying(&dst, dtype_is_object, ndim, inc=False)
   18280             :  *     copy_strided_to_strided(&src, &dst, ndim, itemsize)
   18281             :  *     refcount_copying(&dst, dtype_is_object, ndim, inc=True)             # <<<<<<<<<<<<<<
   18282             :  * 
   18283             :  *     free(tmpdata)
   18284             :  */
   18285           0 :   __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1);
   18286             : 
   18287             :   /* "View.MemoryView":1333
   18288             :  *     refcount_copying(&dst, dtype_is_object, ndim, inc=True)
   18289             :  * 
   18290             :  *     free(tmpdata)             # <<<<<<<<<<<<<<
   18291             :  *     return 0
   18292             :  * 
   18293             :  */
   18294           0 :   free(__pyx_v_tmpdata);
   18295             : 
   18296             :   /* "View.MemoryView":1334
   18297             :  * 
   18298             :  *     free(tmpdata)
   18299             :  *     return 0             # <<<<<<<<<<<<<<
   18300             :  * 
   18301             :  * @cname('__pyx_memoryview_broadcast_leading')
   18302             :  */
   18303           0 :   __pyx_r = 0;
   18304           0 :   goto __pyx_L0;
   18305             : 
   18306             :   /* "View.MemoryView":1265
   18307             :  * 
   18308             :  * @cname('__pyx_memoryview_copy_contents')
   18309             :  * cdef int memoryview_copy_contents(__Pyx_memviewslice src,             # <<<<<<<<<<<<<<
   18310             :  *                                   __Pyx_memviewslice dst,
   18311             :  *                                   int src_ndim, int dst_ndim,
   18312             :  */
   18313             : 
   18314             :   /* function exit code */
   18315           0 :   __pyx_L1_error:;
   18316             :   #ifdef WITH_THREAD
   18317           0 :   __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
   18318             :   #endif
   18319           0 :   __Pyx_AddTraceback("View.MemoryView.memoryview_copy_contents", __pyx_clineno, __pyx_lineno, __pyx_filename);
   18320           0 :   __pyx_r = -1;
   18321             :   #ifdef WITH_THREAD
   18322           0 :   __Pyx_PyGILState_Release(__pyx_gilstate_save);
   18323             :   #endif
   18324           0 :   __pyx_L0:;
   18325           0 :   return __pyx_r;
   18326             : }
   18327             : 
   18328             : /* "View.MemoryView":1337
   18329             :  * 
   18330             :  * @cname('__pyx_memoryview_broadcast_leading')
   18331             :  * cdef void broadcast_leading(__Pyx_memviewslice *mslice,             # <<<<<<<<<<<<<<
   18332             :  *                             int ndim,
   18333             :  *                             int ndim_other) noexcept nogil:
   18334             :  */
   18335             : 
   18336           0 : static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim, int __pyx_v_ndim_other) {
   18337           0 :   int __pyx_v_i;
   18338           0 :   int __pyx_v_offset;
   18339           0 :   int __pyx_t_1;
   18340           0 :   int __pyx_t_2;
   18341           0 :   int __pyx_t_3;
   18342             : 
   18343             :   /* "View.MemoryView":1341
   18344             :  *                             int ndim_other) noexcept nogil:
   18345             :  *     cdef int i
   18346             :  *     cdef int offset = ndim_other - ndim             # <<<<<<<<<<<<<<
   18347             :  * 
   18348             :  *     for i in range(ndim - 1, -1, -1):
   18349             :  */
   18350           0 :   __pyx_v_offset = (__pyx_v_ndim_other - __pyx_v_ndim);
   18351             : 
   18352             :   /* "View.MemoryView":1343
   18353             :  *     cdef int offset = ndim_other - ndim
   18354             :  * 
   18355             :  *     for i in range(ndim - 1, -1, -1):             # <<<<<<<<<<<<<<
   18356             :  *         mslice.shape[i + offset] = mslice.shape[i]
   18357             :  *         mslice.strides[i + offset] = mslice.strides[i]
   18358             :  */
   18359           0 :   for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) {
   18360           0 :     __pyx_v_i = __pyx_t_1;
   18361             : 
   18362             :     /* "View.MemoryView":1344
   18363             :  * 
   18364             :  *     for i in range(ndim - 1, -1, -1):
   18365             :  *         mslice.shape[i + offset] = mslice.shape[i]             # <<<<<<<<<<<<<<
   18366             :  *         mslice.strides[i + offset] = mslice.strides[i]
   18367             :  *         mslice.suboffsets[i + offset] = mslice.suboffsets[i]
   18368             :  */
   18369           0 :     (__pyx_v_mslice->shape[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->shape[__pyx_v_i]);
   18370             : 
   18371             :     /* "View.MemoryView":1345
   18372             :  *     for i in range(ndim - 1, -1, -1):
   18373             :  *         mslice.shape[i + offset] = mslice.shape[i]
   18374             :  *         mslice.strides[i + offset] = mslice.strides[i]             # <<<<<<<<<<<<<<
   18375             :  *         mslice.suboffsets[i + offset] = mslice.suboffsets[i]
   18376             :  * 
   18377             :  */
   18378           0 :     (__pyx_v_mslice->strides[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->strides[__pyx_v_i]);
   18379             : 
   18380             :     /* "View.MemoryView":1346
   18381             :  *         mslice.shape[i + offset] = mslice.shape[i]
   18382             :  *         mslice.strides[i + offset] = mslice.strides[i]
   18383             :  *         mslice.suboffsets[i + offset] = mslice.suboffsets[i]             # <<<<<<<<<<<<<<
   18384             :  * 
   18385             :  *     for i in range(offset):
   18386             :  */
   18387           0 :     (__pyx_v_mslice->suboffsets[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->suboffsets[__pyx_v_i]);
   18388             :   }
   18389             : 
   18390             :   /* "View.MemoryView":1348
   18391             :  *         mslice.suboffsets[i + offset] = mslice.suboffsets[i]
   18392             :  * 
   18393             :  *     for i in range(offset):             # <<<<<<<<<<<<<<
   18394             :  *         mslice.shape[i] = 1
   18395             :  *         mslice.strides[i] = mslice.strides[0]
   18396             :  */
   18397           0 :   __pyx_t_1 = __pyx_v_offset;
   18398             :   __pyx_t_2 = __pyx_t_1;
   18399           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   18400           0 :     __pyx_v_i = __pyx_t_3;
   18401             : 
   18402             :     /* "View.MemoryView":1349
   18403             :  * 
   18404             :  *     for i in range(offset):
   18405             :  *         mslice.shape[i] = 1             # <<<<<<<<<<<<<<
   18406             :  *         mslice.strides[i] = mslice.strides[0]
   18407             :  *         mslice.suboffsets[i] = -1
   18408             :  */
   18409           0 :     (__pyx_v_mslice->shape[__pyx_v_i]) = 1;
   18410             : 
   18411             :     /* "View.MemoryView":1350
   18412             :  *     for i in range(offset):
   18413             :  *         mslice.shape[i] = 1
   18414             :  *         mslice.strides[i] = mslice.strides[0]             # <<<<<<<<<<<<<<
   18415             :  *         mslice.suboffsets[i] = -1
   18416             :  * 
   18417             :  */
   18418           0 :     (__pyx_v_mslice->strides[__pyx_v_i]) = (__pyx_v_mslice->strides[0]);
   18419             : 
   18420             :     /* "View.MemoryView":1351
   18421             :  *         mslice.shape[i] = 1
   18422             :  *         mslice.strides[i] = mslice.strides[0]
   18423             :  *         mslice.suboffsets[i] = -1             # <<<<<<<<<<<<<<
   18424             :  * 
   18425             :  * 
   18426             :  */
   18427           0 :     (__pyx_v_mslice->suboffsets[__pyx_v_i]) = -1L;
   18428             :   }
   18429             : 
   18430             :   /* "View.MemoryView":1337
   18431             :  * 
   18432             :  * @cname('__pyx_memoryview_broadcast_leading')
   18433             :  * cdef void broadcast_leading(__Pyx_memviewslice *mslice,             # <<<<<<<<<<<<<<
   18434             :  *                             int ndim,
   18435             :  *                             int ndim_other) noexcept nogil:
   18436             :  */
   18437             : 
   18438             :   /* function exit code */
   18439           0 : }
   18440             : 
   18441             : /* "View.MemoryView":1359
   18442             :  * 
   18443             :  * @cname('__pyx_memoryview_refcount_copying')
   18444             :  * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, int ndim, bint inc) noexcept nogil:             # <<<<<<<<<<<<<<
   18445             :  * 
   18446             :  *     if dtype_is_object:
   18447             :  */
   18448             : 
   18449           0 : static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_dtype_is_object, int __pyx_v_ndim, int __pyx_v_inc) {
   18450             : 
   18451             :   /* "View.MemoryView":1361
   18452             :  * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, int ndim, bint inc) noexcept nogil:
   18453             :  * 
   18454             :  *     if dtype_is_object:             # <<<<<<<<<<<<<<
   18455             :  *         refcount_objects_in_slice_with_gil(dst.data, dst.shape, dst.strides, ndim, inc)
   18456             :  * 
   18457             :  */
   18458           0 :   if (__pyx_v_dtype_is_object) {
   18459             : 
   18460             :     /* "View.MemoryView":1362
   18461             :  * 
   18462             :  *     if dtype_is_object:
   18463             :  *         refcount_objects_in_slice_with_gil(dst.data, dst.shape, dst.strides, ndim, inc)             # <<<<<<<<<<<<<<
   18464             :  * 
   18465             :  * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil')
   18466             :  */
   18467           0 :     __pyx_memoryview_refcount_objects_in_slice_with_gil(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_inc);
   18468             : 
   18469             :     /* "View.MemoryView":1361
   18470             :  * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, int ndim, bint inc) noexcept nogil:
   18471             :  * 
   18472             :  *     if dtype_is_object:             # <<<<<<<<<<<<<<
   18473             :  *         refcount_objects_in_slice_with_gil(dst.data, dst.shape, dst.strides, ndim, inc)
   18474             :  * 
   18475             :  */
   18476             :   }
   18477             : 
   18478             :   /* "View.MemoryView":1359
   18479             :  * 
   18480             :  * @cname('__pyx_memoryview_refcount_copying')
   18481             :  * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, int ndim, bint inc) noexcept nogil:             # <<<<<<<<<<<<<<
   18482             :  * 
   18483             :  *     if dtype_is_object:
   18484             :  */
   18485             : 
   18486             :   /* function exit code */
   18487           0 : }
   18488             : 
   18489             : /* "View.MemoryView":1365
   18490             :  * 
   18491             :  * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil')
   18492             :  * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape,             # <<<<<<<<<<<<<<
   18493             :  *                                              Py_ssize_t *strides, int ndim,
   18494             :  *                                              bint inc) noexcept with gil:
   18495             :  */
   18496             : 
   18497           0 : static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) {
   18498             :   #ifdef WITH_THREAD
   18499           0 :   PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
   18500             :   #endif
   18501             : 
   18502             :   /* "View.MemoryView":1368
   18503             :  *                                              Py_ssize_t *strides, int ndim,
   18504             :  *                                              bint inc) noexcept with gil:
   18505             :  *     refcount_objects_in_slice(data, shape, strides, ndim, inc)             # <<<<<<<<<<<<<<
   18506             :  * 
   18507             :  * @cname('__pyx_memoryview_refcount_objects_in_slice')
   18508             :  */
   18509           0 :   __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, __pyx_v_shape, __pyx_v_strides, __pyx_v_ndim, __pyx_v_inc);
   18510             : 
   18511             :   /* "View.MemoryView":1365
   18512             :  * 
   18513             :  * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil')
   18514             :  * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape,             # <<<<<<<<<<<<<<
   18515             :  *                                              Py_ssize_t *strides, int ndim,
   18516             :  *                                              bint inc) noexcept with gil:
   18517             :  */
   18518             : 
   18519             :   /* function exit code */
   18520             :   #ifdef WITH_THREAD
   18521           0 :   __Pyx_PyGILState_Release(__pyx_gilstate_save);
   18522             :   #endif
   18523           0 : }
   18524             : 
   18525             : /* "View.MemoryView":1371
   18526             :  * 
   18527             :  * @cname('__pyx_memoryview_refcount_objects_in_slice')
   18528             :  * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape,             # <<<<<<<<<<<<<<
   18529             :  *                                     Py_ssize_t *strides, int ndim, bint inc) noexcept:
   18530             :  *     cdef Py_ssize_t i
   18531             :  */
   18532             : 
   18533           0 : static void __pyx_memoryview_refcount_objects_in_slice(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) {
   18534           0 :   CYTHON_UNUSED Py_ssize_t __pyx_v_i;
   18535           0 :   Py_ssize_t __pyx_v_stride;
   18536           0 :   Py_ssize_t __pyx_t_1;
   18537           0 :   Py_ssize_t __pyx_t_2;
   18538           0 :   Py_ssize_t __pyx_t_3;
   18539           0 :   int __pyx_t_4;
   18540             : 
   18541             :   /* "View.MemoryView":1374
   18542             :  *                                     Py_ssize_t *strides, int ndim, bint inc) noexcept:
   18543             :  *     cdef Py_ssize_t i
   18544             :  *     cdef Py_ssize_t stride = strides[0]             # <<<<<<<<<<<<<<
   18545             :  * 
   18546             :  *     for i in range(shape[0]):
   18547             :  */
   18548           0 :   __pyx_v_stride = (__pyx_v_strides[0]);
   18549             : 
   18550             :   /* "View.MemoryView":1376
   18551             :  *     cdef Py_ssize_t stride = strides[0]
   18552             :  * 
   18553             :  *     for i in range(shape[0]):             # <<<<<<<<<<<<<<
   18554             :  *         if ndim == 1:
   18555             :  *             if inc:
   18556             :  */
   18557           0 :   __pyx_t_1 = (__pyx_v_shape[0]);
   18558           0 :   __pyx_t_2 = __pyx_t_1;
   18559           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   18560           0 :     __pyx_v_i = __pyx_t_3;
   18561             : 
   18562             :     /* "View.MemoryView":1377
   18563             :  * 
   18564             :  *     for i in range(shape[0]):
   18565             :  *         if ndim == 1:             # <<<<<<<<<<<<<<
   18566             :  *             if inc:
   18567             :  *                 Py_INCREF((<PyObject **> data)[0])
   18568             :  */
   18569           0 :     __pyx_t_4 = (__pyx_v_ndim == 1);
   18570           0 :     if (__pyx_t_4) {
   18571             : 
   18572             :       /* "View.MemoryView":1378
   18573             :  *     for i in range(shape[0]):
   18574             :  *         if ndim == 1:
   18575             :  *             if inc:             # <<<<<<<<<<<<<<
   18576             :  *                 Py_INCREF((<PyObject **> data)[0])
   18577             :  *             else:
   18578             :  */
   18579           0 :       if (__pyx_v_inc) {
   18580             : 
   18581             :         /* "View.MemoryView":1379
   18582             :  *         if ndim == 1:
   18583             :  *             if inc:
   18584             :  *                 Py_INCREF((<PyObject **> data)[0])             # <<<<<<<<<<<<<<
   18585             :  *             else:
   18586             :  *                 Py_DECREF((<PyObject **> data)[0])
   18587             :  */
   18588           0 :         Py_INCREF((((PyObject **)__pyx_v_data)[0]));
   18589             : 
   18590             :         /* "View.MemoryView":1378
   18591             :  *     for i in range(shape[0]):
   18592             :  *         if ndim == 1:
   18593             :  *             if inc:             # <<<<<<<<<<<<<<
   18594             :  *                 Py_INCREF((<PyObject **> data)[0])
   18595             :  *             else:
   18596             :  */
   18597           0 :         goto __pyx_L6;
   18598             :       }
   18599             : 
   18600             :       /* "View.MemoryView":1381
   18601             :  *                 Py_INCREF((<PyObject **> data)[0])
   18602             :  *             else:
   18603             :  *                 Py_DECREF((<PyObject **> data)[0])             # <<<<<<<<<<<<<<
   18604             :  *         else:
   18605             :  *             refcount_objects_in_slice(data, shape + 1, strides + 1, ndim - 1, inc)
   18606             :  */
   18607             :       /*else*/ {
   18608           0 :         Py_DECREF((((PyObject **)__pyx_v_data)[0]));
   18609             :       }
   18610           0 :       __pyx_L6:;
   18611             : 
   18612             :       /* "View.MemoryView":1377
   18613             :  * 
   18614             :  *     for i in range(shape[0]):
   18615             :  *         if ndim == 1:             # <<<<<<<<<<<<<<
   18616             :  *             if inc:
   18617             :  *                 Py_INCREF((<PyObject **> data)[0])
   18618             :  */
   18619           0 :       goto __pyx_L5;
   18620             :     }
   18621             : 
   18622             :     /* "View.MemoryView":1383
   18623             :  *                 Py_DECREF((<PyObject **> data)[0])
   18624             :  *         else:
   18625             :  *             refcount_objects_in_slice(data, shape + 1, strides + 1, ndim - 1, inc)             # <<<<<<<<<<<<<<
   18626             :  * 
   18627             :  *         data += stride
   18628             :  */
   18629             :     /*else*/ {
   18630           0 :       __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_inc);
   18631             :     }
   18632           0 :     __pyx_L5:;
   18633             : 
   18634             :     /* "View.MemoryView":1385
   18635             :  *             refcount_objects_in_slice(data, shape + 1, strides + 1, ndim - 1, inc)
   18636             :  * 
   18637             :  *         data += stride             # <<<<<<<<<<<<<<
   18638             :  * 
   18639             :  * 
   18640             :  */
   18641           0 :     __pyx_v_data = (__pyx_v_data + __pyx_v_stride);
   18642             :   }
   18643             : 
   18644             :   /* "View.MemoryView":1371
   18645             :  * 
   18646             :  * @cname('__pyx_memoryview_refcount_objects_in_slice')
   18647             :  * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape,             # <<<<<<<<<<<<<<
   18648             :  *                                     Py_ssize_t *strides, int ndim, bint inc) noexcept:
   18649             :  *     cdef Py_ssize_t i
   18650             :  */
   18651             : 
   18652             :   /* function exit code */
   18653           0 : }
   18654             : 
   18655             : /* "View.MemoryView":1391
   18656             :  * 
   18657             :  * @cname('__pyx_memoryview_slice_assign_scalar')
   18658             :  * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim,             # <<<<<<<<<<<<<<
   18659             :  *                               size_t itemsize, void *item,
   18660             :  *                               bint dtype_is_object) noexcept nogil:
   18661             :  */
   18662             : 
   18663           0 : static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item, int __pyx_v_dtype_is_object) {
   18664             : 
   18665             :   /* "View.MemoryView":1394
   18666             :  *                               size_t itemsize, void *item,
   18667             :  *                               bint dtype_is_object) noexcept nogil:
   18668             :  *     refcount_copying(dst, dtype_is_object, ndim, inc=False)             # <<<<<<<<<<<<<<
   18669             :  *     _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, itemsize, item)
   18670             :  *     refcount_copying(dst, dtype_is_object, ndim, inc=True)
   18671             :  */
   18672           0 :   __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 0);
   18673             : 
   18674             :   /* "View.MemoryView":1395
   18675             :  *                               bint dtype_is_object) noexcept nogil:
   18676             :  *     refcount_copying(dst, dtype_is_object, ndim, inc=False)
   18677             :  *     _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, itemsize, item)             # <<<<<<<<<<<<<<
   18678             :  *     refcount_copying(dst, dtype_is_object, ndim, inc=True)
   18679             :  * 
   18680             :  */
   18681           0 :   __pyx_memoryview__slice_assign_scalar(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_itemsize, __pyx_v_item);
   18682             : 
   18683             :   /* "View.MemoryView":1396
   18684             :  *     refcount_copying(dst, dtype_is_object, ndim, inc=False)
   18685             :  *     _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, itemsize, item)
   18686             :  *     refcount_copying(dst, dtype_is_object, ndim, inc=True)             # <<<<<<<<<<<<<<
   18687             :  * 
   18688             :  * 
   18689             :  */
   18690           0 :   __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 1);
   18691             : 
   18692             :   /* "View.MemoryView":1391
   18693             :  * 
   18694             :  * @cname('__pyx_memoryview_slice_assign_scalar')
   18695             :  * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim,             # <<<<<<<<<<<<<<
   18696             :  *                               size_t itemsize, void *item,
   18697             :  *                               bint dtype_is_object) noexcept nogil:
   18698             :  */
   18699             : 
   18700             :   /* function exit code */
   18701           0 : }
   18702             : 
   18703             : /* "View.MemoryView":1400
   18704             :  * 
   18705             :  * @cname('__pyx_memoryview__slice_assign_scalar')
   18706             :  * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape,             # <<<<<<<<<<<<<<
   18707             :  *                               Py_ssize_t *strides, int ndim,
   18708             :  *                               size_t itemsize, void *item) noexcept nogil:
   18709             :  */
   18710             : 
   18711           0 : static void __pyx_memoryview__slice_assign_scalar(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item) {
   18712           0 :   CYTHON_UNUSED Py_ssize_t __pyx_v_i;
   18713           0 :   Py_ssize_t __pyx_v_stride;
   18714           0 :   Py_ssize_t __pyx_v_extent;
   18715           0 :   int __pyx_t_1;
   18716           0 :   Py_ssize_t __pyx_t_2;
   18717           0 :   Py_ssize_t __pyx_t_3;
   18718           0 :   Py_ssize_t __pyx_t_4;
   18719             : 
   18720             :   /* "View.MemoryView":1404
   18721             :  *                               size_t itemsize, void *item) noexcept nogil:
   18722             :  *     cdef Py_ssize_t i
   18723             :  *     cdef Py_ssize_t stride = strides[0]             # <<<<<<<<<<<<<<
   18724             :  *     cdef Py_ssize_t extent = shape[0]
   18725             :  * 
   18726             :  */
   18727           0 :   __pyx_v_stride = (__pyx_v_strides[0]);
   18728             : 
   18729             :   /* "View.MemoryView":1405
   18730             :  *     cdef Py_ssize_t i
   18731             :  *     cdef Py_ssize_t stride = strides[0]
   18732             :  *     cdef Py_ssize_t extent = shape[0]             # <<<<<<<<<<<<<<
   18733             :  * 
   18734             :  *     if ndim == 1:
   18735             :  */
   18736           0 :   __pyx_v_extent = (__pyx_v_shape[0]);
   18737             : 
   18738             :   /* "View.MemoryView":1407
   18739             :  *     cdef Py_ssize_t extent = shape[0]
   18740             :  * 
   18741             :  *     if ndim == 1:             # <<<<<<<<<<<<<<
   18742             :  *         for i in range(extent):
   18743             :  *             memcpy(data, item, itemsize)
   18744             :  */
   18745           0 :   __pyx_t_1 = (__pyx_v_ndim == 1);
   18746           0 :   if (__pyx_t_1) {
   18747             : 
   18748             :     /* "View.MemoryView":1408
   18749             :  * 
   18750             :  *     if ndim == 1:
   18751             :  *         for i in range(extent):             # <<<<<<<<<<<<<<
   18752             :  *             memcpy(data, item, itemsize)
   18753             :  *             data += stride
   18754             :  */
   18755             :     __pyx_t_2 = __pyx_v_extent;
   18756             :     __pyx_t_3 = __pyx_t_2;
   18757           0 :     for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
   18758           0 :       __pyx_v_i = __pyx_t_4;
   18759             : 
   18760             :       /* "View.MemoryView":1409
   18761             :  *     if ndim == 1:
   18762             :  *         for i in range(extent):
   18763             :  *             memcpy(data, item, itemsize)             # <<<<<<<<<<<<<<
   18764             :  *             data += stride
   18765             :  *     else:
   18766             :  */
   18767           0 :       (void)(memcpy(__pyx_v_data, __pyx_v_item, __pyx_v_itemsize));
   18768             : 
   18769             :       /* "View.MemoryView":1410
   18770             :  *         for i in range(extent):
   18771             :  *             memcpy(data, item, itemsize)
   18772             :  *             data += stride             # <<<<<<<<<<<<<<
   18773             :  *     else:
   18774             :  *         for i in range(extent):
   18775             :  */
   18776           0 :       __pyx_v_data = (__pyx_v_data + __pyx_v_stride);
   18777             :     }
   18778             : 
   18779             :     /* "View.MemoryView":1407
   18780             :  *     cdef Py_ssize_t extent = shape[0]
   18781             :  * 
   18782             :  *     if ndim == 1:             # <<<<<<<<<<<<<<
   18783             :  *         for i in range(extent):
   18784             :  *             memcpy(data, item, itemsize)
   18785             :  */
   18786           0 :     goto __pyx_L3;
   18787             :   }
   18788             : 
   18789             :   /* "View.MemoryView":1412
   18790             :  *             data += stride
   18791             :  *     else:
   18792             :  *         for i in range(extent):             # <<<<<<<<<<<<<<
   18793             :  *             _slice_assign_scalar(data, shape + 1, strides + 1, ndim - 1, itemsize, item)
   18794             :  *             data += stride
   18795             :  */
   18796             :   /*else*/ {
   18797             :     __pyx_t_2 = __pyx_v_extent;
   18798             :     __pyx_t_3 = __pyx_t_2;
   18799           0 :     for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
   18800           0 :       __pyx_v_i = __pyx_t_4;
   18801             : 
   18802             :       /* "View.MemoryView":1413
   18803             :  *     else:
   18804             :  *         for i in range(extent):
   18805             :  *             _slice_assign_scalar(data, shape + 1, strides + 1, ndim - 1, itemsize, item)             # <<<<<<<<<<<<<<
   18806             :  *             data += stride
   18807             :  * 
   18808             :  */
   18809           0 :       __pyx_memoryview__slice_assign_scalar(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize, __pyx_v_item);
   18810             : 
   18811             :       /* "View.MemoryView":1414
   18812             :  *         for i in range(extent):
   18813             :  *             _slice_assign_scalar(data, shape + 1, strides + 1, ndim - 1, itemsize, item)
   18814             :  *             data += stride             # <<<<<<<<<<<<<<
   18815             :  * 
   18816             :  * 
   18817             :  */
   18818           0 :       __pyx_v_data = (__pyx_v_data + __pyx_v_stride);
   18819             :     }
   18820             :   }
   18821           0 :   __pyx_L3:;
   18822             : 
   18823             :   /* "View.MemoryView":1400
   18824             :  * 
   18825             :  * @cname('__pyx_memoryview__slice_assign_scalar')
   18826             :  * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape,             # <<<<<<<<<<<<<<
   18827             :  *                               Py_ssize_t *strides, int ndim,
   18828             :  *                               size_t itemsize, void *item) noexcept nogil:
   18829             :  */
   18830             : 
   18831             :   /* function exit code */
   18832           0 : }
   18833             : 
   18834             : /* "(tree fragment)":1
   18835             :  * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
   18836             :  *     cdef object __pyx_PickleError
   18837             :  *     cdef object __pyx_result
   18838             :  */
   18839             : 
   18840             : /* Python wrapper */
   18841             : static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, 
   18842             : #if CYTHON_METH_FASTCALL
   18843             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   18844             : #else
   18845             : PyObject *__pyx_args, PyObject *__pyx_kwds
   18846             : #endif
   18847             : ); /*proto*/
   18848             : static PyMethodDef __pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum = {"__pyx_unpickle_Enum", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   18849           0 : static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, 
   18850             : #if CYTHON_METH_FASTCALL
   18851             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   18852             : #else
   18853             : PyObject *__pyx_args, PyObject *__pyx_kwds
   18854             : #endif
   18855             : ) {
   18856           0 :   PyObject *__pyx_v___pyx_type = 0;
   18857           0 :   long __pyx_v___pyx_checksum;
   18858           0 :   PyObject *__pyx_v___pyx_state = 0;
   18859             :   #if !CYTHON_METH_FASTCALL
   18860             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   18861             :   #endif
   18862           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   18863           0 :   PyObject* values[3] = {0,0,0};
   18864           0 :   int __pyx_lineno = 0;
   18865           0 :   const char *__pyx_filename = NULL;
   18866           0 :   int __pyx_clineno = 0;
   18867           0 :   PyObject *__pyx_r = 0;
   18868             :   __Pyx_RefNannyDeclarations
   18869           0 :   __Pyx_RefNannySetupContext("__pyx_unpickle_Enum (wrapper)", 0);
   18870             :   #if !CYTHON_METH_FASTCALL
   18871             :   #if CYTHON_ASSUME_SAFE_MACROS
   18872             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   18873             :   #else
   18874             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   18875             :   #endif
   18876             :   #endif
   18877           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   18878             :   {
   18879           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
   18880           0 :     if (__pyx_kwds) {
   18881           0 :       Py_ssize_t kw_args;
   18882           0 :       switch (__pyx_nargs) {
   18883           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   18884           0 :         CYTHON_FALLTHROUGH;
   18885           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   18886           0 :         CYTHON_FALLTHROUGH;
   18887           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   18888           0 :         CYTHON_FALLTHROUGH;
   18889           0 :         case  0: break;
   18890           0 :         default: goto __pyx_L5_argtuple_error;
   18891             :       }
   18892           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   18893           0 :       switch (__pyx_nargs) {
   18894           0 :         case  0:
   18895           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
   18896           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   18897           0 :           kw_args--;
   18898             :         }
   18899           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
   18900           0 :         else goto __pyx_L5_argtuple_error;
   18901           0 :         CYTHON_FALLTHROUGH;
   18902             :         case  1:
   18903           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
   18904           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   18905           0 :           kw_args--;
   18906             :         }
   18907           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
   18908             :         else {
   18909           0 :           __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
   18910             :         }
   18911           0 :         CYTHON_FALLTHROUGH;
   18912             :         case  2:
   18913           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
   18914           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   18915           0 :           kw_args--;
   18916             :         }
   18917           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
   18918             :         else {
   18919           0 :           __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
   18920             :         }
   18921             :       }
   18922           0 :       if (unlikely(kw_args > 0)) {
   18923           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   18924           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Enum") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
   18925             :       }
   18926           0 :     } else if (unlikely(__pyx_nargs != 3)) {
   18927           0 :       goto __pyx_L5_argtuple_error;
   18928             :     } else {
   18929           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   18930           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   18931           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   18932             :     }
   18933           0 :     __pyx_v___pyx_type = values[0];
   18934           0 :     __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
   18935           0 :     __pyx_v___pyx_state = values[2];
   18936             :   }
   18937           0 :   goto __pyx_L6_skip;
   18938           0 :   __pyx_L5_argtuple_error:;
   18939           0 :   __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
   18940           0 :   __pyx_L6_skip:;
   18941           0 :   goto __pyx_L4_argument_unpacking_done;
   18942           0 :   __pyx_L3_error:;
   18943             :   {
   18944           0 :     Py_ssize_t __pyx_temp;
   18945           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   18946             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   18947             :     }
   18948             :   }
   18949           0 :   __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename);
   18950           0 :   __Pyx_RefNannyFinishContext();
   18951           0 :   return NULL;
   18952           0 :   __pyx_L4_argument_unpacking_done:;
   18953           0 :   __pyx_r = __pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);
   18954             : 
   18955             :   /* function exit code */
   18956             :   {
   18957           0 :     Py_ssize_t __pyx_temp;
   18958           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   18959             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   18960             :     }
   18961             :   }
   18962             :   __Pyx_RefNannyFinishContext();
   18963             :   return __pyx_r;
   18964             : }
   18965             : 
   18966           0 : static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
   18967           0 :   PyObject *__pyx_v___pyx_PickleError = 0;
   18968           0 :   PyObject *__pyx_v___pyx_result = 0;
   18969           0 :   PyObject *__pyx_r = NULL;
   18970             :   __Pyx_RefNannyDeclarations
   18971           0 :   PyObject *__pyx_t_1 = NULL;
   18972           0 :   int __pyx_t_2;
   18973           0 :   PyObject *__pyx_t_3 = NULL;
   18974           0 :   PyObject *__pyx_t_4 = NULL;
   18975           0 :   unsigned int __pyx_t_5;
   18976           0 :   int __pyx_lineno = 0;
   18977           0 :   const char *__pyx_filename = NULL;
   18978           0 :   int __pyx_clineno = 0;
   18979           0 :   __Pyx_RefNannySetupContext("__pyx_unpickle_Enum", 1);
   18980             : 
   18981             :   /* "(tree fragment)":4
   18982             :  *     cdef object __pyx_PickleError
   18983             :  *     cdef object __pyx_result
   18984             :  *     if __pyx_checksum not in (0x82a3537, 0x6ae9995, 0xb068931):             # <<<<<<<<<<<<<<
   18985             :  *         from pickle import PickleError as __pyx_PickleError
   18986             :  *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
   18987             :  */
   18988           0 :   __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
   18989           0 :   __Pyx_GOTREF(__pyx_t_1);
   18990           0 :   __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__8, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
   18991           0 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   18992           0 :   if (__pyx_t_2) {
   18993             : 
   18994             :     /* "(tree fragment)":5
   18995             :  *     cdef object __pyx_result
   18996             :  *     if __pyx_checksum not in (0x82a3537, 0x6ae9995, 0xb068931):
   18997             :  *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
   18998             :  *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
   18999             :  *     __pyx_result = Enum.__new__(__pyx_type)
   19000             :  */
   19001           0 :     __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
   19002           0 :     __Pyx_GOTREF(__pyx_t_1);
   19003           0 :     __Pyx_INCREF(__pyx_n_s_PickleError);
   19004           0 :     __Pyx_GIVEREF(__pyx_n_s_PickleError);
   19005           0 :     if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
   19006           0 :     __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
   19007           0 :     __Pyx_GOTREF(__pyx_t_3);
   19008           0 :     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   19009           0 :     __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
   19010           0 :     __Pyx_GOTREF(__pyx_t_1);
   19011           0 :     __Pyx_INCREF(__pyx_t_1);
   19012           0 :     __pyx_v___pyx_PickleError = __pyx_t_1;
   19013           0 :     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   19014           0 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   19015             : 
   19016             :     /* "(tree fragment)":6
   19017             :  *     if __pyx_checksum not in (0x82a3537, 0x6ae9995, 0xb068931):
   19018             :  *         from pickle import PickleError as __pyx_PickleError
   19019             :  *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum             # <<<<<<<<<<<<<<
   19020             :  *     __pyx_result = Enum.__new__(__pyx_type)
   19021             :  *     if __pyx_state is not None:
   19022             :  */
   19023           0 :     __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
   19024           0 :     __Pyx_GOTREF(__pyx_t_3);
   19025           0 :     __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
   19026           0 :     __Pyx_GOTREF(__pyx_t_1);
   19027           0 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   19028           0 :     __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
   19029           0 :     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   19030           0 :     __PYX_ERR(1, 6, __pyx_L1_error)
   19031             : 
   19032             :     /* "(tree fragment)":4
   19033             :  *     cdef object __pyx_PickleError
   19034             :  *     cdef object __pyx_result
   19035             :  *     if __pyx_checksum not in (0x82a3537, 0x6ae9995, 0xb068931):             # <<<<<<<<<<<<<<
   19036             :  *         from pickle import PickleError as __pyx_PickleError
   19037             :  *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
   19038             :  */
   19039             :   }
   19040             : 
   19041             :   /* "(tree fragment)":7
   19042             :  *         from pickle import PickleError as __pyx_PickleError
   19043             :  *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
   19044             :  *     __pyx_result = Enum.__new__(__pyx_type)             # <<<<<<<<<<<<<<
   19045             :  *     if __pyx_state is not None:
   19046             :  *         __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
   19047             :  */
   19048           0 :   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_MemviewEnum_type), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
   19049           0 :   __Pyx_GOTREF(__pyx_t_3);
   19050           0 :   __pyx_t_4 = NULL;
   19051           0 :   __pyx_t_5 = 0;
   19052             :   #if CYTHON_UNPACK_METHODS
   19053           0 :   if (likely(PyMethod_Check(__pyx_t_3))) {
   19054           0 :     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
   19055           0 :     if (likely(__pyx_t_4)) {
   19056           0 :       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
   19057           0 :       __Pyx_INCREF(__pyx_t_4);
   19058           0 :       __Pyx_INCREF(function);
   19059           0 :       __Pyx_DECREF_SET(__pyx_t_3, function);
   19060             :       __pyx_t_5 = 1;
   19061             :     }
   19062             :   }
   19063             :   #endif
   19064             :   {
   19065           0 :     PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
   19066           0 :     __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
   19067           0 :     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
   19068           0 :     if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
   19069           0 :     __Pyx_GOTREF(__pyx_t_1);
   19070           0 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   19071             :   }
   19072           0 :   __pyx_v___pyx_result = __pyx_t_1;
   19073           0 :   __pyx_t_1 = 0;
   19074             : 
   19075             :   /* "(tree fragment)":8
   19076             :  *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
   19077             :  *     __pyx_result = Enum.__new__(__pyx_type)
   19078             :  *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
   19079             :  *         __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
   19080             :  *     return __pyx_result
   19081             :  */
   19082           0 :   __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
   19083           0 :   if (__pyx_t_2) {
   19084             : 
   19085             :     /* "(tree fragment)":9
   19086             :  *     __pyx_result = Enum.__new__(__pyx_type)
   19087             :  *     if __pyx_state is not None:
   19088             :  *         __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
   19089             :  *     return __pyx_result
   19090             :  * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
   19091             :  */
   19092           0 :     if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
   19093           0 :     __pyx_t_1 = __pyx_unpickle_Enum__set_state(((struct __pyx_MemviewEnum_obj *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
   19094           0 :     __Pyx_GOTREF(__pyx_t_1);
   19095           0 :     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   19096             : 
   19097             :     /* "(tree fragment)":8
   19098             :  *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
   19099             :  *     __pyx_result = Enum.__new__(__pyx_type)
   19100             :  *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
   19101             :  *         __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
   19102             :  *     return __pyx_result
   19103             :  */
   19104             :   }
   19105             : 
   19106             :   /* "(tree fragment)":10
   19107             :  *     if __pyx_state is not None:
   19108             :  *         __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
   19109             :  *     return __pyx_result             # <<<<<<<<<<<<<<
   19110             :  * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
   19111             :  *     __pyx_result.name = __pyx_state[0]
   19112             :  */
   19113           0 :   __Pyx_XDECREF(__pyx_r);
   19114           0 :   __Pyx_INCREF(__pyx_v___pyx_result);
   19115           0 :   __pyx_r = __pyx_v___pyx_result;
   19116           0 :   goto __pyx_L0;
   19117             : 
   19118             :   /* "(tree fragment)":1
   19119             :  * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
   19120             :  *     cdef object __pyx_PickleError
   19121             :  *     cdef object __pyx_result
   19122             :  */
   19123             : 
   19124             :   /* function exit code */
   19125           0 :   __pyx_L1_error:;
   19126           0 :   __Pyx_XDECREF(__pyx_t_1);
   19127           0 :   __Pyx_XDECREF(__pyx_t_3);
   19128           0 :   __Pyx_XDECREF(__pyx_t_4);
   19129           0 :   __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename);
   19130           0 :   __pyx_r = NULL;
   19131           0 :   __pyx_L0:;
   19132           0 :   __Pyx_XDECREF(__pyx_v___pyx_PickleError);
   19133           0 :   __Pyx_XDECREF(__pyx_v___pyx_result);
   19134           0 :   __Pyx_XGIVEREF(__pyx_r);
   19135           0 :   __Pyx_RefNannyFinishContext();
   19136           0 :   return __pyx_r;
   19137             : }
   19138             : 
   19139             : /* "(tree fragment)":11
   19140             :  *         __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
   19141             :  *     return __pyx_result
   19142             :  * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
   19143             :  *     __pyx_result.name = __pyx_state[0]
   19144             :  *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
   19145             :  */
   19146             : 
   19147           0 : static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
   19148           0 :   PyObject *__pyx_r = NULL;
   19149             :   __Pyx_RefNannyDeclarations
   19150           0 :   PyObject *__pyx_t_1 = NULL;
   19151           0 :   int __pyx_t_2;
   19152           0 :   Py_ssize_t __pyx_t_3;
   19153           0 :   int __pyx_t_4;
   19154           0 :   PyObject *__pyx_t_5 = NULL;
   19155           0 :   PyObject *__pyx_t_6 = NULL;
   19156           0 :   PyObject *__pyx_t_7 = NULL;
   19157           0 :   unsigned int __pyx_t_8;
   19158           0 :   int __pyx_lineno = 0;
   19159           0 :   const char *__pyx_filename = NULL;
   19160           0 :   int __pyx_clineno = 0;
   19161           0 :   __Pyx_RefNannySetupContext("__pyx_unpickle_Enum__set_state", 1);
   19162             : 
   19163             :   /* "(tree fragment)":12
   19164             :  *     return __pyx_result
   19165             :  * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
   19166             :  *     __pyx_result.name = __pyx_state[0]             # <<<<<<<<<<<<<<
   19167             :  *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
   19168             :  *         __pyx_result.__dict__.update(__pyx_state[1])
   19169             :  */
   19170           0 :   if (unlikely(__pyx_v___pyx_state == Py_None)) {
   19171           0 :     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   19172           0 :     __PYX_ERR(1, 12, __pyx_L1_error)
   19173             :   }
   19174           0 :   __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
   19175           0 :   __Pyx_GOTREF(__pyx_t_1);
   19176           0 :   __Pyx_GIVEREF(__pyx_t_1);
   19177           0 :   __Pyx_GOTREF(__pyx_v___pyx_result->name);
   19178           0 :   __Pyx_DECREF(__pyx_v___pyx_result->name);
   19179           0 :   __pyx_v___pyx_result->name = __pyx_t_1;
   19180           0 :   __pyx_t_1 = 0;
   19181             : 
   19182             :   /* "(tree fragment)":13
   19183             :  * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
   19184             :  *     __pyx_result.name = __pyx_state[0]
   19185             :  *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
   19186             :  *         __pyx_result.__dict__.update(__pyx_state[1])
   19187             :  */
   19188           0 :   if (unlikely(__pyx_v___pyx_state == Py_None)) {
   19189             :     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   19190             :     __PYX_ERR(1, 13, __pyx_L1_error)
   19191             :   }
   19192           0 :   __pyx_t_3 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
   19193           0 :   __pyx_t_4 = (__pyx_t_3 > 1);
   19194           0 :   if (__pyx_t_4) {
   19195           0 :   } else {
   19196           0 :     __pyx_t_2 = __pyx_t_4;
   19197           0 :     goto __pyx_L4_bool_binop_done;
   19198             :   }
   19199           0 :   __pyx_t_4 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
   19200             :   __pyx_t_2 = __pyx_t_4;
   19201           0 :   __pyx_L4_bool_binop_done:;
   19202           0 :   if (__pyx_t_2) {
   19203             : 
   19204             :     /* "(tree fragment)":14
   19205             :  *     __pyx_result.name = __pyx_state[0]
   19206             :  *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
   19207             :  *         __pyx_result.__dict__.update(__pyx_state[1])             # <<<<<<<<<<<<<<
   19208             :  */
   19209           0 :     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 14, __pyx_L1_error)
   19210           0 :     __Pyx_GOTREF(__pyx_t_5);
   19211           0 :     __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_update); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
   19212           0 :     __Pyx_GOTREF(__pyx_t_6);
   19213           0 :     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   19214           0 :     if (unlikely(__pyx_v___pyx_state == Py_None)) {
   19215             :       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   19216             :       __PYX_ERR(1, 14, __pyx_L1_error)
   19217             :     }
   19218           0 :     __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 14, __pyx_L1_error)
   19219           0 :     __Pyx_GOTREF(__pyx_t_5);
   19220           0 :     __pyx_t_7 = NULL;
   19221           0 :     __pyx_t_8 = 0;
   19222             :     #if CYTHON_UNPACK_METHODS
   19223           0 :     if (likely(PyMethod_Check(__pyx_t_6))) {
   19224           0 :       __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
   19225           0 :       if (likely(__pyx_t_7)) {
   19226           0 :         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
   19227           0 :         __Pyx_INCREF(__pyx_t_7);
   19228           0 :         __Pyx_INCREF(function);
   19229           0 :         __Pyx_DECREF_SET(__pyx_t_6, function);
   19230             :         __pyx_t_8 = 1;
   19231             :       }
   19232             :     }
   19233             :     #endif
   19234             :     {
   19235           0 :       PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
   19236           0 :       __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
   19237           0 :       __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
   19238           0 :       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   19239           0 :       if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
   19240           0 :       __Pyx_GOTREF(__pyx_t_1);
   19241           0 :       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   19242             :     }
   19243           0 :     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   19244             : 
   19245             :     /* "(tree fragment)":13
   19246             :  * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
   19247             :  *     __pyx_result.name = __pyx_state[0]
   19248             :  *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
   19249             :  *         __pyx_result.__dict__.update(__pyx_state[1])
   19250             :  */
   19251             :   }
   19252             : 
   19253             :   /* "(tree fragment)":11
   19254             :  *         __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
   19255             :  *     return __pyx_result
   19256             :  * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
   19257             :  *     __pyx_result.name = __pyx_state[0]
   19258             :  *     if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
   19259             :  */
   19260             : 
   19261             :   /* function exit code */
   19262           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   19263           0 :   goto __pyx_L0;
   19264           0 :   __pyx_L1_error:;
   19265           0 :   __Pyx_XDECREF(__pyx_t_1);
   19266           0 :   __Pyx_XDECREF(__pyx_t_5);
   19267           0 :   __Pyx_XDECREF(__pyx_t_6);
   19268           0 :   __Pyx_XDECREF(__pyx_t_7);
   19269           0 :   __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
   19270           0 :   __pyx_r = 0;
   19271           0 :   __pyx_L0:;
   19272           0 :   __Pyx_XGIVEREF(__pyx_r);
   19273           0 :   __Pyx_RefNannyFinishContext();
   19274           0 :   return __pyx_r;
   19275             : }
   19276             : 
   19277             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":286
   19278             :  * 
   19279             :  *         @property
   19280             :  *         cdef inline npy_intp itemsize(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19281             :  *             return PyDataType_ELSIZE(self)
   19282             :  * 
   19283             :  */
   19284             : 
   19285             : static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize_itemsize(PyArray_Descr *__pyx_v_self) {
   19286             :   npy_intp __pyx_r;
   19287             : 
   19288             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":287
   19289             :  *         @property
   19290             :  *         cdef inline npy_intp itemsize(self) noexcept nogil:
   19291             :  *             return PyDataType_ELSIZE(self)             # <<<<<<<<<<<<<<
   19292             :  * 
   19293             :  *         @property
   19294             :  */
   19295             :   __pyx_r = PyDataType_ELSIZE(__pyx_v_self);
   19296             :   goto __pyx_L0;
   19297             : 
   19298             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":286
   19299             :  * 
   19300             :  *         @property
   19301             :  *         cdef inline npy_intp itemsize(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19302             :  *             return PyDataType_ELSIZE(self)
   19303             :  * 
   19304             :  */
   19305             : 
   19306             :   /* function exit code */
   19307             :   __pyx_L0:;
   19308             :   return __pyx_r;
   19309             : }
   19310             : 
   19311             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":290
   19312             :  * 
   19313             :  *         @property
   19314             :  *         cdef inline npy_intp alignment(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19315             :  *             return PyDataType_ALIGNMENT(self)
   19316             :  * 
   19317             :  */
   19318             : 
   19319             : static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment_alignment(PyArray_Descr *__pyx_v_self) {
   19320             :   npy_intp __pyx_r;
   19321             : 
   19322             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":291
   19323             :  *         @property
   19324             :  *         cdef inline npy_intp alignment(self) noexcept nogil:
   19325             :  *             return PyDataType_ALIGNMENT(self)             # <<<<<<<<<<<<<<
   19326             :  * 
   19327             :  *         # Use fields/names with care as they may be NULL.  You must check
   19328             :  */
   19329             :   __pyx_r = PyDataType_ALIGNMENT(__pyx_v_self);
   19330             :   goto __pyx_L0;
   19331             : 
   19332             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":290
   19333             :  * 
   19334             :  *         @property
   19335             :  *         cdef inline npy_intp alignment(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19336             :  *             return PyDataType_ALIGNMENT(self)
   19337             :  * 
   19338             :  */
   19339             : 
   19340             :   /* function exit code */
   19341             :   __pyx_L0:;
   19342             :   return __pyx_r;
   19343             : }
   19344             : 
   19345             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":296
   19346             :  *         # for this using PyDataType_HASFIELDS.
   19347             :  *         @property
   19348             :  *         cdef inline object fields(self):             # <<<<<<<<<<<<<<
   19349             :  *             return <object>PyDataType_FIELDS(self)
   19350             :  * 
   19351             :  */
   19352             : 
   19353             : static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields_fields(PyArray_Descr *__pyx_v_self) {
   19354             :   PyObject *__pyx_r = NULL;
   19355             :   __Pyx_RefNannyDeclarations
   19356             :   PyObject *__pyx_t_1;
   19357             :   __Pyx_RefNannySetupContext("fields", 1);
   19358             : 
   19359             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":297
   19360             :  *         @property
   19361             :  *         cdef inline object fields(self):
   19362             :  *             return <object>PyDataType_FIELDS(self)             # <<<<<<<<<<<<<<
   19363             :  * 
   19364             :  *         @property
   19365             :  */
   19366             :   __Pyx_XDECREF(__pyx_r);
   19367             :   __pyx_t_1 = PyDataType_FIELDS(__pyx_v_self);
   19368             :   __Pyx_INCREF(((PyObject *)__pyx_t_1));
   19369             :   __pyx_r = ((PyObject *)__pyx_t_1);
   19370             :   goto __pyx_L0;
   19371             : 
   19372             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":296
   19373             :  *         # for this using PyDataType_HASFIELDS.
   19374             :  *         @property
   19375             :  *         cdef inline object fields(self):             # <<<<<<<<<<<<<<
   19376             :  *             return <object>PyDataType_FIELDS(self)
   19377             :  * 
   19378             :  */
   19379             : 
   19380             :   /* function exit code */
   19381             :   __pyx_L0:;
   19382             :   __Pyx_XGIVEREF(__pyx_r);
   19383             :   __Pyx_RefNannyFinishContext();
   19384             :   return __pyx_r;
   19385             : }
   19386             : 
   19387             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":300
   19388             :  * 
   19389             :  *         @property
   19390             :  *         cdef inline tuple names(self):             # <<<<<<<<<<<<<<
   19391             :  *             return <tuple>PyDataType_NAMES(self)
   19392             :  * 
   19393             :  */
   19394             : 
   19395             : static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names_names(PyArray_Descr *__pyx_v_self) {
   19396             :   PyObject *__pyx_r = NULL;
   19397             :   __Pyx_RefNannyDeclarations
   19398             :   PyObject *__pyx_t_1;
   19399             :   __Pyx_RefNannySetupContext("names", 1);
   19400             : 
   19401             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":301
   19402             :  *         @property
   19403             :  *         cdef inline tuple names(self):
   19404             :  *             return <tuple>PyDataType_NAMES(self)             # <<<<<<<<<<<<<<
   19405             :  * 
   19406             :  *         # Use PyDataType_HASSUBARRAY to test whether this field is
   19407             :  */
   19408             :   __Pyx_XDECREF(__pyx_r);
   19409             :   __pyx_t_1 = PyDataType_NAMES(__pyx_v_self);
   19410             :   __Pyx_INCREF(((PyObject*)__pyx_t_1));
   19411             :   __pyx_r = ((PyObject*)__pyx_t_1);
   19412             :   goto __pyx_L0;
   19413             : 
   19414             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":300
   19415             :  * 
   19416             :  *         @property
   19417             :  *         cdef inline tuple names(self):             # <<<<<<<<<<<<<<
   19418             :  *             return <tuple>PyDataType_NAMES(self)
   19419             :  * 
   19420             :  */
   19421             : 
   19422             :   /* function exit code */
   19423             :   __pyx_L0:;
   19424             :   __Pyx_XGIVEREF(__pyx_r);
   19425             :   __Pyx_RefNannyFinishContext();
   19426             :   return __pyx_r;
   19427             : }
   19428             : 
   19429             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":307
   19430             :  *         # this field via the inline helper method PyDataType_SHAPE.
   19431             :  *         @property
   19432             :  *         cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19433             :  *             return PyDataType_SUBARRAY(self)
   19434             :  * 
   19435             :  */
   19436             : 
   19437             : static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray_subarray(PyArray_Descr *__pyx_v_self) {
   19438             :   PyArray_ArrayDescr *__pyx_r;
   19439             : 
   19440             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":308
   19441             :  *         @property
   19442             :  *         cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:
   19443             :  *             return PyDataType_SUBARRAY(self)             # <<<<<<<<<<<<<<
   19444             :  * 
   19445             :  *         @property
   19446             :  */
   19447             :   __pyx_r = PyDataType_SUBARRAY(__pyx_v_self);
   19448             :   goto __pyx_L0;
   19449             : 
   19450             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":307
   19451             :  *         # this field via the inline helper method PyDataType_SHAPE.
   19452             :  *         @property
   19453             :  *         cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19454             :  *             return PyDataType_SUBARRAY(self)
   19455             :  * 
   19456             :  */
   19457             : 
   19458             :   /* function exit code */
   19459             :   __pyx_L0:;
   19460             :   return __pyx_r;
   19461             : }
   19462             : 
   19463             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":311
   19464             :  * 
   19465             :  *         @property
   19466             :  *         cdef inline npy_uint64 flags(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19467             :  *             """The data types flags."""
   19468             :  *             return PyDataType_FLAGS(self)
   19469             :  */
   19470             : 
   19471             : static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags_flags(PyArray_Descr *__pyx_v_self) {
   19472             :   npy_uint64 __pyx_r;
   19473             : 
   19474             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":313
   19475             :  *         cdef inline npy_uint64 flags(self) noexcept nogil:
   19476             :  *             """The data types flags."""
   19477             :  *             return PyDataType_FLAGS(self)             # <<<<<<<<<<<<<<
   19478             :  * 
   19479             :  * 
   19480             :  */
   19481             :   __pyx_r = PyDataType_FLAGS(__pyx_v_self);
   19482             :   goto __pyx_L0;
   19483             : 
   19484             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":311
   19485             :  * 
   19486             :  *         @property
   19487             :  *         cdef inline npy_uint64 flags(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19488             :  *             """The data types flags."""
   19489             :  *             return PyDataType_FLAGS(self)
   19490             :  */
   19491             : 
   19492             :   /* function exit code */
   19493             :   __pyx_L0:;
   19494             :   return __pyx_r;
   19495             : }
   19496             : 
   19497             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":323
   19498             :  * 
   19499             :  *         @property
   19500             :  *         cdef inline int numiter(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19501             :  *             """The number of arrays that need to be broadcast to the same shape."""
   19502             :  *             return PyArray_MultiIter_NUMITER(self)
   19503             :  */
   19504             : 
   19505             : static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter_numiter(PyArrayMultiIterObject *__pyx_v_self) {
   19506             :   int __pyx_r;
   19507             : 
   19508             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":325
   19509             :  *         cdef inline int numiter(self) noexcept nogil:
   19510             :  *             """The number of arrays that need to be broadcast to the same shape."""
   19511             :  *             return PyArray_MultiIter_NUMITER(self)             # <<<<<<<<<<<<<<
   19512             :  * 
   19513             :  *         @property
   19514             :  */
   19515             :   __pyx_r = PyArray_MultiIter_NUMITER(__pyx_v_self);
   19516             :   goto __pyx_L0;
   19517             : 
   19518             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":323
   19519             :  * 
   19520             :  *         @property
   19521             :  *         cdef inline int numiter(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19522             :  *             """The number of arrays that need to be broadcast to the same shape."""
   19523             :  *             return PyArray_MultiIter_NUMITER(self)
   19524             :  */
   19525             : 
   19526             :   /* function exit code */
   19527             :   __pyx_L0:;
   19528             :   return __pyx_r;
   19529             : }
   19530             : 
   19531             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":328
   19532             :  * 
   19533             :  *         @property
   19534             :  *         cdef inline npy_intp size(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19535             :  *             """The total broadcasted size."""
   19536             :  *             return PyArray_MultiIter_SIZE(self)
   19537             :  */
   19538             : 
   19539             : static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size_size(PyArrayMultiIterObject *__pyx_v_self) {
   19540             :   npy_intp __pyx_r;
   19541             : 
   19542             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":330
   19543             :  *         cdef inline npy_intp size(self) noexcept nogil:
   19544             :  *             """The total broadcasted size."""
   19545             :  *             return PyArray_MultiIter_SIZE(self)             # <<<<<<<<<<<<<<
   19546             :  * 
   19547             :  *         @property
   19548             :  */
   19549             :   __pyx_r = PyArray_MultiIter_SIZE(__pyx_v_self);
   19550             :   goto __pyx_L0;
   19551             : 
   19552             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":328
   19553             :  * 
   19554             :  *         @property
   19555             :  *         cdef inline npy_intp size(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19556             :  *             """The total broadcasted size."""
   19557             :  *             return PyArray_MultiIter_SIZE(self)
   19558             :  */
   19559             : 
   19560             :   /* function exit code */
   19561             :   __pyx_L0:;
   19562             :   return __pyx_r;
   19563             : }
   19564             : 
   19565             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":333
   19566             :  * 
   19567             :  *         @property
   19568             :  *         cdef inline npy_intp index(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19569             :  *             """The current (1-d) index into the broadcasted result."""
   19570             :  *             return PyArray_MultiIter_INDEX(self)
   19571             :  */
   19572             : 
   19573             : static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index_index(PyArrayMultiIterObject *__pyx_v_self) {
   19574             :   npy_intp __pyx_r;
   19575             : 
   19576             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":335
   19577             :  *         cdef inline npy_intp index(self) noexcept nogil:
   19578             :  *             """The current (1-d) index into the broadcasted result."""
   19579             :  *             return PyArray_MultiIter_INDEX(self)             # <<<<<<<<<<<<<<
   19580             :  * 
   19581             :  *         @property
   19582             :  */
   19583             :   __pyx_r = PyArray_MultiIter_INDEX(__pyx_v_self);
   19584             :   goto __pyx_L0;
   19585             : 
   19586             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":333
   19587             :  * 
   19588             :  *         @property
   19589             :  *         cdef inline npy_intp index(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19590             :  *             """The current (1-d) index into the broadcasted result."""
   19591             :  *             return PyArray_MultiIter_INDEX(self)
   19592             :  */
   19593             : 
   19594             :   /* function exit code */
   19595             :   __pyx_L0:;
   19596             :   return __pyx_r;
   19597             : }
   19598             : 
   19599             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":338
   19600             :  * 
   19601             :  *         @property
   19602             :  *         cdef inline int nd(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19603             :  *             """The number of dimensions in the broadcasted result."""
   19604             :  *             return PyArray_MultiIter_NDIM(self)
   19605             :  */
   19606             : 
   19607             : static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd_nd(PyArrayMultiIterObject *__pyx_v_self) {
   19608             :   int __pyx_r;
   19609             : 
   19610             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":340
   19611             :  *         cdef inline int nd(self) noexcept nogil:
   19612             :  *             """The number of dimensions in the broadcasted result."""
   19613             :  *             return PyArray_MultiIter_NDIM(self)             # <<<<<<<<<<<<<<
   19614             :  * 
   19615             :  *         @property
   19616             :  */
   19617             :   __pyx_r = PyArray_MultiIter_NDIM(__pyx_v_self);
   19618             :   goto __pyx_L0;
   19619             : 
   19620             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":338
   19621             :  * 
   19622             :  *         @property
   19623             :  *         cdef inline int nd(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19624             :  *             """The number of dimensions in the broadcasted result."""
   19625             :  *             return PyArray_MultiIter_NDIM(self)
   19626             :  */
   19627             : 
   19628             :   /* function exit code */
   19629             :   __pyx_L0:;
   19630             :   return __pyx_r;
   19631             : }
   19632             : 
   19633             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":343
   19634             :  * 
   19635             :  *         @property
   19636             :  *         cdef inline npy_intp* dimensions(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19637             :  *             """The shape of the broadcasted result."""
   19638             :  *             return PyArray_MultiIter_DIMS(self)
   19639             :  */
   19640             : 
   19641             : static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions_dimensions(PyArrayMultiIterObject *__pyx_v_self) {
   19642             :   npy_intp *__pyx_r;
   19643             : 
   19644             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":345
   19645             :  *         cdef inline npy_intp* dimensions(self) noexcept nogil:
   19646             :  *             """The shape of the broadcasted result."""
   19647             :  *             return PyArray_MultiIter_DIMS(self)             # <<<<<<<<<<<<<<
   19648             :  * 
   19649             :  *         @property
   19650             :  */
   19651             :   __pyx_r = PyArray_MultiIter_DIMS(__pyx_v_self);
   19652             :   goto __pyx_L0;
   19653             : 
   19654             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":343
   19655             :  * 
   19656             :  *         @property
   19657             :  *         cdef inline npy_intp* dimensions(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19658             :  *             """The shape of the broadcasted result."""
   19659             :  *             return PyArray_MultiIter_DIMS(self)
   19660             :  */
   19661             : 
   19662             :   /* function exit code */
   19663             :   __pyx_L0:;
   19664             :   return __pyx_r;
   19665             : }
   19666             : 
   19667             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":348
   19668             :  * 
   19669             :  *         @property
   19670             :  *         cdef inline void** iters(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19671             :  *             """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
   19672             :  *             On return, the iterators are adjusted for broadcasting."""
   19673             :  */
   19674             : 
   19675             : static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters_iters(PyArrayMultiIterObject *__pyx_v_self) {
   19676             :   void **__pyx_r;
   19677             : 
   19678             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":351
   19679             :  *             """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
   19680             :  *             On return, the iterators are adjusted for broadcasting."""
   19681             :  *             return PyArray_MultiIter_ITERS(self)             # <<<<<<<<<<<<<<
   19682             :  * 
   19683             :  * 
   19684             :  */
   19685             :   __pyx_r = PyArray_MultiIter_ITERS(__pyx_v_self);
   19686             :   goto __pyx_L0;
   19687             : 
   19688             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":348
   19689             :  * 
   19690             :  *         @property
   19691             :  *         cdef inline void** iters(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19692             :  *             """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
   19693             :  *             On return, the iterators are adjusted for broadcasting."""
   19694             :  */
   19695             : 
   19696             :   /* function exit code */
   19697             :   __pyx_L0:;
   19698             :   return __pyx_r;
   19699             : }
   19700             : 
   19701             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":366
   19702             :  * 
   19703             :  *         @property
   19704             :  *         cdef inline PyObject* base(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19705             :  *             """Returns a borrowed reference to the object owning the data/memory.
   19706             :  *             """
   19707             :  */
   19708             : 
   19709             : static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject *__pyx_v_self) {
   19710             :   PyObject *__pyx_r;
   19711             : 
   19712             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":369
   19713             :  *             """Returns a borrowed reference to the object owning the data/memory.
   19714             :  *             """
   19715             :  *             return PyArray_BASE(self)             # <<<<<<<<<<<<<<
   19716             :  * 
   19717             :  *         @property
   19718             :  */
   19719             :   __pyx_r = PyArray_BASE(__pyx_v_self);
   19720             :   goto __pyx_L0;
   19721             : 
   19722             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":366
   19723             :  * 
   19724             :  *         @property
   19725             :  *         cdef inline PyObject* base(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19726             :  *             """Returns a borrowed reference to the object owning the data/memory.
   19727             :  *             """
   19728             :  */
   19729             : 
   19730             :   /* function exit code */
   19731             :   __pyx_L0:;
   19732             :   return __pyx_r;
   19733             : }
   19734             : 
   19735             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":372
   19736             :  * 
   19737             :  *         @property
   19738             :  *         cdef inline dtype descr(self):             # <<<<<<<<<<<<<<
   19739             :  *             """Returns an owned reference to the dtype of the array.
   19740             :  *             """
   19741             :  */
   19742             : 
   19743             : static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArrayObject *__pyx_v_self) {
   19744             :   PyArray_Descr *__pyx_r = NULL;
   19745             :   __Pyx_RefNannyDeclarations
   19746             :   PyArray_Descr *__pyx_t_1;
   19747             :   __Pyx_RefNannySetupContext("descr", 1);
   19748             : 
   19749             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":375
   19750             :  *             """Returns an owned reference to the dtype of the array.
   19751             :  *             """
   19752             :  *             return <dtype>PyArray_DESCR(self)             # <<<<<<<<<<<<<<
   19753             :  * 
   19754             :  *         @property
   19755             :  */
   19756             :   __Pyx_XDECREF((PyObject *)__pyx_r);
   19757             :   __pyx_t_1 = PyArray_DESCR(__pyx_v_self);
   19758             :   __Pyx_INCREF((PyObject *)((PyArray_Descr *)__pyx_t_1));
   19759             :   __pyx_r = ((PyArray_Descr *)__pyx_t_1);
   19760             :   goto __pyx_L0;
   19761             : 
   19762             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":372
   19763             :  * 
   19764             :  *         @property
   19765             :  *         cdef inline dtype descr(self):             # <<<<<<<<<<<<<<
   19766             :  *             """Returns an owned reference to the dtype of the array.
   19767             :  *             """
   19768             :  */
   19769             : 
   19770             :   /* function exit code */
   19771             :   __pyx_L0:;
   19772             :   __Pyx_XGIVEREF((PyObject *)__pyx_r);
   19773             :   __Pyx_RefNannyFinishContext();
   19774             :   return __pyx_r;
   19775             : }
   19776             : 
   19777             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":378
   19778             :  * 
   19779             :  *         @property
   19780             :  *         cdef inline int ndim(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19781             :  *             """Returns the number of dimensions in the array.
   19782             :  *             """
   19783             :  */
   19784             : 
   19785             : static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx_v_self) {
   19786             :   int __pyx_r;
   19787             : 
   19788             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":381
   19789             :  *             """Returns the number of dimensions in the array.
   19790             :  *             """
   19791             :  *             return PyArray_NDIM(self)             # <<<<<<<<<<<<<<
   19792             :  * 
   19793             :  *         @property
   19794             :  */
   19795             :   __pyx_r = PyArray_NDIM(__pyx_v_self);
   19796             :   goto __pyx_L0;
   19797             : 
   19798             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":378
   19799             :  * 
   19800             :  *         @property
   19801             :  *         cdef inline int ndim(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19802             :  *             """Returns the number of dimensions in the array.
   19803             :  *             """
   19804             :  */
   19805             : 
   19806             :   /* function exit code */
   19807             :   __pyx_L0:;
   19808             :   return __pyx_r;
   19809             : }
   19810             : 
   19811             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":384
   19812             :  * 
   19813             :  *         @property
   19814             :  *         cdef inline npy_intp *shape(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19815             :  *             """Returns a pointer to the dimensions/shape of the array.
   19816             :  *             The number of elements matches the number of dimensions of the array (ndim).
   19817             :  */
   19818             : 
   19819        5524 : static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObject *__pyx_v_self) {
   19820        5524 :   npy_intp *__pyx_r;
   19821             : 
   19822             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":389
   19823             :  *             Can return NULL for 0-dimensional arrays.
   19824             :  *             """
   19825             :  *             return PyArray_DIMS(self)             # <<<<<<<<<<<<<<
   19826             :  * 
   19827             :  *         @property
   19828             :  */
   19829        5524 :   __pyx_r = PyArray_DIMS(__pyx_v_self);
   19830        5524 :   goto __pyx_L0;
   19831             : 
   19832             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":384
   19833             :  * 
   19834             :  *         @property
   19835             :  *         cdef inline npy_intp *shape(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19836             :  *             """Returns a pointer to the dimensions/shape of the array.
   19837             :  *             The number of elements matches the number of dimensions of the array (ndim).
   19838             :  */
   19839             : 
   19840             :   /* function exit code */
   19841        5524 :   __pyx_L0:;
   19842        5524 :   return __pyx_r;
   19843             : }
   19844             : 
   19845             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":392
   19846             :  * 
   19847             :  *         @property
   19848             :  *         cdef inline npy_intp *strides(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19849             :  *             """Returns a pointer to the strides of the array.
   19850             :  *             The number of elements matches the number of dimensions of the array (ndim).
   19851             :  */
   19852             : 
   19853             : static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayObject *__pyx_v_self) {
   19854             :   npy_intp *__pyx_r;
   19855             : 
   19856             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":396
   19857             :  *             The number of elements matches the number of dimensions of the array (ndim).
   19858             :  *             """
   19859             :  *             return PyArray_STRIDES(self)             # <<<<<<<<<<<<<<
   19860             :  * 
   19861             :  *         @property
   19862             :  */
   19863             :   __pyx_r = PyArray_STRIDES(__pyx_v_self);
   19864             :   goto __pyx_L0;
   19865             : 
   19866             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":392
   19867             :  * 
   19868             :  *         @property
   19869             :  *         cdef inline npy_intp *strides(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19870             :  *             """Returns a pointer to the strides of the array.
   19871             :  *             The number of elements matches the number of dimensions of the array (ndim).
   19872             :  */
   19873             : 
   19874             :   /* function exit code */
   19875             :   __pyx_L0:;
   19876             :   return __pyx_r;
   19877             : }
   19878             : 
   19879             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":399
   19880             :  * 
   19881             :  *         @property
   19882             :  *         cdef inline npy_intp size(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19883             :  *             """Returns the total size (in number of elements) of the array.
   19884             :  *             """
   19885             :  */
   19886             : 
   19887             : static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *__pyx_v_self) {
   19888             :   npy_intp __pyx_r;
   19889             : 
   19890             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":402
   19891             :  *             """Returns the total size (in number of elements) of the array.
   19892             :  *             """
   19893             :  *             return PyArray_SIZE(self)             # <<<<<<<<<<<<<<
   19894             :  * 
   19895             :  *         @property
   19896             :  */
   19897             :   __pyx_r = PyArray_SIZE(__pyx_v_self);
   19898             :   goto __pyx_L0;
   19899             : 
   19900             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":399
   19901             :  * 
   19902             :  *         @property
   19903             :  *         cdef inline npy_intp size(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19904             :  *             """Returns the total size (in number of elements) of the array.
   19905             :  *             """
   19906             :  */
   19907             : 
   19908             :   /* function exit code */
   19909             :   __pyx_L0:;
   19910             :   return __pyx_r;
   19911             : }
   19912             : 
   19913             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":405
   19914             :  * 
   19915             :  *         @property
   19916             :  *         cdef inline char* data(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19917             :  *             """The pointer to the data buffer as a char*.
   19918             :  *             This is provided for legacy reasons to avoid direct struct field access.
   19919             :  */
   19920             : 
   19921             : static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__pyx_v_self) {
   19922             :   char *__pyx_r;
   19923             : 
   19924             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":411
   19925             :  *             of `PyArray_DATA()` instead, which returns a 'void*'.
   19926             :  *             """
   19927             :  *             return PyArray_BYTES(self)             # <<<<<<<<<<<<<<
   19928             :  * 
   19929             :  * 
   19930             :  */
   19931             :   __pyx_r = PyArray_BYTES(__pyx_v_self);
   19932             :   goto __pyx_L0;
   19933             : 
   19934             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":405
   19935             :  * 
   19936             :  *         @property
   19937             :  *         cdef inline char* data(self) noexcept nogil:             # <<<<<<<<<<<<<<
   19938             :  *             """The pointer to the data buffer as a char*.
   19939             :  *             This is provided for legacy reasons to avoid direct struct field access.
   19940             :  */
   19941             : 
   19942             :   /* function exit code */
   19943             :   __pyx_L0:;
   19944             :   return __pyx_r;
   19945             : }
   19946             : 
   19947             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":806
   19948             :  * ctypedef long double complex clongdouble_t
   19949             :  * 
   19950             :  * cdef inline object PyArray_MultiIterNew1(a):             # <<<<<<<<<<<<<<
   19951             :  *     return PyArray_MultiIterNew(1, <void*>a)
   19952             :  * 
   19953             :  */
   19954             : 
   19955             : static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {
   19956             :   PyObject *__pyx_r = NULL;
   19957             :   __Pyx_RefNannyDeclarations
   19958             :   PyObject *__pyx_t_1 = NULL;
   19959             :   int __pyx_lineno = 0;
   19960             :   const char *__pyx_filename = NULL;
   19961             :   int __pyx_clineno = 0;
   19962             :   __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 1);
   19963             : 
   19964             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":807
   19965             :  * 
   19966             :  * cdef inline object PyArray_MultiIterNew1(a):
   19967             :  *     return PyArray_MultiIterNew(1, <void*>a)             # <<<<<<<<<<<<<<
   19968             :  * 
   19969             :  * cdef inline object PyArray_MultiIterNew2(a, b):
   19970             :  */
   19971             :   __Pyx_XDECREF(__pyx_r);
   19972             :   __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 807, __pyx_L1_error)
   19973             :   __Pyx_GOTREF(__pyx_t_1);
   19974             :   __pyx_r = __pyx_t_1;
   19975             :   __pyx_t_1 = 0;
   19976             :   goto __pyx_L0;
   19977             : 
   19978             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":806
   19979             :  * ctypedef long double complex clongdouble_t
   19980             :  * 
   19981             :  * cdef inline object PyArray_MultiIterNew1(a):             # <<<<<<<<<<<<<<
   19982             :  *     return PyArray_MultiIterNew(1, <void*>a)
   19983             :  * 
   19984             :  */
   19985             : 
   19986             :   /* function exit code */
   19987             :   __pyx_L1_error:;
   19988             :   __Pyx_XDECREF(__pyx_t_1);
   19989             :   __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename);
   19990             :   __pyx_r = 0;
   19991             :   __pyx_L0:;
   19992             :   __Pyx_XGIVEREF(__pyx_r);
   19993             :   __Pyx_RefNannyFinishContext();
   19994             :   return __pyx_r;
   19995             : }
   19996             : 
   19997             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":809
   19998             :  *     return PyArray_MultiIterNew(1, <void*>a)
   19999             :  * 
   20000             :  * cdef inline object PyArray_MultiIterNew2(a, b):             # <<<<<<<<<<<<<<
   20001             :  *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
   20002             :  * 
   20003             :  */
   20004             : 
   20005             : static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
   20006             :   PyObject *__pyx_r = NULL;
   20007             :   __Pyx_RefNannyDeclarations
   20008             :   PyObject *__pyx_t_1 = NULL;
   20009             :   int __pyx_lineno = 0;
   20010             :   const char *__pyx_filename = NULL;
   20011             :   int __pyx_clineno = 0;
   20012             :   __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 1);
   20013             : 
   20014             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":810
   20015             :  * 
   20016             :  * cdef inline object PyArray_MultiIterNew2(a, b):
   20017             :  *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)             # <<<<<<<<<<<<<<
   20018             :  * 
   20019             :  * cdef inline object PyArray_MultiIterNew3(a, b, c):
   20020             :  */
   20021             :   __Pyx_XDECREF(__pyx_r);
   20022             :   __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 810, __pyx_L1_error)
   20023             :   __Pyx_GOTREF(__pyx_t_1);
   20024             :   __pyx_r = __pyx_t_1;
   20025             :   __pyx_t_1 = 0;
   20026             :   goto __pyx_L0;
   20027             : 
   20028             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":809
   20029             :  *     return PyArray_MultiIterNew(1, <void*>a)
   20030             :  * 
   20031             :  * cdef inline object PyArray_MultiIterNew2(a, b):             # <<<<<<<<<<<<<<
   20032             :  *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
   20033             :  * 
   20034             :  */
   20035             : 
   20036             :   /* function exit code */
   20037             :   __pyx_L1_error:;
   20038             :   __Pyx_XDECREF(__pyx_t_1);
   20039             :   __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename);
   20040             :   __pyx_r = 0;
   20041             :   __pyx_L0:;
   20042             :   __Pyx_XGIVEREF(__pyx_r);
   20043             :   __Pyx_RefNannyFinishContext();
   20044             :   return __pyx_r;
   20045             : }
   20046             : 
   20047             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":812
   20048             :  *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
   20049             :  * 
   20050             :  * cdef inline object PyArray_MultiIterNew3(a, b, c):             # <<<<<<<<<<<<<<
   20051             :  *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
   20052             :  * 
   20053             :  */
   20054             : 
   20055             : static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) {
   20056             :   PyObject *__pyx_r = NULL;
   20057             :   __Pyx_RefNannyDeclarations
   20058             :   PyObject *__pyx_t_1 = NULL;
   20059             :   int __pyx_lineno = 0;
   20060             :   const char *__pyx_filename = NULL;
   20061             :   int __pyx_clineno = 0;
   20062             :   __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 1);
   20063             : 
   20064             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":813
   20065             :  * 
   20066             :  * cdef inline object PyArray_MultiIterNew3(a, b, c):
   20067             :  *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)             # <<<<<<<<<<<<<<
   20068             :  * 
   20069             :  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
   20070             :  */
   20071             :   __Pyx_XDECREF(__pyx_r);
   20072             :   __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 813, __pyx_L1_error)
   20073             :   __Pyx_GOTREF(__pyx_t_1);
   20074             :   __pyx_r = __pyx_t_1;
   20075             :   __pyx_t_1 = 0;
   20076             :   goto __pyx_L0;
   20077             : 
   20078             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":812
   20079             :  *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
   20080             :  * 
   20081             :  * cdef inline object PyArray_MultiIterNew3(a, b, c):             # <<<<<<<<<<<<<<
   20082             :  *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
   20083             :  * 
   20084             :  */
   20085             : 
   20086             :   /* function exit code */
   20087             :   __pyx_L1_error:;
   20088             :   __Pyx_XDECREF(__pyx_t_1);
   20089             :   __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename);
   20090             :   __pyx_r = 0;
   20091             :   __pyx_L0:;
   20092             :   __Pyx_XGIVEREF(__pyx_r);
   20093             :   __Pyx_RefNannyFinishContext();
   20094             :   return __pyx_r;
   20095             : }
   20096             : 
   20097             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":815
   20098             :  *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
   20099             :  * 
   20100             :  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):             # <<<<<<<<<<<<<<
   20101             :  *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
   20102             :  * 
   20103             :  */
   20104             : 
   20105             : static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) {
   20106             :   PyObject *__pyx_r = NULL;
   20107             :   __Pyx_RefNannyDeclarations
   20108             :   PyObject *__pyx_t_1 = NULL;
   20109             :   int __pyx_lineno = 0;
   20110             :   const char *__pyx_filename = NULL;
   20111             :   int __pyx_clineno = 0;
   20112             :   __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 1);
   20113             : 
   20114             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":816
   20115             :  * 
   20116             :  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
   20117             :  *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)             # <<<<<<<<<<<<<<
   20118             :  * 
   20119             :  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
   20120             :  */
   20121             :   __Pyx_XDECREF(__pyx_r);
   20122             :   __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 816, __pyx_L1_error)
   20123             :   __Pyx_GOTREF(__pyx_t_1);
   20124             :   __pyx_r = __pyx_t_1;
   20125             :   __pyx_t_1 = 0;
   20126             :   goto __pyx_L0;
   20127             : 
   20128             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":815
   20129             :  *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
   20130             :  * 
   20131             :  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):             # <<<<<<<<<<<<<<
   20132             :  *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
   20133             :  * 
   20134             :  */
   20135             : 
   20136             :   /* function exit code */
   20137             :   __pyx_L1_error:;
   20138             :   __Pyx_XDECREF(__pyx_t_1);
   20139             :   __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename);
   20140             :   __pyx_r = 0;
   20141             :   __pyx_L0:;
   20142             :   __Pyx_XGIVEREF(__pyx_r);
   20143             :   __Pyx_RefNannyFinishContext();
   20144             :   return __pyx_r;
   20145             : }
   20146             : 
   20147             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":818
   20148             :  *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
   20149             :  * 
   20150             :  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):             # <<<<<<<<<<<<<<
   20151             :  *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
   20152             :  * 
   20153             :  */
   20154             : 
   20155             : static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) {
   20156             :   PyObject *__pyx_r = NULL;
   20157             :   __Pyx_RefNannyDeclarations
   20158             :   PyObject *__pyx_t_1 = NULL;
   20159             :   int __pyx_lineno = 0;
   20160             :   const char *__pyx_filename = NULL;
   20161             :   int __pyx_clineno = 0;
   20162             :   __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 1);
   20163             : 
   20164             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":819
   20165             :  * 
   20166             :  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
   20167             :  *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)             # <<<<<<<<<<<<<<
   20168             :  * 
   20169             :  * cdef inline tuple PyDataType_SHAPE(dtype d):
   20170             :  */
   20171             :   __Pyx_XDECREF(__pyx_r);
   20172             :   __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 819, __pyx_L1_error)
   20173             :   __Pyx_GOTREF(__pyx_t_1);
   20174             :   __pyx_r = __pyx_t_1;
   20175             :   __pyx_t_1 = 0;
   20176             :   goto __pyx_L0;
   20177             : 
   20178             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":818
   20179             :  *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
   20180             :  * 
   20181             :  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):             # <<<<<<<<<<<<<<
   20182             :  *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
   20183             :  * 
   20184             :  */
   20185             : 
   20186             :   /* function exit code */
   20187             :   __pyx_L1_error:;
   20188             :   __Pyx_XDECREF(__pyx_t_1);
   20189             :   __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename);
   20190             :   __pyx_r = 0;
   20191             :   __pyx_L0:;
   20192             :   __Pyx_XGIVEREF(__pyx_r);
   20193             :   __Pyx_RefNannyFinishContext();
   20194             :   return __pyx_r;
   20195             : }
   20196             : 
   20197             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":821
   20198             :  *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
   20199             :  * 
   20200             :  * cdef inline tuple PyDataType_SHAPE(dtype d):             # <<<<<<<<<<<<<<
   20201             :  *     if PyDataType_HASSUBARRAY(d):
   20202             :  *         return <tuple>d.subarray.shape
   20203             :  */
   20204             : 
   20205             : static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) {
   20206             :   PyObject *__pyx_r = NULL;
   20207             :   __Pyx_RefNannyDeclarations
   20208             :   int __pyx_t_1;
   20209             :   PyObject *__pyx_t_2;
   20210             :   __Pyx_RefNannySetupContext("PyDataType_SHAPE", 1);
   20211             : 
   20212             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":822
   20213             :  * 
   20214             :  * cdef inline tuple PyDataType_SHAPE(dtype d):
   20215             :  *     if PyDataType_HASSUBARRAY(d):             # <<<<<<<<<<<<<<
   20216             :  *         return <tuple>d.subarray.shape
   20217             :  *     else:
   20218             :  */
   20219             :   __pyx_t_1 = PyDataType_HASSUBARRAY(__pyx_v_d);
   20220             :   if (__pyx_t_1) {
   20221             : 
   20222             :     /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":823
   20223             :  * cdef inline tuple PyDataType_SHAPE(dtype d):
   20224             :  *     if PyDataType_HASSUBARRAY(d):
   20225             :  *         return <tuple>d.subarray.shape             # <<<<<<<<<<<<<<
   20226             :  *     else:
   20227             :  *         return ()
   20228             :  */
   20229             :     __Pyx_XDECREF(__pyx_r);
   20230             :     __pyx_t_2 = __pyx_f_5numpy_5dtype_8subarray_subarray(__pyx_v_d)->shape;
   20231             :     __Pyx_INCREF(((PyObject*)__pyx_t_2));
   20232             :     __pyx_r = ((PyObject*)__pyx_t_2);
   20233             :     goto __pyx_L0;
   20234             : 
   20235             :     /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":822
   20236             :  * 
   20237             :  * cdef inline tuple PyDataType_SHAPE(dtype d):
   20238             :  *     if PyDataType_HASSUBARRAY(d):             # <<<<<<<<<<<<<<
   20239             :  *         return <tuple>d.subarray.shape
   20240             :  *     else:
   20241             :  */
   20242             :   }
   20243             : 
   20244             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":825
   20245             :  *         return <tuple>d.subarray.shape
   20246             :  *     else:
   20247             :  *         return ()             # <<<<<<<<<<<<<<
   20248             :  * 
   20249             :  * 
   20250             :  */
   20251             :   /*else*/ {
   20252             :     __Pyx_XDECREF(__pyx_r);
   20253             :     __Pyx_INCREF(__pyx_empty_tuple);
   20254             :     __pyx_r = __pyx_empty_tuple;
   20255             :     goto __pyx_L0;
   20256             :   }
   20257             : 
   20258             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":821
   20259             :  *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
   20260             :  * 
   20261             :  * cdef inline tuple PyDataType_SHAPE(dtype d):             # <<<<<<<<<<<<<<
   20262             :  *     if PyDataType_HASSUBARRAY(d):
   20263             :  *         return <tuple>d.subarray.shape
   20264             :  */
   20265             : 
   20266             :   /* function exit code */
   20267             :   __pyx_L0:;
   20268             :   __Pyx_XGIVEREF(__pyx_r);
   20269             :   __Pyx_RefNannyFinishContext();
   20270             :   return __pyx_r;
   20271             : }
   20272             : 
   20273             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1009
   20274             :  *     int _import_umath() except -1
   20275             :  * 
   20276             :  * cdef inline void set_array_base(ndarray arr, object base) except *:             # <<<<<<<<<<<<<<
   20277             :  *     Py_INCREF(base) # important to do this before stealing the reference below!
   20278             :  *     PyArray_SetBaseObject(arr, base)
   20279             :  */
   20280             : 
   20281             : static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) {
   20282             :   int __pyx_t_1;
   20283             :   int __pyx_lineno = 0;
   20284             :   const char *__pyx_filename = NULL;
   20285             :   int __pyx_clineno = 0;
   20286             : 
   20287             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1010
   20288             :  * 
   20289             :  * cdef inline void set_array_base(ndarray arr, object base) except *:
   20290             :  *     Py_INCREF(base) # important to do this before stealing the reference below!             # <<<<<<<<<<<<<<
   20291             :  *     PyArray_SetBaseObject(arr, base)
   20292             :  * 
   20293             :  */
   20294             :   Py_INCREF(__pyx_v_base);
   20295             : 
   20296             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1011
   20297             :  * cdef inline void set_array_base(ndarray arr, object base) except *:
   20298             :  *     Py_INCREF(base) # important to do this before stealing the reference below!
   20299             :  *     PyArray_SetBaseObject(arr, base)             # <<<<<<<<<<<<<<
   20300             :  * 
   20301             :  * cdef inline object get_array_base(ndarray arr):
   20302             :  */
   20303             :   __pyx_t_1 = PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 1011, __pyx_L1_error)
   20304             : 
   20305             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1009
   20306             :  *     int _import_umath() except -1
   20307             :  * 
   20308             :  * cdef inline void set_array_base(ndarray arr, object base) except *:             # <<<<<<<<<<<<<<
   20309             :  *     Py_INCREF(base) # important to do this before stealing the reference below!
   20310             :  *     PyArray_SetBaseObject(arr, base)
   20311             :  */
   20312             : 
   20313             :   /* function exit code */
   20314             :   goto __pyx_L0;
   20315             :   __pyx_L1_error:;
   20316             :   __Pyx_AddTraceback("numpy.set_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename);
   20317             :   __pyx_L0:;
   20318             : }
   20319             : 
   20320             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1013
   20321             :  *     PyArray_SetBaseObject(arr, base)
   20322             :  * 
   20323             :  * cdef inline object get_array_base(ndarray arr):             # <<<<<<<<<<<<<<
   20324             :  *     base = PyArray_BASE(arr)
   20325             :  *     if base is NULL:
   20326             :  */
   20327             : 
   20328             : static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) {
   20329             :   PyObject *__pyx_v_base;
   20330             :   PyObject *__pyx_r = NULL;
   20331             :   __Pyx_RefNannyDeclarations
   20332             :   int __pyx_t_1;
   20333             :   __Pyx_RefNannySetupContext("get_array_base", 1);
   20334             : 
   20335             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1014
   20336             :  * 
   20337             :  * cdef inline object get_array_base(ndarray arr):
   20338             :  *     base = PyArray_BASE(arr)             # <<<<<<<<<<<<<<
   20339             :  *     if base is NULL:
   20340             :  *         return None
   20341             :  */
   20342             :   __pyx_v_base = PyArray_BASE(__pyx_v_arr);
   20343             : 
   20344             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1015
   20345             :  * cdef inline object get_array_base(ndarray arr):
   20346             :  *     base = PyArray_BASE(arr)
   20347             :  *     if base is NULL:             # <<<<<<<<<<<<<<
   20348             :  *         return None
   20349             :  *     return <object>base
   20350             :  */
   20351             :   __pyx_t_1 = (__pyx_v_base == NULL);
   20352             :   if (__pyx_t_1) {
   20353             : 
   20354             :     /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1016
   20355             :  *     base = PyArray_BASE(arr)
   20356             :  *     if base is NULL:
   20357             :  *         return None             # <<<<<<<<<<<<<<
   20358             :  *     return <object>base
   20359             :  * 
   20360             :  */
   20361             :     __Pyx_XDECREF(__pyx_r);
   20362             :     __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   20363             :     goto __pyx_L0;
   20364             : 
   20365             :     /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1015
   20366             :  * cdef inline object get_array_base(ndarray arr):
   20367             :  *     base = PyArray_BASE(arr)
   20368             :  *     if base is NULL:             # <<<<<<<<<<<<<<
   20369             :  *         return None
   20370             :  *     return <object>base
   20371             :  */
   20372             :   }
   20373             : 
   20374             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1017
   20375             :  *     if base is NULL:
   20376             :  *         return None
   20377             :  *     return <object>base             # <<<<<<<<<<<<<<
   20378             :  * 
   20379             :  * # Versions of the import_* functions which are more suitable for
   20380             :  */
   20381             :   __Pyx_XDECREF(__pyx_r);
   20382             :   __Pyx_INCREF(((PyObject *)__pyx_v_base));
   20383             :   __pyx_r = ((PyObject *)__pyx_v_base);
   20384             :   goto __pyx_L0;
   20385             : 
   20386             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1013
   20387             :  *     PyArray_SetBaseObject(arr, base)
   20388             :  * 
   20389             :  * cdef inline object get_array_base(ndarray arr):             # <<<<<<<<<<<<<<
   20390             :  *     base = PyArray_BASE(arr)
   20391             :  *     if base is NULL:
   20392             :  */
   20393             : 
   20394             :   /* function exit code */
   20395             :   __pyx_L0:;
   20396             :   __Pyx_XGIVEREF(__pyx_r);
   20397             :   __Pyx_RefNannyFinishContext();
   20398             :   return __pyx_r;
   20399             : }
   20400             : 
   20401             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1021
   20402             :  * # Versions of the import_* functions which are more suitable for
   20403             :  * # Cython code.
   20404             :  * cdef inline int import_array() except -1:             # <<<<<<<<<<<<<<
   20405             :  *     try:
   20406             :  *         __pyx_import_array()
   20407             :  */
   20408             : 
   20409           3 : static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
   20410           3 :   int __pyx_r;
   20411             :   __Pyx_RefNannyDeclarations
   20412           3 :   PyObject *__pyx_t_1 = NULL;
   20413           3 :   PyObject *__pyx_t_2 = NULL;
   20414           3 :   PyObject *__pyx_t_3 = NULL;
   20415           3 :   int __pyx_t_4;
   20416           3 :   PyObject *__pyx_t_5 = NULL;
   20417           3 :   PyObject *__pyx_t_6 = NULL;
   20418           3 :   PyObject *__pyx_t_7 = NULL;
   20419           3 :   PyObject *__pyx_t_8 = NULL;
   20420           3 :   int __pyx_lineno = 0;
   20421           3 :   const char *__pyx_filename = NULL;
   20422           3 :   int __pyx_clineno = 0;
   20423           3 :   __Pyx_RefNannySetupContext("import_array", 1);
   20424             : 
   20425             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1022
   20426             :  * # Cython code.
   20427             :  * cdef inline int import_array() except -1:
   20428             :  *     try:             # <<<<<<<<<<<<<<
   20429             :  *         __pyx_import_array()
   20430             :  *     except Exception:
   20431             :  */
   20432             :   {
   20433           3 :     __Pyx_PyThreadState_declare
   20434           3 :     __Pyx_PyThreadState_assign
   20435           3 :     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
   20436           3 :     __Pyx_XGOTREF(__pyx_t_1);
   20437           3 :     __Pyx_XGOTREF(__pyx_t_2);
   20438           3 :     __Pyx_XGOTREF(__pyx_t_3);
   20439             :     /*try:*/ {
   20440             : 
   20441             :       /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1023
   20442             :  * cdef inline int import_array() except -1:
   20443             :  *     try:
   20444             :  *         __pyx_import_array()             # <<<<<<<<<<<<<<
   20445             :  *     except Exception:
   20446             :  *         raise ImportError("numpy._core.multiarray failed to import")
   20447             :  */
   20448           3 :       __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1023, __pyx_L3_error)
   20449             : 
   20450             :       /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1022
   20451             :  * # Cython code.
   20452             :  * cdef inline int import_array() except -1:
   20453             :  *     try:             # <<<<<<<<<<<<<<
   20454             :  *         __pyx_import_array()
   20455             :  *     except Exception:
   20456             :  */
   20457             :     }
   20458           3 :     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
   20459           3 :     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
   20460           3 :     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
   20461           3 :     goto __pyx_L8_try_end;
   20462           0 :     __pyx_L3_error:;
   20463             : 
   20464             :     /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1024
   20465             :  *     try:
   20466             :  *         __pyx_import_array()
   20467             :  *     except Exception:             # <<<<<<<<<<<<<<
   20468             :  *         raise ImportError("numpy._core.multiarray failed to import")
   20469             :  * 
   20470             :  */
   20471           0 :     __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
   20472           0 :     if (__pyx_t_4) {
   20473           0 :       __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
   20474           0 :       if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1024, __pyx_L5_except_error)
   20475           0 :       __Pyx_XGOTREF(__pyx_t_5);
   20476           0 :       __Pyx_XGOTREF(__pyx_t_6);
   20477           0 :       __Pyx_XGOTREF(__pyx_t_7);
   20478             : 
   20479             :       /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1025
   20480             :  *         __pyx_import_array()
   20481             :  *     except Exception:
   20482             :  *         raise ImportError("numpy._core.multiarray failed to import")             # <<<<<<<<<<<<<<
   20483             :  * 
   20484             :  * cdef inline int import_umath() except -1:
   20485             :  */
   20486           0 :       __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1025, __pyx_L5_except_error)
   20487           0 :       __Pyx_GOTREF(__pyx_t_8);
   20488           0 :       __Pyx_Raise(__pyx_t_8, 0, 0, 0);
   20489           0 :       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
   20490           0 :       __PYX_ERR(2, 1025, __pyx_L5_except_error)
   20491             :     }
   20492           0 :     goto __pyx_L5_except_error;
   20493             : 
   20494             :     /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1022
   20495             :  * # Cython code.
   20496             :  * cdef inline int import_array() except -1:
   20497             :  *     try:             # <<<<<<<<<<<<<<
   20498             :  *         __pyx_import_array()
   20499             :  *     except Exception:
   20500             :  */
   20501           0 :     __pyx_L5_except_error:;
   20502           0 :     __Pyx_XGIVEREF(__pyx_t_1);
   20503           0 :     __Pyx_XGIVEREF(__pyx_t_2);
   20504           0 :     __Pyx_XGIVEREF(__pyx_t_3);
   20505           0 :     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
   20506           0 :     goto __pyx_L1_error;
   20507           3 :     __pyx_L8_try_end:;
   20508             :   }
   20509             : 
   20510             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1021
   20511             :  * # Versions of the import_* functions which are more suitable for
   20512             :  * # Cython code.
   20513             :  * cdef inline int import_array() except -1:             # <<<<<<<<<<<<<<
   20514             :  *     try:
   20515             :  *         __pyx_import_array()
   20516             :  */
   20517             : 
   20518             :   /* function exit code */
   20519           3 :   __pyx_r = 0;
   20520           3 :   goto __pyx_L0;
   20521           0 :   __pyx_L1_error:;
   20522           0 :   __Pyx_XDECREF(__pyx_t_5);
   20523           0 :   __Pyx_XDECREF(__pyx_t_6);
   20524           0 :   __Pyx_XDECREF(__pyx_t_7);
   20525           0 :   __Pyx_XDECREF(__pyx_t_8);
   20526           0 :   __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
   20527           0 :   __pyx_r = -1;
   20528           3 :   __pyx_L0:;
   20529           3 :   __Pyx_RefNannyFinishContext();
   20530           3 :   return __pyx_r;
   20531             : }
   20532             : 
   20533             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1027
   20534             :  *         raise ImportError("numpy._core.multiarray failed to import")
   20535             :  * 
   20536             :  * cdef inline int import_umath() except -1:             # <<<<<<<<<<<<<<
   20537             :  *     try:
   20538             :  *         _import_umath()
   20539             :  */
   20540             : 
   20541             : static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
   20542             :   int __pyx_r;
   20543             :   __Pyx_RefNannyDeclarations
   20544             :   PyObject *__pyx_t_1 = NULL;
   20545             :   PyObject *__pyx_t_2 = NULL;
   20546             :   PyObject *__pyx_t_3 = NULL;
   20547             :   int __pyx_t_4;
   20548             :   PyObject *__pyx_t_5 = NULL;
   20549             :   PyObject *__pyx_t_6 = NULL;
   20550             :   PyObject *__pyx_t_7 = NULL;
   20551             :   PyObject *__pyx_t_8 = NULL;
   20552             :   int __pyx_lineno = 0;
   20553             :   const char *__pyx_filename = NULL;
   20554             :   int __pyx_clineno = 0;
   20555             :   __Pyx_RefNannySetupContext("import_umath", 1);
   20556             : 
   20557             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1028
   20558             :  * 
   20559             :  * cdef inline int import_umath() except -1:
   20560             :  *     try:             # <<<<<<<<<<<<<<
   20561             :  *         _import_umath()
   20562             :  *     except Exception:
   20563             :  */
   20564             :   {
   20565             :     __Pyx_PyThreadState_declare
   20566             :     __Pyx_PyThreadState_assign
   20567             :     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
   20568             :     __Pyx_XGOTREF(__pyx_t_1);
   20569             :     __Pyx_XGOTREF(__pyx_t_2);
   20570             :     __Pyx_XGOTREF(__pyx_t_3);
   20571             :     /*try:*/ {
   20572             : 
   20573             :       /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1029
   20574             :  * cdef inline int import_umath() except -1:
   20575             :  *     try:
   20576             :  *         _import_umath()             # <<<<<<<<<<<<<<
   20577             :  *     except Exception:
   20578             :  *         raise ImportError("numpy._core.umath failed to import")
   20579             :  */
   20580             :       __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1029, __pyx_L3_error)
   20581             : 
   20582             :       /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1028
   20583             :  * 
   20584             :  * cdef inline int import_umath() except -1:
   20585             :  *     try:             # <<<<<<<<<<<<<<
   20586             :  *         _import_umath()
   20587             :  *     except Exception:
   20588             :  */
   20589             :     }
   20590             :     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
   20591             :     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
   20592             :     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
   20593             :     goto __pyx_L8_try_end;
   20594             :     __pyx_L3_error:;
   20595             : 
   20596             :     /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1030
   20597             :  *     try:
   20598             :  *         _import_umath()
   20599             :  *     except Exception:             # <<<<<<<<<<<<<<
   20600             :  *         raise ImportError("numpy._core.umath failed to import")
   20601             :  * 
   20602             :  */
   20603             :     __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
   20604             :     if (__pyx_t_4) {
   20605             :       __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
   20606             :       if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1030, __pyx_L5_except_error)
   20607             :       __Pyx_XGOTREF(__pyx_t_5);
   20608             :       __Pyx_XGOTREF(__pyx_t_6);
   20609             :       __Pyx_XGOTREF(__pyx_t_7);
   20610             : 
   20611             :       /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1031
   20612             :  *         _import_umath()
   20613             :  *     except Exception:
   20614             :  *         raise ImportError("numpy._core.umath failed to import")             # <<<<<<<<<<<<<<
   20615             :  * 
   20616             :  * cdef inline int import_ufunc() except -1:
   20617             :  */
   20618             :       __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1031, __pyx_L5_except_error)
   20619             :       __Pyx_GOTREF(__pyx_t_8);
   20620             :       __Pyx_Raise(__pyx_t_8, 0, 0, 0);
   20621             :       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
   20622             :       __PYX_ERR(2, 1031, __pyx_L5_except_error)
   20623             :     }
   20624             :     goto __pyx_L5_except_error;
   20625             : 
   20626             :     /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1028
   20627             :  * 
   20628             :  * cdef inline int import_umath() except -1:
   20629             :  *     try:             # <<<<<<<<<<<<<<
   20630             :  *         _import_umath()
   20631             :  *     except Exception:
   20632             :  */
   20633             :     __pyx_L5_except_error:;
   20634             :     __Pyx_XGIVEREF(__pyx_t_1);
   20635             :     __Pyx_XGIVEREF(__pyx_t_2);
   20636             :     __Pyx_XGIVEREF(__pyx_t_3);
   20637             :     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
   20638             :     goto __pyx_L1_error;
   20639             :     __pyx_L8_try_end:;
   20640             :   }
   20641             : 
   20642             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1027
   20643             :  *         raise ImportError("numpy._core.multiarray failed to import")
   20644             :  * 
   20645             :  * cdef inline int import_umath() except -1:             # <<<<<<<<<<<<<<
   20646             :  *     try:
   20647             :  *         _import_umath()
   20648             :  */
   20649             : 
   20650             :   /* function exit code */
   20651             :   __pyx_r = 0;
   20652             :   goto __pyx_L0;
   20653             :   __pyx_L1_error:;
   20654             :   __Pyx_XDECREF(__pyx_t_5);
   20655             :   __Pyx_XDECREF(__pyx_t_6);
   20656             :   __Pyx_XDECREF(__pyx_t_7);
   20657             :   __Pyx_XDECREF(__pyx_t_8);
   20658             :   __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
   20659             :   __pyx_r = -1;
   20660             :   __pyx_L0:;
   20661             :   __Pyx_RefNannyFinishContext();
   20662             :   return __pyx_r;
   20663             : }
   20664             : 
   20665             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1033
   20666             :  *         raise ImportError("numpy._core.umath failed to import")
   20667             :  * 
   20668             :  * cdef inline int import_ufunc() except -1:             # <<<<<<<<<<<<<<
   20669             :  *     try:
   20670             :  *         _import_umath()
   20671             :  */
   20672             : 
   20673             : static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
   20674             :   int __pyx_r;
   20675             :   __Pyx_RefNannyDeclarations
   20676             :   PyObject *__pyx_t_1 = NULL;
   20677             :   PyObject *__pyx_t_2 = NULL;
   20678             :   PyObject *__pyx_t_3 = NULL;
   20679             :   int __pyx_t_4;
   20680             :   PyObject *__pyx_t_5 = NULL;
   20681             :   PyObject *__pyx_t_6 = NULL;
   20682             :   PyObject *__pyx_t_7 = NULL;
   20683             :   PyObject *__pyx_t_8 = NULL;
   20684             :   int __pyx_lineno = 0;
   20685             :   const char *__pyx_filename = NULL;
   20686             :   int __pyx_clineno = 0;
   20687             :   __Pyx_RefNannySetupContext("import_ufunc", 1);
   20688             : 
   20689             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1034
   20690             :  * 
   20691             :  * cdef inline int import_ufunc() except -1:
   20692             :  *     try:             # <<<<<<<<<<<<<<
   20693             :  *         _import_umath()
   20694             :  *     except Exception:
   20695             :  */
   20696             :   {
   20697             :     __Pyx_PyThreadState_declare
   20698             :     __Pyx_PyThreadState_assign
   20699             :     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
   20700             :     __Pyx_XGOTREF(__pyx_t_1);
   20701             :     __Pyx_XGOTREF(__pyx_t_2);
   20702             :     __Pyx_XGOTREF(__pyx_t_3);
   20703             :     /*try:*/ {
   20704             : 
   20705             :       /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1035
   20706             :  * cdef inline int import_ufunc() except -1:
   20707             :  *     try:
   20708             :  *         _import_umath()             # <<<<<<<<<<<<<<
   20709             :  *     except Exception:
   20710             :  *         raise ImportError("numpy._core.umath failed to import")
   20711             :  */
   20712             :       __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1035, __pyx_L3_error)
   20713             : 
   20714             :       /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1034
   20715             :  * 
   20716             :  * cdef inline int import_ufunc() except -1:
   20717             :  *     try:             # <<<<<<<<<<<<<<
   20718             :  *         _import_umath()
   20719             :  *     except Exception:
   20720             :  */
   20721             :     }
   20722             :     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
   20723             :     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
   20724             :     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
   20725             :     goto __pyx_L8_try_end;
   20726             :     __pyx_L3_error:;
   20727             : 
   20728             :     /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1036
   20729             :  *     try:
   20730             :  *         _import_umath()
   20731             :  *     except Exception:             # <<<<<<<<<<<<<<
   20732             :  *         raise ImportError("numpy._core.umath failed to import")
   20733             :  * 
   20734             :  */
   20735             :     __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
   20736             :     if (__pyx_t_4) {
   20737             :       __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
   20738             :       if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1036, __pyx_L5_except_error)
   20739             :       __Pyx_XGOTREF(__pyx_t_5);
   20740             :       __Pyx_XGOTREF(__pyx_t_6);
   20741             :       __Pyx_XGOTREF(__pyx_t_7);
   20742             : 
   20743             :       /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1037
   20744             :  *         _import_umath()
   20745             :  *     except Exception:
   20746             :  *         raise ImportError("numpy._core.umath failed to import")             # <<<<<<<<<<<<<<
   20747             :  * 
   20748             :  * 
   20749             :  */
   20750             :       __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1037, __pyx_L5_except_error)
   20751             :       __Pyx_GOTREF(__pyx_t_8);
   20752             :       __Pyx_Raise(__pyx_t_8, 0, 0, 0);
   20753             :       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
   20754             :       __PYX_ERR(2, 1037, __pyx_L5_except_error)
   20755             :     }
   20756             :     goto __pyx_L5_except_error;
   20757             : 
   20758             :     /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1034
   20759             :  * 
   20760             :  * cdef inline int import_ufunc() except -1:
   20761             :  *     try:             # <<<<<<<<<<<<<<
   20762             :  *         _import_umath()
   20763             :  *     except Exception:
   20764             :  */
   20765             :     __pyx_L5_except_error:;
   20766             :     __Pyx_XGIVEREF(__pyx_t_1);
   20767             :     __Pyx_XGIVEREF(__pyx_t_2);
   20768             :     __Pyx_XGIVEREF(__pyx_t_3);
   20769             :     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
   20770             :     goto __pyx_L1_error;
   20771             :     __pyx_L8_try_end:;
   20772             :   }
   20773             : 
   20774             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1033
   20775             :  *         raise ImportError("numpy._core.umath failed to import")
   20776             :  * 
   20777             :  * cdef inline int import_ufunc() except -1:             # <<<<<<<<<<<<<<
   20778             :  *     try:
   20779             :  *         _import_umath()
   20780             :  */
   20781             : 
   20782             :   /* function exit code */
   20783             :   __pyx_r = 0;
   20784             :   goto __pyx_L0;
   20785             :   __pyx_L1_error:;
   20786             :   __Pyx_XDECREF(__pyx_t_5);
   20787             :   __Pyx_XDECREF(__pyx_t_6);
   20788             :   __Pyx_XDECREF(__pyx_t_7);
   20789             :   __Pyx_XDECREF(__pyx_t_8);
   20790             :   __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
   20791             :   __pyx_r = -1;
   20792             :   __pyx_L0:;
   20793             :   __Pyx_RefNannyFinishContext();
   20794             :   return __pyx_r;
   20795             : }
   20796             : 
   20797             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1040
   20798             :  * 
   20799             :  * 
   20800             :  * cdef inline bint is_timedelta64_object(object obj) noexcept:             # <<<<<<<<<<<<<<
   20801             :  *     """
   20802             :  *     Cython equivalent of `isinstance(obj, np.timedelta64)`
   20803             :  */
   20804             : 
   20805             : static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) {
   20806             :   int __pyx_r;
   20807             : 
   20808             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1052
   20809             :  *     bool
   20810             :  *     """
   20811             :  *     return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type)             # <<<<<<<<<<<<<<
   20812             :  * 
   20813             :  * 
   20814             :  */
   20815             :   __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type));
   20816             :   goto __pyx_L0;
   20817             : 
   20818             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1040
   20819             :  * 
   20820             :  * 
   20821             :  * cdef inline bint is_timedelta64_object(object obj) noexcept:             # <<<<<<<<<<<<<<
   20822             :  *     """
   20823             :  *     Cython equivalent of `isinstance(obj, np.timedelta64)`
   20824             :  */
   20825             : 
   20826             :   /* function exit code */
   20827             :   __pyx_L0:;
   20828             :   return __pyx_r;
   20829             : }
   20830             : 
   20831             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1055
   20832             :  * 
   20833             :  * 
   20834             :  * cdef inline bint is_datetime64_object(object obj) noexcept:             # <<<<<<<<<<<<<<
   20835             :  *     """
   20836             :  *     Cython equivalent of `isinstance(obj, np.datetime64)`
   20837             :  */
   20838             : 
   20839             : static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) {
   20840             :   int __pyx_r;
   20841             : 
   20842             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1067
   20843             :  *     bool
   20844             :  *     """
   20845             :  *     return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type)             # <<<<<<<<<<<<<<
   20846             :  * 
   20847             :  * 
   20848             :  */
   20849             :   __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type));
   20850             :   goto __pyx_L0;
   20851             : 
   20852             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1055
   20853             :  * 
   20854             :  * 
   20855             :  * cdef inline bint is_datetime64_object(object obj) noexcept:             # <<<<<<<<<<<<<<
   20856             :  *     """
   20857             :  *     Cython equivalent of `isinstance(obj, np.datetime64)`
   20858             :  */
   20859             : 
   20860             :   /* function exit code */
   20861             :   __pyx_L0:;
   20862             :   return __pyx_r;
   20863             : }
   20864             : 
   20865             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1070
   20866             :  * 
   20867             :  * 
   20868             :  * cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil:             # <<<<<<<<<<<<<<
   20869             :  *     """
   20870             :  *     returns the int64 value underlying scalar numpy datetime64 object
   20871             :  */
   20872             : 
   20873             : static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) {
   20874             :   npy_datetime __pyx_r;
   20875             : 
   20876             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1077
   20877             :  *     also needed.  That can be found using `get_datetime64_unit`.
   20878             :  *     """
   20879             :  *     return (<PyDatetimeScalarObject*>obj).obval             # <<<<<<<<<<<<<<
   20880             :  * 
   20881             :  * 
   20882             :  */
   20883             :   __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval;
   20884             :   goto __pyx_L0;
   20885             : 
   20886             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1070
   20887             :  * 
   20888             :  * 
   20889             :  * cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil:             # <<<<<<<<<<<<<<
   20890             :  *     """
   20891             :  *     returns the int64 value underlying scalar numpy datetime64 object
   20892             :  */
   20893             : 
   20894             :   /* function exit code */
   20895             :   __pyx_L0:;
   20896             :   return __pyx_r;
   20897             : }
   20898             : 
   20899             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1080
   20900             :  * 
   20901             :  * 
   20902             :  * cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil:             # <<<<<<<<<<<<<<
   20903             :  *     """
   20904             :  *     returns the int64 value underlying scalar numpy timedelta64 object
   20905             :  */
   20906             : 
   20907             : static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) {
   20908             :   npy_timedelta __pyx_r;
   20909             : 
   20910             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1084
   20911             :  *     returns the int64 value underlying scalar numpy timedelta64 object
   20912             :  *     """
   20913             :  *     return (<PyTimedeltaScalarObject*>obj).obval             # <<<<<<<<<<<<<<
   20914             :  * 
   20915             :  * 
   20916             :  */
   20917             :   __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval;
   20918             :   goto __pyx_L0;
   20919             : 
   20920             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1080
   20921             :  * 
   20922             :  * 
   20923             :  * cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil:             # <<<<<<<<<<<<<<
   20924             :  *     """
   20925             :  *     returns the int64 value underlying scalar numpy timedelta64 object
   20926             :  */
   20927             : 
   20928             :   /* function exit code */
   20929             :   __pyx_L0:;
   20930             :   return __pyx_r;
   20931             : }
   20932             : 
   20933             : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1087
   20934             :  * 
   20935             :  * 
   20936             :  * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil:             # <<<<<<<<<<<<<<
   20937             :  *     """
   20938             :  *     returns the unit part of the dtype for a numpy datetime64 object.
   20939             :  */
   20940             : 
   20941             : static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) {
   20942             :   NPY_DATETIMEUNIT __pyx_r;
   20943             : 
   20944             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1091
   20945             :  *     returns the unit part of the dtype for a numpy datetime64 object.
   20946             :  *     """
   20947             :  *     return <NPY_DATETIMEUNIT>(<PyDatetimeScalarObject*>obj).obmeta.base             # <<<<<<<<<<<<<<
   20948             :  * 
   20949             :  * 
   20950             :  */
   20951             :   __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base);
   20952             :   goto __pyx_L0;
   20953             : 
   20954             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1087
   20955             :  * 
   20956             :  * 
   20957             :  * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil:             # <<<<<<<<<<<<<<
   20958             :  *     """
   20959             :  *     returns the unit part of the dtype for a numpy datetime64 object.
   20960             :  */
   20961             : 
   20962             :   /* function exit code */
   20963             :   __pyx_L0:;
   20964             :   return __pyx_r;
   20965             : }
   20966             : 
   20967             : /* "_csparsetools.pyx":18
   20968             :  * 
   20969             :  * @cython.wraparound(False)
   20970             :  * cpdef lil_get1(cnp.npy_intp M, cnp.npy_intp N, object[:] rows, object[:] datas,             # <<<<<<<<<<<<<<
   20971             :  *                cnp.npy_intp i, cnp.npy_intp j):
   20972             :  *     """
   20973             :  */
   20974             : 
   20975             : static PyObject *__pyx_pw_13_csparsetools_1lil_get1(PyObject *__pyx_self, 
   20976             : #if CYTHON_METH_FASTCALL
   20977             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   20978             : #else
   20979             : PyObject *__pyx_args, PyObject *__pyx_kwds
   20980             : #endif
   20981             : ); /*proto*/
   20982       10542 : static PyObject *__pyx_f_13_csparsetools_lil_get1(npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_datas, npy_intp __pyx_v_i, npy_intp __pyx_v_j, CYTHON_UNUSED int __pyx_skip_dispatch) {
   20983       10542 :   PyObject *__pyx_v_row = 0;
   20984       10542 :   PyObject *__pyx_v_data = 0;
   20985       10542 :   npy_intp __pyx_v_pos;
   20986       10542 :   PyObject *__pyx_r = NULL;
   20987             :   __Pyx_RefNannyDeclarations
   20988       10542 :   int __pyx_t_1;
   20989       10542 :   int __pyx_t_2;
   20990       10542 :   PyObject *__pyx_t_3 = NULL;
   20991       10542 :   Py_ssize_t __pyx_t_4;
   20992       10542 :   Py_UCS4 __pyx_t_5;
   20993       10542 :   PyObject *__pyx_t_6 = NULL;
   20994       10542 :   PyObject *__pyx_t_7 = NULL;
   20995       10542 :   Py_ssize_t __pyx_t_8;
   20996       10542 :   int __pyx_t_9;
   20997       10542 :   npy_intp __pyx_t_10;
   20998       10542 :   int __pyx_lineno = 0;
   20999       10542 :   const char *__pyx_filename = NULL;
   21000       10542 :   int __pyx_clineno = 0;
   21001       10542 :   __Pyx_RefNannySetupContext("lil_get1", 1);
   21002             : 
   21003             :   /* "_csparsetools.pyx":40
   21004             :  *     cdef list row, data
   21005             :  * 
   21006             :  *     if i < -M or i >= M:             # <<<<<<<<<<<<<<
   21007             :  *         raise IndexError('row index (%d) out of bounds' % (i,))
   21008             :  *     if i < 0:
   21009             :  */
   21010       10542 :   __pyx_t_2 = (__pyx_v_i < (-__pyx_v_M));
   21011       10542 :   if (!__pyx_t_2) {
   21012       10542 :   } else {
   21013           0 :     __pyx_t_1 = __pyx_t_2;
   21014           0 :     goto __pyx_L4_bool_binop_done;
   21015             :   }
   21016       10542 :   __pyx_t_2 = (__pyx_v_i >= __pyx_v_M);
   21017       10542 :   __pyx_t_1 = __pyx_t_2;
   21018       10542 :   __pyx_L4_bool_binop_done:;
   21019       10542 :   if (unlikely(__pyx_t_1)) {
   21020             : 
   21021             :     /* "_csparsetools.pyx":41
   21022             :  * 
   21023             :  *     if i < -M or i >= M:
   21024             :  *         raise IndexError('row index (%d) out of bounds' % (i,))             # <<<<<<<<<<<<<<
   21025             :  *     if i < 0:
   21026             :  *         i += M
   21027             :  */
   21028         399 :     __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 41, __pyx_L1_error)
   21029         399 :     __Pyx_GOTREF(__pyx_t_3);
   21030         399 :     __pyx_t_4 = 0;
   21031         399 :     __pyx_t_5 = 127;
   21032         399 :     __Pyx_INCREF(__pyx_kp_u_row_index);
   21033         399 :     __pyx_t_4 += 11;
   21034         399 :     __Pyx_GIVEREF(__pyx_kp_u_row_index);
   21035         399 :     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_row_index);
   21036         399 :     __pyx_t_6 = __Pyx_PyInt_From_npy_intp(__pyx_v_i); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 41, __pyx_L1_error)
   21037         399 :     __Pyx_GOTREF(__pyx_t_6);
   21038         399 :     __pyx_t_7 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_6), __pyx_n_u_d); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 41, __pyx_L1_error)
   21039         399 :     __Pyx_GOTREF(__pyx_t_7);
   21040         399 :     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   21041         399 :     __pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_5;
   21042         399 :     __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
   21043         399 :     __Pyx_GIVEREF(__pyx_t_7);
   21044         399 :     PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7);
   21045         399 :     __pyx_t_7 = 0;
   21046         399 :     __Pyx_INCREF(__pyx_kp_u_out_of_bounds);
   21047         399 :     __pyx_t_4 += 15;
   21048         399 :     __Pyx_GIVEREF(__pyx_kp_u_out_of_bounds);
   21049         399 :     PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_out_of_bounds);
   21050         399 :     __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 41, __pyx_L1_error)
   21051         399 :     __Pyx_GOTREF(__pyx_t_7);
   21052         399 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   21053         399 :     __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 41, __pyx_L1_error)
   21054         399 :     __Pyx_GOTREF(__pyx_t_3);
   21055         399 :     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   21056         399 :     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
   21057         399 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   21058         399 :     __PYX_ERR(0, 41, __pyx_L1_error)
   21059             : 
   21060             :     /* "_csparsetools.pyx":40
   21061             :  *     cdef list row, data
   21062             :  * 
   21063             :  *     if i < -M or i >= M:             # <<<<<<<<<<<<<<
   21064             :  *         raise IndexError('row index (%d) out of bounds' % (i,))
   21065             :  *     if i < 0:
   21066             :  */
   21067             :   }
   21068             : 
   21069             :   /* "_csparsetools.pyx":42
   21070             :  *     if i < -M or i >= M:
   21071             :  *         raise IndexError('row index (%d) out of bounds' % (i,))
   21072             :  *     if i < 0:             # <<<<<<<<<<<<<<
   21073             :  *         i += M
   21074             :  * 
   21075             :  */
   21076       10143 :   __pyx_t_1 = (__pyx_v_i < 0);
   21077       10143 :   if (__pyx_t_1) {
   21078             : 
   21079             :     /* "_csparsetools.pyx":43
   21080             :  *         raise IndexError('row index (%d) out of bounds' % (i,))
   21081             :  *     if i < 0:
   21082             :  *         i += M             # <<<<<<<<<<<<<<
   21083             :  * 
   21084             :  *     if j < -N or j >= N:
   21085             :  */
   21086        3570 :     __pyx_v_i = (__pyx_v_i + __pyx_v_M);
   21087             : 
   21088             :     /* "_csparsetools.pyx":42
   21089             :  *     if i < -M or i >= M:
   21090             :  *         raise IndexError('row index (%d) out of bounds' % (i,))
   21091             :  *     if i < 0:             # <<<<<<<<<<<<<<
   21092             :  *         i += M
   21093             :  * 
   21094             :  */
   21095             :   }
   21096             : 
   21097             :   /* "_csparsetools.pyx":45
   21098             :  *         i += M
   21099             :  * 
   21100             :  *     if j < -N or j >= N:             # <<<<<<<<<<<<<<
   21101             :  *         raise IndexError('column index (%d) out of bounds' % (j,))
   21102             :  *     if j < 0:
   21103             :  */
   21104       10143 :   __pyx_t_2 = (__pyx_v_j < (-__pyx_v_N));
   21105       10143 :   if (!__pyx_t_2) {
   21106       10136 :   } else {
   21107           7 :     __pyx_t_1 = __pyx_t_2;
   21108           7 :     goto __pyx_L8_bool_binop_done;
   21109             :   }
   21110       10136 :   __pyx_t_2 = (__pyx_v_j >= __pyx_v_N);
   21111       10136 :   __pyx_t_1 = __pyx_t_2;
   21112       10143 :   __pyx_L8_bool_binop_done:;
   21113       10143 :   if (unlikely(__pyx_t_1)) {
   21114             : 
   21115             :     /* "_csparsetools.pyx":46
   21116             :  * 
   21117             :  *     if j < -N or j >= N:
   21118             :  *         raise IndexError('column index (%d) out of bounds' % (j,))             # <<<<<<<<<<<<<<
   21119             :  *     if j < 0:
   21120             :  *         j += N
   21121             :  */
   21122         280 :     __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 46, __pyx_L1_error)
   21123         280 :     __Pyx_GOTREF(__pyx_t_3);
   21124         280 :     __pyx_t_4 = 0;
   21125         280 :     __pyx_t_5 = 127;
   21126         280 :     __Pyx_INCREF(__pyx_kp_u_column_index);
   21127         280 :     __pyx_t_4 += 14;
   21128         280 :     __Pyx_GIVEREF(__pyx_kp_u_column_index);
   21129         280 :     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_column_index);
   21130         280 :     __pyx_t_7 = __Pyx_PyInt_From_npy_intp(__pyx_v_j); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 46, __pyx_L1_error)
   21131         280 :     __Pyx_GOTREF(__pyx_t_7);
   21132         280 :     __pyx_t_6 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_7), __pyx_n_u_d); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 46, __pyx_L1_error)
   21133         280 :     __Pyx_GOTREF(__pyx_t_6);
   21134         280 :     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   21135         280 :     __pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_5;
   21136         280 :     __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
   21137         280 :     __Pyx_GIVEREF(__pyx_t_6);
   21138         280 :     PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_6);
   21139         280 :     __pyx_t_6 = 0;
   21140         280 :     __Pyx_INCREF(__pyx_kp_u_out_of_bounds);
   21141         280 :     __pyx_t_4 += 15;
   21142         280 :     __Pyx_GIVEREF(__pyx_kp_u_out_of_bounds);
   21143         280 :     PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_out_of_bounds);
   21144         280 :     __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 46, __pyx_L1_error)
   21145         280 :     __Pyx_GOTREF(__pyx_t_6);
   21146         280 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   21147         280 :     __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 46, __pyx_L1_error)
   21148         280 :     __Pyx_GOTREF(__pyx_t_3);
   21149         280 :     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   21150         280 :     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
   21151         280 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   21152         280 :     __PYX_ERR(0, 46, __pyx_L1_error)
   21153             : 
   21154             :     /* "_csparsetools.pyx":45
   21155             :  *         i += M
   21156             :  * 
   21157             :  *     if j < -N or j >= N:             # <<<<<<<<<<<<<<
   21158             :  *         raise IndexError('column index (%d) out of bounds' % (j,))
   21159             :  *     if j < 0:
   21160             :  */
   21161             :   }
   21162             : 
   21163             :   /* "_csparsetools.pyx":47
   21164             :  *     if j < -N or j >= N:
   21165             :  *         raise IndexError('column index (%d) out of bounds' % (j,))
   21166             :  *     if j < 0:             # <<<<<<<<<<<<<<
   21167             :  *         j += N
   21168             :  * 
   21169             :  */
   21170        9863 :   __pyx_t_1 = (__pyx_v_j < 0);
   21171        9863 :   if (__pyx_t_1) {
   21172             : 
   21173             :     /* "_csparsetools.pyx":48
   21174             :  *         raise IndexError('column index (%d) out of bounds' % (j,))
   21175             :  *     if j < 0:
   21176             :  *         j += N             # <<<<<<<<<<<<<<
   21177             :  * 
   21178             :  *     row = rows[i]
   21179             :  */
   21180        3724 :     __pyx_v_j = (__pyx_v_j + __pyx_v_N);
   21181             : 
   21182             :     /* "_csparsetools.pyx":47
   21183             :  *     if j < -N or j >= N:
   21184             :  *         raise IndexError('column index (%d) out of bounds' % (j,))
   21185             :  *     if j < 0:             # <<<<<<<<<<<<<<
   21186             :  *         j += N
   21187             :  * 
   21188             :  */
   21189             :   }
   21190             : 
   21191             :   /* "_csparsetools.pyx":50
   21192             :  *         j += N
   21193             :  * 
   21194             :  *     row = rows[i]             # <<<<<<<<<<<<<<
   21195             :  *     data = datas[i]
   21196             :  *     cdef cnp.npy_intp pos = bisect_left(row, j)
   21197             :  */
   21198        9863 :   __pyx_t_8 = __pyx_v_i;
   21199        9863 :   __pyx_t_9 = -1;
   21200        9863 :   if (__pyx_t_8 < 0) {
   21201             :     __pyx_t_9 = 0;
   21202        9863 :   } else if (unlikely(__pyx_t_8 >= __pyx_v_rows.shape[0])) __pyx_t_9 = 0;
   21203        9863 :   if (unlikely(__pyx_t_9 != -1)) {
   21204           0 :     __Pyx_RaiseBufferIndexError(__pyx_t_9);
   21205           0 :     __PYX_ERR(0, 50, __pyx_L1_error)
   21206             :   }
   21207        9863 :   __pyx_t_3 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_rows.data + __pyx_t_8 * __pyx_v_rows.strides[0]) ));
   21208        9863 :   if (unlikely(__pyx_t_3 == NULL)) __pyx_t_3 = Py_None;
   21209        9863 :   __Pyx_INCREF((PyObject*)__pyx_t_3);
   21210        9863 :   if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_3))) __PYX_ERR(0, 50, __pyx_L1_error)
   21211        9863 :   __pyx_v_row = ((PyObject*)__pyx_t_3);
   21212        9863 :   __pyx_t_3 = 0;
   21213             : 
   21214             :   /* "_csparsetools.pyx":51
   21215             :  * 
   21216             :  *     row = rows[i]
   21217             :  *     data = datas[i]             # <<<<<<<<<<<<<<
   21218             :  *     cdef cnp.npy_intp pos = bisect_left(row, j)
   21219             :  * 
   21220             :  */
   21221        9863 :   __pyx_t_8 = __pyx_v_i;
   21222        9863 :   __pyx_t_9 = -1;
   21223        9863 :   if (__pyx_t_8 < 0) {
   21224             :     __pyx_t_9 = 0;
   21225        9863 :   } else if (unlikely(__pyx_t_8 >= __pyx_v_datas.shape[0])) __pyx_t_9 = 0;
   21226        9863 :   if (unlikely(__pyx_t_9 != -1)) {
   21227           0 :     __Pyx_RaiseBufferIndexError(__pyx_t_9);
   21228           0 :     __PYX_ERR(0, 51, __pyx_L1_error)
   21229             :   }
   21230        9863 :   __pyx_t_3 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_datas.data + __pyx_t_8 * __pyx_v_datas.strides[0]) ));
   21231        9863 :   if (unlikely(__pyx_t_3 == NULL)) __pyx_t_3 = Py_None;
   21232        9863 :   __Pyx_INCREF((PyObject*)__pyx_t_3);
   21233        9863 :   if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_3))) __PYX_ERR(0, 51, __pyx_L1_error)
   21234        9863 :   __pyx_v_data = ((PyObject*)__pyx_t_3);
   21235        9863 :   __pyx_t_3 = 0;
   21236             : 
   21237             :   /* "_csparsetools.pyx":52
   21238             :  *     row = rows[i]
   21239             :  *     data = datas[i]
   21240             :  *     cdef cnp.npy_intp pos = bisect_left(row, j)             # <<<<<<<<<<<<<<
   21241             :  * 
   21242             :  *     if pos != len(data) and row[pos] == j:
   21243             :  */
   21244        9863 :   __pyx_t_10 = __pyx_f_13_csparsetools_bisect_left(__pyx_v_row, __pyx_v_j); if (unlikely(__pyx_t_10 == ((npy_intp)-1L))) __PYX_ERR(0, 52, __pyx_L1_error)
   21245        9863 :   __pyx_v_pos = __pyx_t_10;
   21246             : 
   21247             :   /* "_csparsetools.pyx":54
   21248             :  *     cdef cnp.npy_intp pos = bisect_left(row, j)
   21249             :  * 
   21250             :  *     if pos != len(data) and row[pos] == j:             # <<<<<<<<<<<<<<
   21251             :  *         return data[pos]
   21252             :  *     else:
   21253             :  */
   21254        9863 :   if (unlikely(__pyx_v_data == Py_None)) {
   21255           0 :     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   21256           0 :     __PYX_ERR(0, 54, __pyx_L1_error)
   21257             :   }
   21258        9863 :   __pyx_t_4 = __Pyx_PyList_GET_SIZE(__pyx_v_data); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 54, __pyx_L1_error)
   21259        9863 :   __pyx_t_2 = (__pyx_v_pos != __pyx_t_4);
   21260        9863 :   if (__pyx_t_2) {
   21261        6488 :   } else {
   21262        3375 :     __pyx_t_1 = __pyx_t_2;
   21263        3375 :     goto __pyx_L12_bool_binop_done;
   21264             :   }
   21265        6488 :   if (unlikely(__pyx_v_row == Py_None)) {
   21266           0 :     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   21267           0 :     __PYX_ERR(0, 54, __pyx_L1_error)
   21268             :   }
   21269        6488 :   __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_row, __pyx_v_pos, npy_intp, 1, __Pyx_PyInt_From_npy_intp, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 54, __pyx_L1_error)
   21270        6488 :   __Pyx_GOTREF(__pyx_t_3);
   21271        6488 :   __pyx_t_6 = __Pyx_PyInt_From_npy_intp(__pyx_v_j); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 54, __pyx_L1_error)
   21272        6488 :   __Pyx_GOTREF(__pyx_t_6);
   21273        6488 :   __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 54, __pyx_L1_error)
   21274        6488 :   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   21275        6488 :   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   21276        6488 :   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 54, __pyx_L1_error)
   21277        6488 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   21278             :   __pyx_t_1 = __pyx_t_2;
   21279        9863 :   __pyx_L12_bool_binop_done:;
   21280        9863 :   if (__pyx_t_1) {
   21281             : 
   21282             :     /* "_csparsetools.pyx":55
   21283             :  * 
   21284             :  *     if pos != len(data) and row[pos] == j:
   21285             :  *         return data[pos]             # <<<<<<<<<<<<<<
   21286             :  *     else:
   21287             :  *         return 0
   21288             :  */
   21289        5824 :     __Pyx_XDECREF(__pyx_r);
   21290        5824 :     if (unlikely(__pyx_v_data == Py_None)) {
   21291             :       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   21292             :       __PYX_ERR(0, 55, __pyx_L1_error)
   21293             :     }
   21294        5824 :     __pyx_t_7 = __Pyx_GetItemInt_List(__pyx_v_data, __pyx_v_pos, npy_intp, 1, __Pyx_PyInt_From_npy_intp, 1, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 55, __pyx_L1_error)
   21295        5824 :     __Pyx_GOTREF(__pyx_t_7);
   21296        5824 :     __pyx_r = __pyx_t_7;
   21297        5824 :     __pyx_t_7 = 0;
   21298        5824 :     goto __pyx_L0;
   21299             : 
   21300             :     /* "_csparsetools.pyx":54
   21301             :  *     cdef cnp.npy_intp pos = bisect_left(row, j)
   21302             :  * 
   21303             :  *     if pos != len(data) and row[pos] == j:             # <<<<<<<<<<<<<<
   21304             :  *         return data[pos]
   21305             :  *     else:
   21306             :  */
   21307             :   }
   21308             : 
   21309             :   /* "_csparsetools.pyx":57
   21310             :  *         return data[pos]
   21311             :  *     else:
   21312             :  *         return 0             # <<<<<<<<<<<<<<
   21313             :  * 
   21314             :  * 
   21315             :  */
   21316             :   /*else*/ {
   21317        4039 :     __Pyx_XDECREF(__pyx_r);
   21318        4039 :     __Pyx_INCREF(__pyx_int_0);
   21319        4039 :     __pyx_r = __pyx_int_0;
   21320        4039 :     goto __pyx_L0;
   21321             :   }
   21322             : 
   21323             :   /* "_csparsetools.pyx":18
   21324             :  * 
   21325             :  * @cython.wraparound(False)
   21326             :  * cpdef lil_get1(cnp.npy_intp M, cnp.npy_intp N, object[:] rows, object[:] datas,             # <<<<<<<<<<<<<<
   21327             :  *                cnp.npy_intp i, cnp.npy_intp j):
   21328             :  *     """
   21329             :  */
   21330             : 
   21331             :   /* function exit code */
   21332         679 :   __pyx_L1_error:;
   21333         679 :   __Pyx_XDECREF(__pyx_t_3);
   21334         679 :   __Pyx_XDECREF(__pyx_t_6);
   21335         679 :   __Pyx_XDECREF(__pyx_t_7);
   21336         679 :   __Pyx_AddTraceback("_csparsetools.lil_get1", __pyx_clineno, __pyx_lineno, __pyx_filename);
   21337         679 :   __pyx_r = 0;
   21338       10542 :   __pyx_L0:;
   21339       10542 :   __Pyx_XDECREF(__pyx_v_row);
   21340       10542 :   __Pyx_XDECREF(__pyx_v_data);
   21341       10542 :   __Pyx_XGIVEREF(__pyx_r);
   21342       10542 :   __Pyx_RefNannyFinishContext();
   21343       10542 :   return __pyx_r;
   21344             : }
   21345             : 
   21346             : /* Python wrapper */
   21347             : static PyObject *__pyx_pw_13_csparsetools_1lil_get1(PyObject *__pyx_self, 
   21348             : #if CYTHON_METH_FASTCALL
   21349             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   21350             : #else
   21351             : PyObject *__pyx_args, PyObject *__pyx_kwds
   21352             : #endif
   21353             : ); /*proto*/
   21354             : PyDoc_STRVAR(__pyx_doc_13_csparsetools_lil_get1, "\n    Get a single item from LIL matrix.\n\n    Doesn't do output type conversion. Checks for bounds errors.\n\n    Parameters\n    ----------\n    M, N, rows, datas\n        Shape and data arrays for a LIL matrix\n    i, j : int\n        Indices at which to get\n\n    Returns\n    -------\n    x\n        Value at indices.\n\n    ");
   21355             : static PyMethodDef __pyx_mdef_13_csparsetools_1lil_get1 = {"lil_get1", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_1lil_get1, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_13_csparsetools_lil_get1};
   21356        7186 : static PyObject *__pyx_pw_13_csparsetools_1lil_get1(PyObject *__pyx_self, 
   21357             : #if CYTHON_METH_FASTCALL
   21358             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   21359             : #else
   21360             : PyObject *__pyx_args, PyObject *__pyx_kwds
   21361             : #endif
   21362             : ) {
   21363        7186 :   npy_intp __pyx_v_M;
   21364        7186 :   npy_intp __pyx_v_N;
   21365        7186 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   21366        7186 :   __Pyx_memviewslice __pyx_v_datas = { 0, 0, { 0 }, { 0 }, { 0 } };
   21367        7186 :   npy_intp __pyx_v_i;
   21368        7186 :   npy_intp __pyx_v_j;
   21369             :   #if !CYTHON_METH_FASTCALL
   21370             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   21371             :   #endif
   21372        7186 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   21373        7186 :   PyObject* values[6] = {0,0,0,0,0,0};
   21374        7186 :   int __pyx_lineno = 0;
   21375        7186 :   const char *__pyx_filename = NULL;
   21376        7186 :   int __pyx_clineno = 0;
   21377        7186 :   PyObject *__pyx_r = 0;
   21378             :   __Pyx_RefNannyDeclarations
   21379        7186 :   __Pyx_RefNannySetupContext("lil_get1 (wrapper)", 0);
   21380             :   #if !CYTHON_METH_FASTCALL
   21381             :   #if CYTHON_ASSUME_SAFE_MACROS
   21382             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   21383             :   #else
   21384             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   21385             :   #endif
   21386             :   #endif
   21387        7186 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   21388             :   {
   21389        7186 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_datas,&__pyx_n_s_i,&__pyx_n_s_j,0};
   21390        7186 :     if (__pyx_kwds) {
   21391           0 :       Py_ssize_t kw_args;
   21392           0 :       switch (__pyx_nargs) {
   21393           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   21394           0 :         CYTHON_FALLTHROUGH;
   21395           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   21396           0 :         CYTHON_FALLTHROUGH;
   21397           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   21398           0 :         CYTHON_FALLTHROUGH;
   21399           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   21400           0 :         CYTHON_FALLTHROUGH;
   21401           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   21402           0 :         CYTHON_FALLTHROUGH;
   21403           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   21404           0 :         CYTHON_FALLTHROUGH;
   21405           0 :         case  0: break;
   21406           0 :         default: goto __pyx_L5_argtuple_error;
   21407             :       }
   21408           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   21409           0 :       switch (__pyx_nargs) {
   21410           0 :         case  0:
   21411           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   21412           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   21413           0 :           kw_args--;
   21414             :         }
   21415           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 18, __pyx_L3_error)
   21416           0 :         else goto __pyx_L5_argtuple_error;
   21417           0 :         CYTHON_FALLTHROUGH;
   21418             :         case  1:
   21419           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   21420           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   21421           0 :           kw_args--;
   21422             :         }
   21423           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 18, __pyx_L3_error)
   21424             :         else {
   21425           0 :           __Pyx_RaiseArgtupleInvalid("lil_get1", 1, 6, 6, 1); __PYX_ERR(0, 18, __pyx_L3_error)
   21426             :         }
   21427           0 :         CYTHON_FALLTHROUGH;
   21428             :         case  2:
   21429           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   21430           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   21431           0 :           kw_args--;
   21432             :         }
   21433           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 18, __pyx_L3_error)
   21434             :         else {
   21435           0 :           __Pyx_RaiseArgtupleInvalid("lil_get1", 1, 6, 6, 2); __PYX_ERR(0, 18, __pyx_L3_error)
   21436             :         }
   21437           0 :         CYTHON_FALLTHROUGH;
   21438             :         case  3:
   21439           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_datas)) != 0)) {
   21440           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   21441           0 :           kw_args--;
   21442             :         }
   21443           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 18, __pyx_L3_error)
   21444             :         else {
   21445           0 :           __Pyx_RaiseArgtupleInvalid("lil_get1", 1, 6, 6, 3); __PYX_ERR(0, 18, __pyx_L3_error)
   21446             :         }
   21447           0 :         CYTHON_FALLTHROUGH;
   21448             :         case  4:
   21449           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i)) != 0)) {
   21450           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   21451           0 :           kw_args--;
   21452             :         }
   21453           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 18, __pyx_L3_error)
   21454             :         else {
   21455           0 :           __Pyx_RaiseArgtupleInvalid("lil_get1", 1, 6, 6, 4); __PYX_ERR(0, 18, __pyx_L3_error)
   21456             :         }
   21457           0 :         CYTHON_FALLTHROUGH;
   21458             :         case  5:
   21459           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j)) != 0)) {
   21460           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   21461           0 :           kw_args--;
   21462             :         }
   21463           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 18, __pyx_L3_error)
   21464             :         else {
   21465           0 :           __Pyx_RaiseArgtupleInvalid("lil_get1", 1, 6, 6, 5); __PYX_ERR(0, 18, __pyx_L3_error)
   21466             :         }
   21467             :       }
   21468           0 :       if (unlikely(kw_args > 0)) {
   21469           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   21470           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "lil_get1") < 0)) __PYX_ERR(0, 18, __pyx_L3_error)
   21471             :       }
   21472        7186 :     } else if (unlikely(__pyx_nargs != 6)) {
   21473           0 :       goto __pyx_L5_argtuple_error;
   21474             :     } else {
   21475        7186 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   21476        7186 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   21477        7186 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   21478        7186 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   21479        7186 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   21480        7186 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   21481             :     }
   21482        7186 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 18, __pyx_L3_error)
   21483        7186 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 18, __pyx_L3_error)
   21484        7186 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 18, __pyx_L3_error)
   21485        7186 :     __pyx_v_datas = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_datas.memview)) __PYX_ERR(0, 18, __pyx_L3_error)
   21486        7186 :     __pyx_v_i = __Pyx_PyInt_As_npy_intp(values[4]); if (unlikely((__pyx_v_i == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 19, __pyx_L3_error)
   21487        7186 :     __pyx_v_j = __Pyx_PyInt_As_npy_intp(values[5]); if (unlikely((__pyx_v_j == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 19, __pyx_L3_error)
   21488             :   }
   21489        7186 :   goto __pyx_L6_skip;
   21490           0 :   __pyx_L5_argtuple_error:;
   21491           0 :   __Pyx_RaiseArgtupleInvalid("lil_get1", 1, 6, 6, __pyx_nargs); __PYX_ERR(0, 18, __pyx_L3_error)
   21492        7186 :   __pyx_L6_skip:;
   21493        7186 :   goto __pyx_L4_argument_unpacking_done;
   21494           0 :   __pyx_L3_error:;
   21495             :   {
   21496           0 :     Py_ssize_t __pyx_temp;
   21497           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   21498             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   21499             :     }
   21500             :   }
   21501           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   21502           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_datas, 1);
   21503           0 :   __Pyx_AddTraceback("_csparsetools.lil_get1", __pyx_clineno, __pyx_lineno, __pyx_filename);
   21504           0 :   __Pyx_RefNannyFinishContext();
   21505           0 :   return NULL;
   21506        7186 :   __pyx_L4_argument_unpacking_done:;
   21507        7186 :   __pyx_r = __pyx_pf_13_csparsetools_lil_get1(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_datas, __pyx_v_i, __pyx_v_j);
   21508             : 
   21509             :   /* function exit code */
   21510        7186 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   21511        7186 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_datas, 1);
   21512             :   {
   21513        7186 :     Py_ssize_t __pyx_temp;
   21514        7186 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   21515             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   21516             :     }
   21517             :   }
   21518             :   __Pyx_RefNannyFinishContext();
   21519             :   return __pyx_r;
   21520             : }
   21521             : 
   21522        7186 : static PyObject *__pyx_pf_13_csparsetools_lil_get1(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_datas, npy_intp __pyx_v_i, npy_intp __pyx_v_j) {
   21523        7186 :   PyObject *__pyx_r = NULL;
   21524             :   __Pyx_RefNannyDeclarations
   21525        7186 :   PyObject *__pyx_t_1 = NULL;
   21526        7186 :   int __pyx_lineno = 0;
   21527        7186 :   const char *__pyx_filename = NULL;
   21528        7186 :   int __pyx_clineno = 0;
   21529        7186 :   __Pyx_RefNannySetupContext("lil_get1", 1);
   21530        7186 :   __Pyx_XDECREF(__pyx_r);
   21531        7186 :   if (unlikely(!__pyx_v_rows.memview)) { __Pyx_RaiseUnboundLocalError("rows"); __PYX_ERR(0, 18, __pyx_L1_error) }
   21532        7186 :   if (unlikely(!__pyx_v_datas.memview)) { __Pyx_RaiseUnboundLocalError("datas"); __PYX_ERR(0, 18, __pyx_L1_error) }
   21533        7186 :   __pyx_t_1 = __pyx_f_13_csparsetools_lil_get1(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_datas, __pyx_v_i, __pyx_v_j, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18, __pyx_L1_error)
   21534        6591 :   __Pyx_GOTREF(__pyx_t_1);
   21535        6591 :   __pyx_r = __pyx_t_1;
   21536        6591 :   __pyx_t_1 = 0;
   21537        6591 :   goto __pyx_L0;
   21538             : 
   21539             :   /* function exit code */
   21540         595 :   __pyx_L1_error:;
   21541         595 :   __Pyx_XDECREF(__pyx_t_1);
   21542         595 :   __Pyx_AddTraceback("_csparsetools.lil_get1", __pyx_clineno, __pyx_lineno, __pyx_filename);
   21543         595 :   __pyx_r = NULL;
   21544        7186 :   __pyx_L0:;
   21545        7186 :   __Pyx_XGIVEREF(__pyx_r);
   21546        7186 :   __Pyx_RefNannyFinishContext();
   21547        7186 :   return __pyx_r;
   21548             : }
   21549             : 
   21550             : /* "_csparsetools.pyx":61
   21551             :  * 
   21552             :  * @cython.wraparound(False)
   21553             :  * cpdef int lil_insert(cnp.npy_intp M, cnp.npy_intp N, object[:] rows,             # <<<<<<<<<<<<<<
   21554             :  *                      object[:] datas, cnp.npy_intp i, cnp.npy_intp j,
   21555             :  *                      object x) except -1:
   21556             :  */
   21557             : 
   21558             : static PyObject *__pyx_pw_13_csparsetools_3lil_insert(PyObject *__pyx_self, 
   21559             : #if CYTHON_METH_FASTCALL
   21560             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   21561             : #else
   21562             : PyObject *__pyx_args, PyObject *__pyx_kwds
   21563             : #endif
   21564             : ); /*proto*/
   21565       77970 : static int __pyx_f_13_csparsetools_lil_insert(npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_datas, npy_intp __pyx_v_i, npy_intp __pyx_v_j, PyObject *__pyx_v_x, CYTHON_UNUSED int __pyx_skip_dispatch) {
   21566       77970 :   PyObject *__pyx_v_row = 0;
   21567       77970 :   PyObject *__pyx_v_data = 0;
   21568       77970 :   npy_intp __pyx_v_pos;
   21569       77970 :   int __pyx_r;
   21570             :   __Pyx_RefNannyDeclarations
   21571       77970 :   int __pyx_t_1;
   21572       77970 :   int __pyx_t_2;
   21573       77970 :   PyObject *__pyx_t_3 = NULL;
   21574       77970 :   Py_ssize_t __pyx_t_4;
   21575       77970 :   Py_UCS4 __pyx_t_5;
   21576       77970 :   PyObject *__pyx_t_6 = NULL;
   21577       77970 :   PyObject *__pyx_t_7 = NULL;
   21578       77970 :   Py_ssize_t __pyx_t_8;
   21579       77970 :   int __pyx_t_9;
   21580       77970 :   npy_intp __pyx_t_10;
   21581       77970 :   int __pyx_t_11;
   21582       77970 :   int __pyx_lineno = 0;
   21583       77970 :   const char *__pyx_filename = NULL;
   21584       77970 :   int __pyx_clineno = 0;
   21585       77970 :   __Pyx_RefNannySetupContext("lil_insert", 1);
   21586             : 
   21587             :   /* "_csparsetools.pyx":81
   21588             :  *     cdef list row, data
   21589             :  * 
   21590             :  *     if i < -M or i >= M:             # <<<<<<<<<<<<<<
   21591             :  *         raise IndexError('row index (%d) out of bounds' % (i,))
   21592             :  *     if i < 0:
   21593             :  */
   21594       77970 :   __pyx_t_2 = (__pyx_v_i < (-__pyx_v_M));
   21595       77970 :   if (!__pyx_t_2) {
   21596       77970 :   } else {
   21597           0 :     __pyx_t_1 = __pyx_t_2;
   21598           0 :     goto __pyx_L4_bool_binop_done;
   21599             :   }
   21600       77970 :   __pyx_t_2 = (__pyx_v_i >= __pyx_v_M);
   21601       77970 :   __pyx_t_1 = __pyx_t_2;
   21602       77970 :   __pyx_L4_bool_binop_done:;
   21603       77970 :   if (unlikely(__pyx_t_1)) {
   21604             : 
   21605             :     /* "_csparsetools.pyx":82
   21606             :  * 
   21607             :  *     if i < -M or i >= M:
   21608             :  *         raise IndexError('row index (%d) out of bounds' % (i,))             # <<<<<<<<<<<<<<
   21609             :  *     if i < 0:
   21610             :  *         i += M
   21611             :  */
   21612         378 :     __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 82, __pyx_L1_error)
   21613         378 :     __Pyx_GOTREF(__pyx_t_3);
   21614         378 :     __pyx_t_4 = 0;
   21615         378 :     __pyx_t_5 = 127;
   21616         378 :     __Pyx_INCREF(__pyx_kp_u_row_index);
   21617         378 :     __pyx_t_4 += 11;
   21618         378 :     __Pyx_GIVEREF(__pyx_kp_u_row_index);
   21619         378 :     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_row_index);
   21620         378 :     __pyx_t_6 = __Pyx_PyInt_From_npy_intp(__pyx_v_i); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
   21621         378 :     __Pyx_GOTREF(__pyx_t_6);
   21622         378 :     __pyx_t_7 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_6), __pyx_n_u_d); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 82, __pyx_L1_error)
   21623         378 :     __Pyx_GOTREF(__pyx_t_7);
   21624         378 :     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   21625         378 :     __pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_5;
   21626         378 :     __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
   21627         378 :     __Pyx_GIVEREF(__pyx_t_7);
   21628         378 :     PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7);
   21629         378 :     __pyx_t_7 = 0;
   21630         378 :     __Pyx_INCREF(__pyx_kp_u_out_of_bounds);
   21631         378 :     __pyx_t_4 += 15;
   21632         378 :     __Pyx_GIVEREF(__pyx_kp_u_out_of_bounds);
   21633         378 :     PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_out_of_bounds);
   21634         378 :     __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 82, __pyx_L1_error)
   21635         378 :     __Pyx_GOTREF(__pyx_t_7);
   21636         378 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   21637         378 :     __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 82, __pyx_L1_error)
   21638         378 :     __Pyx_GOTREF(__pyx_t_3);
   21639         378 :     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   21640         378 :     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
   21641         378 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   21642         378 :     __PYX_ERR(0, 82, __pyx_L1_error)
   21643             : 
   21644             :     /* "_csparsetools.pyx":81
   21645             :  *     cdef list row, data
   21646             :  * 
   21647             :  *     if i < -M or i >= M:             # <<<<<<<<<<<<<<
   21648             :  *         raise IndexError('row index (%d) out of bounds' % (i,))
   21649             :  *     if i < 0:
   21650             :  */
   21651             :   }
   21652             : 
   21653             :   /* "_csparsetools.pyx":83
   21654             :  *     if i < -M or i >= M:
   21655             :  *         raise IndexError('row index (%d) out of bounds' % (i,))
   21656             :  *     if i < 0:             # <<<<<<<<<<<<<<
   21657             :  *         i += M
   21658             :  * 
   21659             :  */
   21660       77592 :   __pyx_t_1 = (__pyx_v_i < 0);
   21661       77592 :   if (__pyx_t_1) {
   21662             : 
   21663             :     /* "_csparsetools.pyx":84
   21664             :  *         raise IndexError('row index (%d) out of bounds' % (i,))
   21665             :  *     if i < 0:
   21666             :  *         i += M             # <<<<<<<<<<<<<<
   21667             :  * 
   21668             :  *     if j < -N or j >= N:
   21669             :  */
   21670         430 :     __pyx_v_i = (__pyx_v_i + __pyx_v_M);
   21671             : 
   21672             :     /* "_csparsetools.pyx":83
   21673             :  *     if i < -M or i >= M:
   21674             :  *         raise IndexError('row index (%d) out of bounds' % (i,))
   21675             :  *     if i < 0:             # <<<<<<<<<<<<<<
   21676             :  *         i += M
   21677             :  * 
   21678             :  */
   21679             :   }
   21680             : 
   21681             :   /* "_csparsetools.pyx":86
   21682             :  *         i += M
   21683             :  * 
   21684             :  *     if j < -N or j >= N:             # <<<<<<<<<<<<<<
   21685             :  *         raise IndexError('column index (%d) out of bounds' % (j,))
   21686             :  *     if j < 0:
   21687             :  */
   21688       77592 :   __pyx_t_2 = (__pyx_v_j < (-__pyx_v_N));
   21689       77592 :   if (!__pyx_t_2) {
   21690       77592 :   } else {
   21691           0 :     __pyx_t_1 = __pyx_t_2;
   21692           0 :     goto __pyx_L8_bool_binop_done;
   21693             :   }
   21694       77592 :   __pyx_t_2 = (__pyx_v_j >= __pyx_v_N);
   21695       77592 :   __pyx_t_1 = __pyx_t_2;
   21696       77592 :   __pyx_L8_bool_binop_done:;
   21697       77592 :   if (unlikely(__pyx_t_1)) {
   21698             : 
   21699             :     /* "_csparsetools.pyx":87
   21700             :  * 
   21701             :  *     if j < -N or j >= N:
   21702             :  *         raise IndexError('column index (%d) out of bounds' % (j,))             # <<<<<<<<<<<<<<
   21703             :  *     if j < 0:
   21704             :  *         j += N
   21705             :  */
   21706         259 :     __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 87, __pyx_L1_error)
   21707         259 :     __Pyx_GOTREF(__pyx_t_3);
   21708         259 :     __pyx_t_4 = 0;
   21709         259 :     __pyx_t_5 = 127;
   21710         259 :     __Pyx_INCREF(__pyx_kp_u_column_index);
   21711         259 :     __pyx_t_4 += 14;
   21712         259 :     __Pyx_GIVEREF(__pyx_kp_u_column_index);
   21713         259 :     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_column_index);
   21714         259 :     __pyx_t_7 = __Pyx_PyInt_From_npy_intp(__pyx_v_j); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 87, __pyx_L1_error)
   21715         259 :     __Pyx_GOTREF(__pyx_t_7);
   21716         259 :     __pyx_t_6 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_7), __pyx_n_u_d); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 87, __pyx_L1_error)
   21717         259 :     __Pyx_GOTREF(__pyx_t_6);
   21718         259 :     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   21719         259 :     __pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_5;
   21720         259 :     __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
   21721         259 :     __Pyx_GIVEREF(__pyx_t_6);
   21722         259 :     PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_6);
   21723         259 :     __pyx_t_6 = 0;
   21724         259 :     __Pyx_INCREF(__pyx_kp_u_out_of_bounds);
   21725         259 :     __pyx_t_4 += 15;
   21726         259 :     __Pyx_GIVEREF(__pyx_kp_u_out_of_bounds);
   21727         259 :     PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u_out_of_bounds);
   21728         259 :     __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 87, __pyx_L1_error)
   21729         259 :     __Pyx_GOTREF(__pyx_t_6);
   21730         259 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   21731         259 :     __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 87, __pyx_L1_error)
   21732         259 :     __Pyx_GOTREF(__pyx_t_3);
   21733         259 :     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   21734         259 :     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
   21735         259 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   21736         259 :     __PYX_ERR(0, 87, __pyx_L1_error)
   21737             : 
   21738             :     /* "_csparsetools.pyx":86
   21739             :  *         i += M
   21740             :  * 
   21741             :  *     if j < -N or j >= N:             # <<<<<<<<<<<<<<
   21742             :  *         raise IndexError('column index (%d) out of bounds' % (j,))
   21743             :  *     if j < 0:
   21744             :  */
   21745             :   }
   21746             : 
   21747             :   /* "_csparsetools.pyx":88
   21748             :  *     if j < -N or j >= N:
   21749             :  *         raise IndexError('column index (%d) out of bounds' % (j,))
   21750             :  *     if j < 0:             # <<<<<<<<<<<<<<
   21751             :  *         j += N
   21752             :  * 
   21753             :  */
   21754       77333 :   __pyx_t_1 = (__pyx_v_j < 0);
   21755       77333 :   if (__pyx_t_1) {
   21756             : 
   21757             :     /* "_csparsetools.pyx":89
   21758             :  *         raise IndexError('column index (%d) out of bounds' % (j,))
   21759             :  *     if j < 0:
   21760             :  *         j += N             # <<<<<<<<<<<<<<
   21761             :  * 
   21762             :  *     row = rows[i]
   21763             :  */
   21764         444 :     __pyx_v_j = (__pyx_v_j + __pyx_v_N);
   21765             : 
   21766             :     /* "_csparsetools.pyx":88
   21767             :  *     if j < -N or j >= N:
   21768             :  *         raise IndexError('column index (%d) out of bounds' % (j,))
   21769             :  *     if j < 0:             # <<<<<<<<<<<<<<
   21770             :  *         j += N
   21771             :  * 
   21772             :  */
   21773             :   }
   21774             : 
   21775             :   /* "_csparsetools.pyx":91
   21776             :  *         j += N
   21777             :  * 
   21778             :  *     row = rows[i]             # <<<<<<<<<<<<<<
   21779             :  *     data = datas[i]
   21780             :  * 
   21781             :  */
   21782       77333 :   __pyx_t_8 = __pyx_v_i;
   21783       77333 :   __pyx_t_9 = -1;
   21784       77333 :   if (__pyx_t_8 < 0) {
   21785             :     __pyx_t_9 = 0;
   21786       77333 :   } else if (unlikely(__pyx_t_8 >= __pyx_v_rows.shape[0])) __pyx_t_9 = 0;
   21787       77333 :   if (unlikely(__pyx_t_9 != -1)) {
   21788           0 :     __Pyx_RaiseBufferIndexError(__pyx_t_9);
   21789           0 :     __PYX_ERR(0, 91, __pyx_L1_error)
   21790             :   }
   21791       77333 :   __pyx_t_3 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_rows.data + __pyx_t_8 * __pyx_v_rows.strides[0]) ));
   21792       77333 :   if (unlikely(__pyx_t_3 == NULL)) __pyx_t_3 = Py_None;
   21793       77333 :   __Pyx_INCREF((PyObject*)__pyx_t_3);
   21794       77333 :   if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_3))) __PYX_ERR(0, 91, __pyx_L1_error)
   21795       77333 :   __pyx_v_row = ((PyObject*)__pyx_t_3);
   21796       77333 :   __pyx_t_3 = 0;
   21797             : 
   21798             :   /* "_csparsetools.pyx":92
   21799             :  * 
   21800             :  *     row = rows[i]
   21801             :  *     data = datas[i]             # <<<<<<<<<<<<<<
   21802             :  * 
   21803             :  *     cdef cnp.npy_intp pos = bisect_left(row, j)
   21804             :  */
   21805       77333 :   __pyx_t_8 = __pyx_v_i;
   21806       77333 :   __pyx_t_9 = -1;
   21807       77333 :   if (__pyx_t_8 < 0) {
   21808             :     __pyx_t_9 = 0;
   21809       77333 :   } else if (unlikely(__pyx_t_8 >= __pyx_v_datas.shape[0])) __pyx_t_9 = 0;
   21810       77333 :   if (unlikely(__pyx_t_9 != -1)) {
   21811           0 :     __Pyx_RaiseBufferIndexError(__pyx_t_9);
   21812           0 :     __PYX_ERR(0, 92, __pyx_L1_error)
   21813             :   }
   21814       77333 :   __pyx_t_3 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_datas.data + __pyx_t_8 * __pyx_v_datas.strides[0]) ));
   21815       77333 :   if (unlikely(__pyx_t_3 == NULL)) __pyx_t_3 = Py_None;
   21816       77333 :   __Pyx_INCREF((PyObject*)__pyx_t_3);
   21817       77333 :   if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_3))) __PYX_ERR(0, 92, __pyx_L1_error)
   21818       77333 :   __pyx_v_data = ((PyObject*)__pyx_t_3);
   21819       77333 :   __pyx_t_3 = 0;
   21820             : 
   21821             :   /* "_csparsetools.pyx":94
   21822             :  *     data = datas[i]
   21823             :  * 
   21824             :  *     cdef cnp.npy_intp pos = bisect_left(row, j)             # <<<<<<<<<<<<<<
   21825             :  *     if x == 0:
   21826             :  *         if pos < len(row) and row[pos] == j:
   21827             :  */
   21828       77333 :   __pyx_t_10 = __pyx_f_13_csparsetools_bisect_left(__pyx_v_row, __pyx_v_j); if (unlikely(__pyx_t_10 == ((npy_intp)-1L))) __PYX_ERR(0, 94, __pyx_L1_error)
   21829       77333 :   __pyx_v_pos = __pyx_t_10;
   21830             : 
   21831             :   /* "_csparsetools.pyx":95
   21832             :  * 
   21833             :  *     cdef cnp.npy_intp pos = bisect_left(row, j)
   21834             :  *     if x == 0:             # <<<<<<<<<<<<<<
   21835             :  *         if pos < len(row) and row[pos] == j:
   21836             :  *             del row[pos]
   21837             :  */
   21838       77333 :   __pyx_t_1 = (__Pyx_PyInt_BoolEqObjC(__pyx_v_x, __pyx_int_0, 0, 0)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 95, __pyx_L1_error)
   21839       77333 :   if (__pyx_t_1) {
   21840             : 
   21841             :     /* "_csparsetools.pyx":96
   21842             :  *     cdef cnp.npy_intp pos = bisect_left(row, j)
   21843             :  *     if x == 0:
   21844             :  *         if pos < len(row) and row[pos] == j:             # <<<<<<<<<<<<<<
   21845             :  *             del row[pos]
   21846             :  *             del data[pos]
   21847             :  */
   21848        1558 :     if (unlikely(__pyx_v_row == Py_None)) {
   21849           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   21850           0 :       __PYX_ERR(0, 96, __pyx_L1_error)
   21851             :     }
   21852        1558 :     __pyx_t_4 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 96, __pyx_L1_error)
   21853        1558 :     __pyx_t_2 = (__pyx_v_pos < __pyx_t_4);
   21854        1558 :     if (__pyx_t_2) {
   21855        1219 :     } else {
   21856         339 :       __pyx_t_1 = __pyx_t_2;
   21857         339 :       goto __pyx_L13_bool_binop_done;
   21858             :     }
   21859        1219 :     if (unlikely(__pyx_v_row == Py_None)) {
   21860             :       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   21861             :       __PYX_ERR(0, 96, __pyx_L1_error)
   21862             :     }
   21863        1219 :     __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_row, __pyx_v_pos, npy_intp, 1, __Pyx_PyInt_From_npy_intp, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 96, __pyx_L1_error)
   21864        1219 :     __Pyx_GOTREF(__pyx_t_3);
   21865        1219 :     __pyx_t_6 = __Pyx_PyInt_From_npy_intp(__pyx_v_j); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 96, __pyx_L1_error)
   21866        1219 :     __Pyx_GOTREF(__pyx_t_6);
   21867        1219 :     __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 96, __pyx_L1_error)
   21868        1219 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   21869        1219 :     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   21870        1219 :     __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 96, __pyx_L1_error)
   21871        1219 :     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   21872             :     __pyx_t_1 = __pyx_t_2;
   21873        1558 :     __pyx_L13_bool_binop_done:;
   21874        1558 :     if (__pyx_t_1) {
   21875             : 
   21876             :       /* "_csparsetools.pyx":97
   21877             :  *     if x == 0:
   21878             :  *         if pos < len(row) and row[pos] == j:
   21879             :  *             del row[pos]             # <<<<<<<<<<<<<<
   21880             :  *             del data[pos]
   21881             :  *     else:
   21882             :  */
   21883         597 :       if (unlikely(__pyx_v_row == Py_None)) {
   21884             :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   21885             :         __PYX_ERR(0, 97, __pyx_L1_error)
   21886             :       }
   21887         597 :       if (unlikely((__Pyx_DelItemInt(__pyx_v_row, __pyx_v_pos, npy_intp, 1, __Pyx_PyInt_From_npy_intp, 1, 0, 1) < 0))) __PYX_ERR(0, 97, __pyx_L1_error)
   21888             : 
   21889             :       /* "_csparsetools.pyx":98
   21890             :  *         if pos < len(row) and row[pos] == j:
   21891             :  *             del row[pos]
   21892             :  *             del data[pos]             # <<<<<<<<<<<<<<
   21893             :  *     else:
   21894             :  *         if pos == len(row):
   21895             :  */
   21896         597 :       if (unlikely(__pyx_v_data == Py_None)) {
   21897           0 :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   21898           0 :         __PYX_ERR(0, 98, __pyx_L1_error)
   21899             :       }
   21900         597 :       if (unlikely((__Pyx_DelItemInt(__pyx_v_data, __pyx_v_pos, npy_intp, 1, __Pyx_PyInt_From_npy_intp, 1, 0, 1) < 0))) __PYX_ERR(0, 98, __pyx_L1_error)
   21901             : 
   21902             :       /* "_csparsetools.pyx":96
   21903             :  *     cdef cnp.npy_intp pos = bisect_left(row, j)
   21904             :  *     if x == 0:
   21905             :  *         if pos < len(row) and row[pos] == j:             # <<<<<<<<<<<<<<
   21906             :  *             del row[pos]
   21907             :  *             del data[pos]
   21908             :  */
   21909             :     }
   21910             : 
   21911             :     /* "_csparsetools.pyx":95
   21912             :  * 
   21913             :  *     cdef cnp.npy_intp pos = bisect_left(row, j)
   21914             :  *     if x == 0:             # <<<<<<<<<<<<<<
   21915             :  *         if pos < len(row) and row[pos] == j:
   21916             :  *             del row[pos]
   21917             :  */
   21918        1558 :     goto __pyx_L11;
   21919             :   }
   21920             : 
   21921             :   /* "_csparsetools.pyx":100
   21922             :  *             del data[pos]
   21923             :  *     else:
   21924             :  *         if pos == len(row):             # <<<<<<<<<<<<<<
   21925             :  *             row.append(j)
   21926             :  *             data.append(x)
   21927             :  */
   21928             :   /*else*/ {
   21929       75775 :     if (unlikely(__pyx_v_row == Py_None)) {
   21930           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   21931           0 :       __PYX_ERR(0, 100, __pyx_L1_error)
   21932             :     }
   21933       75775 :     __pyx_t_4 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 100, __pyx_L1_error)
   21934       75775 :     __pyx_t_1 = (__pyx_v_pos == __pyx_t_4);
   21935       75775 :     if (__pyx_t_1) {
   21936             : 
   21937             :       /* "_csparsetools.pyx":101
   21938             :  *     else:
   21939             :  *         if pos == len(row):
   21940             :  *             row.append(j)             # <<<<<<<<<<<<<<
   21941             :  *             data.append(x)
   21942             :  *         elif row[pos] != j:
   21943             :  */
   21944       41126 :       if (unlikely(__pyx_v_row == Py_None)) {
   21945             :         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
   21946             :         __PYX_ERR(0, 101, __pyx_L1_error)
   21947             :       }
   21948       41126 :       __pyx_t_7 = __Pyx_PyInt_From_npy_intp(__pyx_v_j); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 101, __pyx_L1_error)
   21949       41126 :       __Pyx_GOTREF(__pyx_t_7);
   21950       41126 :       __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_row, __pyx_t_7); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 101, __pyx_L1_error)
   21951       41126 :       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   21952             : 
   21953             :       /* "_csparsetools.pyx":102
   21954             :  *         if pos == len(row):
   21955             :  *             row.append(j)
   21956             :  *             data.append(x)             # <<<<<<<<<<<<<<
   21957             :  *         elif row[pos] != j:
   21958             :  *             row.insert(pos, j)
   21959             :  */
   21960       41126 :       if (unlikely(__pyx_v_data == Py_None)) {
   21961           0 :         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
   21962           0 :         __PYX_ERR(0, 102, __pyx_L1_error)
   21963             :       }
   21964       41126 :       __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_data, __pyx_v_x); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 102, __pyx_L1_error)
   21965             : 
   21966             :       /* "_csparsetools.pyx":100
   21967             :  *             del data[pos]
   21968             :  *     else:
   21969             :  *         if pos == len(row):             # <<<<<<<<<<<<<<
   21970             :  *             row.append(j)
   21971             :  *             data.append(x)
   21972             :  */
   21973       41126 :       goto __pyx_L15;
   21974             :     }
   21975             : 
   21976             :     /* "_csparsetools.pyx":103
   21977             :  *             row.append(j)
   21978             :  *             data.append(x)
   21979             :  *         elif row[pos] != j:             # <<<<<<<<<<<<<<
   21980             :  *             row.insert(pos, j)
   21981             :  *             data.insert(pos, x)
   21982             :  */
   21983       34649 :     if (unlikely(__pyx_v_row == Py_None)) {
   21984             :       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   21985             :       __PYX_ERR(0, 103, __pyx_L1_error)
   21986             :     }
   21987       34649 :     __pyx_t_7 = __Pyx_GetItemInt_List(__pyx_v_row, __pyx_v_pos, npy_intp, 1, __Pyx_PyInt_From_npy_intp, 1, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 103, __pyx_L1_error)
   21988       34649 :     __Pyx_GOTREF(__pyx_t_7);
   21989       34649 :     __pyx_t_6 = __Pyx_PyInt_From_npy_intp(__pyx_v_j); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 103, __pyx_L1_error)
   21990       34649 :     __Pyx_GOTREF(__pyx_t_6);
   21991       34649 :     __pyx_t_3 = PyObject_RichCompare(__pyx_t_7, __pyx_t_6, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 103, __pyx_L1_error)
   21992       34649 :     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   21993       34649 :     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   21994       34649 :     __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 103, __pyx_L1_error)
   21995       34649 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   21996       34649 :     if (__pyx_t_1) {
   21997             : 
   21998             :       /* "_csparsetools.pyx":104
   21999             :  *             data.append(x)
   22000             :  *         elif row[pos] != j:
   22001             :  *             row.insert(pos, j)             # <<<<<<<<<<<<<<
   22002             :  *             data.insert(pos, x)
   22003             :  *         else:
   22004             :  */
   22005       18532 :       if (unlikely(__pyx_v_row == Py_None)) {
   22006             :         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "insert");
   22007             :         __PYX_ERR(0, 104, __pyx_L1_error)
   22008             :       }
   22009       18532 :       __pyx_t_3 = __Pyx_PyInt_From_npy_intp(__pyx_v_j); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 104, __pyx_L1_error)
   22010       18532 :       __Pyx_GOTREF(__pyx_t_3);
   22011       18532 :       __pyx_t_11 = PyList_Insert(__pyx_v_row, __pyx_v_pos, __pyx_t_3); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 104, __pyx_L1_error)
   22012       18532 :       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   22013             : 
   22014             :       /* "_csparsetools.pyx":105
   22015             :  *         elif row[pos] != j:
   22016             :  *             row.insert(pos, j)
   22017             :  *             data.insert(pos, x)             # <<<<<<<<<<<<<<
   22018             :  *         else:
   22019             :  *             data[pos] = x
   22020             :  */
   22021       18532 :       if (unlikely(__pyx_v_data == Py_None)) {
   22022           0 :         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "insert");
   22023           0 :         __PYX_ERR(0, 105, __pyx_L1_error)
   22024             :       }
   22025       18532 :       __pyx_t_11 = PyList_Insert(__pyx_v_data, __pyx_v_pos, __pyx_v_x); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 105, __pyx_L1_error)
   22026             : 
   22027             :       /* "_csparsetools.pyx":103
   22028             :  *             row.append(j)
   22029             :  *             data.append(x)
   22030             :  *         elif row[pos] != j:             # <<<<<<<<<<<<<<
   22031             :  *             row.insert(pos, j)
   22032             :  *             data.insert(pos, x)
   22033             :  */
   22034       18532 :       goto __pyx_L15;
   22035             :     }
   22036             : 
   22037             :     /* "_csparsetools.pyx":107
   22038             :  *             data.insert(pos, x)
   22039             :  *         else:
   22040             :  *             data[pos] = x             # <<<<<<<<<<<<<<
   22041             :  * 
   22042             :  * def lil_get_lengths(object[:] input,
   22043             :  */
   22044             :     /*else*/ {
   22045       16117 :       if (unlikely(__pyx_v_data == Py_None)) {
   22046           0 :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   22047           0 :         __PYX_ERR(0, 107, __pyx_L1_error)
   22048             :       }
   22049       16117 :       if (unlikely((__Pyx_SetItemInt(__pyx_v_data, __pyx_v_pos, __pyx_v_x, npy_intp, 1, __Pyx_PyInt_From_npy_intp, 1, 0, 1) < 0))) __PYX_ERR(0, 107, __pyx_L1_error)
   22050             :     }
   22051       16117 :     __pyx_L15:;
   22052             :   }
   22053       77333 :   __pyx_L11:;
   22054             : 
   22055             :   /* "_csparsetools.pyx":61
   22056             :  * 
   22057             :  * @cython.wraparound(False)
   22058             :  * cpdef int lil_insert(cnp.npy_intp M, cnp.npy_intp N, object[:] rows,             # <<<<<<<<<<<<<<
   22059             :  *                      object[:] datas, cnp.npy_intp i, cnp.npy_intp j,
   22060             :  *                      object x) except -1:
   22061             :  */
   22062             : 
   22063             :   /* function exit code */
   22064       77333 :   __pyx_r = 0;
   22065       77333 :   goto __pyx_L0;
   22066         637 :   __pyx_L1_error:;
   22067         637 :   __Pyx_XDECREF(__pyx_t_3);
   22068         637 :   __Pyx_XDECREF(__pyx_t_6);
   22069         637 :   __Pyx_XDECREF(__pyx_t_7);
   22070         637 :   __Pyx_AddTraceback("_csparsetools.lil_insert", __pyx_clineno, __pyx_lineno, __pyx_filename);
   22071         637 :   __pyx_r = -1;
   22072       77970 :   __pyx_L0:;
   22073       77970 :   __Pyx_XDECREF(__pyx_v_row);
   22074       77970 :   __Pyx_XDECREF(__pyx_v_data);
   22075       77970 :   __Pyx_RefNannyFinishContext();
   22076       77970 :   return __pyx_r;
   22077             : }
   22078             : 
   22079             : /* Python wrapper */
   22080             : static PyObject *__pyx_pw_13_csparsetools_3lil_insert(PyObject *__pyx_self, 
   22081             : #if CYTHON_METH_FASTCALL
   22082             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   22083             : #else
   22084             : PyObject *__pyx_args, PyObject *__pyx_kwds
   22085             : #endif
   22086             : ); /*proto*/
   22087             : PyDoc_STRVAR(__pyx_doc_13_csparsetools_2lil_insert, "\n    Insert a single item to LIL matrix.\n\n    Checks for bounds errors and deletes item if x is zero.\n\n    Parameters\n    ----------\n    M, N, rows, datas\n        Shape and data arrays for a LIL matrix\n    i, j : int\n        Indices at which to get\n    x\n        Value to insert.\n\n    ");
   22088             : static PyMethodDef __pyx_mdef_13_csparsetools_3lil_insert = {"lil_insert", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_3lil_insert, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_13_csparsetools_2lil_insert};
   22089       10700 : static PyObject *__pyx_pw_13_csparsetools_3lil_insert(PyObject *__pyx_self, 
   22090             : #if CYTHON_METH_FASTCALL
   22091             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   22092             : #else
   22093             : PyObject *__pyx_args, PyObject *__pyx_kwds
   22094             : #endif
   22095             : ) {
   22096       10700 :   npy_intp __pyx_v_M;
   22097       10700 :   npy_intp __pyx_v_N;
   22098       10700 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   22099       10700 :   __Pyx_memviewslice __pyx_v_datas = { 0, 0, { 0 }, { 0 }, { 0 } };
   22100       10700 :   npy_intp __pyx_v_i;
   22101       10700 :   npy_intp __pyx_v_j;
   22102       10700 :   PyObject *__pyx_v_x = 0;
   22103             :   #if !CYTHON_METH_FASTCALL
   22104             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   22105             :   #endif
   22106       10700 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   22107       10700 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   22108       10700 :   int __pyx_lineno = 0;
   22109       10700 :   const char *__pyx_filename = NULL;
   22110       10700 :   int __pyx_clineno = 0;
   22111       10700 :   PyObject *__pyx_r = 0;
   22112             :   __Pyx_RefNannyDeclarations
   22113       10700 :   __Pyx_RefNannySetupContext("lil_insert (wrapper)", 0);
   22114             :   #if !CYTHON_METH_FASTCALL
   22115             :   #if CYTHON_ASSUME_SAFE_MACROS
   22116             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   22117             :   #else
   22118             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   22119             :   #endif
   22120             :   #endif
   22121       10700 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   22122             :   {
   22123       10700 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_datas,&__pyx_n_s_i,&__pyx_n_s_j,&__pyx_n_s_x,0};
   22124       10700 :     if (__pyx_kwds) {
   22125           0 :       Py_ssize_t kw_args;
   22126           0 :       switch (__pyx_nargs) {
   22127           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   22128           0 :         CYTHON_FALLTHROUGH;
   22129           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   22130           0 :         CYTHON_FALLTHROUGH;
   22131           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   22132           0 :         CYTHON_FALLTHROUGH;
   22133           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   22134           0 :         CYTHON_FALLTHROUGH;
   22135           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   22136           0 :         CYTHON_FALLTHROUGH;
   22137           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   22138           0 :         CYTHON_FALLTHROUGH;
   22139           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   22140           0 :         CYTHON_FALLTHROUGH;
   22141           0 :         case  0: break;
   22142           0 :         default: goto __pyx_L5_argtuple_error;
   22143             :       }
   22144           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   22145           0 :       switch (__pyx_nargs) {
   22146           0 :         case  0:
   22147           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   22148           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   22149           0 :           kw_args--;
   22150             :         }
   22151           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 61, __pyx_L3_error)
   22152           0 :         else goto __pyx_L5_argtuple_error;
   22153           0 :         CYTHON_FALLTHROUGH;
   22154             :         case  1:
   22155           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   22156           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   22157           0 :           kw_args--;
   22158             :         }
   22159           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 61, __pyx_L3_error)
   22160             :         else {
   22161           0 :           __Pyx_RaiseArgtupleInvalid("lil_insert", 1, 7, 7, 1); __PYX_ERR(0, 61, __pyx_L3_error)
   22162             :         }
   22163           0 :         CYTHON_FALLTHROUGH;
   22164             :         case  2:
   22165           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   22166           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   22167           0 :           kw_args--;
   22168             :         }
   22169           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 61, __pyx_L3_error)
   22170             :         else {
   22171           0 :           __Pyx_RaiseArgtupleInvalid("lil_insert", 1, 7, 7, 2); __PYX_ERR(0, 61, __pyx_L3_error)
   22172             :         }
   22173           0 :         CYTHON_FALLTHROUGH;
   22174             :         case  3:
   22175           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_datas)) != 0)) {
   22176           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   22177           0 :           kw_args--;
   22178             :         }
   22179           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 61, __pyx_L3_error)
   22180             :         else {
   22181           0 :           __Pyx_RaiseArgtupleInvalid("lil_insert", 1, 7, 7, 3); __PYX_ERR(0, 61, __pyx_L3_error)
   22182             :         }
   22183           0 :         CYTHON_FALLTHROUGH;
   22184             :         case  4:
   22185           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i)) != 0)) {
   22186           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   22187           0 :           kw_args--;
   22188             :         }
   22189           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 61, __pyx_L3_error)
   22190             :         else {
   22191           0 :           __Pyx_RaiseArgtupleInvalid("lil_insert", 1, 7, 7, 4); __PYX_ERR(0, 61, __pyx_L3_error)
   22192             :         }
   22193           0 :         CYTHON_FALLTHROUGH;
   22194             :         case  5:
   22195           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j)) != 0)) {
   22196           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   22197           0 :           kw_args--;
   22198             :         }
   22199           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 61, __pyx_L3_error)
   22200             :         else {
   22201           0 :           __Pyx_RaiseArgtupleInvalid("lil_insert", 1, 7, 7, 5); __PYX_ERR(0, 61, __pyx_L3_error)
   22202             :         }
   22203           0 :         CYTHON_FALLTHROUGH;
   22204             :         case  6:
   22205           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
   22206           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   22207           0 :           kw_args--;
   22208             :         }
   22209           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 61, __pyx_L3_error)
   22210             :         else {
   22211           0 :           __Pyx_RaiseArgtupleInvalid("lil_insert", 1, 7, 7, 6); __PYX_ERR(0, 61, __pyx_L3_error)
   22212             :         }
   22213             :       }
   22214           0 :       if (unlikely(kw_args > 0)) {
   22215           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   22216           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "lil_insert") < 0)) __PYX_ERR(0, 61, __pyx_L3_error)
   22217             :       }
   22218       10700 :     } else if (unlikely(__pyx_nargs != 7)) {
   22219           0 :       goto __pyx_L5_argtuple_error;
   22220             :     } else {
   22221       10700 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   22222       10700 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   22223       10700 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   22224       10700 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   22225       10700 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   22226       10700 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   22227       10700 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   22228             :     }
   22229       10700 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 61, __pyx_L3_error)
   22230       10700 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 61, __pyx_L3_error)
   22231       10700 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 61, __pyx_L3_error)
   22232       10700 :     __pyx_v_datas = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_datas.memview)) __PYX_ERR(0, 62, __pyx_L3_error)
   22233       10700 :     __pyx_v_i = __Pyx_PyInt_As_npy_intp(values[4]); if (unlikely((__pyx_v_i == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 62, __pyx_L3_error)
   22234       10700 :     __pyx_v_j = __Pyx_PyInt_As_npy_intp(values[5]); if (unlikely((__pyx_v_j == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 62, __pyx_L3_error)
   22235       10700 :     __pyx_v_x = values[6];
   22236             :   }
   22237       10700 :   goto __pyx_L6_skip;
   22238           0 :   __pyx_L5_argtuple_error:;
   22239           0 :   __Pyx_RaiseArgtupleInvalid("lil_insert", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 61, __pyx_L3_error)
   22240       10700 :   __pyx_L6_skip:;
   22241       10700 :   goto __pyx_L4_argument_unpacking_done;
   22242           0 :   __pyx_L3_error:;
   22243             :   {
   22244           0 :     Py_ssize_t __pyx_temp;
   22245           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   22246             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   22247             :     }
   22248             :   }
   22249           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   22250           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_datas, 1);
   22251           0 :   __Pyx_AddTraceback("_csparsetools.lil_insert", __pyx_clineno, __pyx_lineno, __pyx_filename);
   22252           0 :   __Pyx_RefNannyFinishContext();
   22253           0 :   return NULL;
   22254       10700 :   __pyx_L4_argument_unpacking_done:;
   22255       10700 :   __pyx_r = __pyx_pf_13_csparsetools_2lil_insert(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_datas, __pyx_v_i, __pyx_v_j, __pyx_v_x);
   22256             : 
   22257             :   /* function exit code */
   22258       10700 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   22259       10700 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_datas, 1);
   22260             :   {
   22261       10700 :     Py_ssize_t __pyx_temp;
   22262       10700 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   22263             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   22264             :     }
   22265             :   }
   22266             :   __Pyx_RefNannyFinishContext();
   22267             :   return __pyx_r;
   22268             : }
   22269             : 
   22270       10700 : static PyObject *__pyx_pf_13_csparsetools_2lil_insert(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_datas, npy_intp __pyx_v_i, npy_intp __pyx_v_j, PyObject *__pyx_v_x) {
   22271       10700 :   PyObject *__pyx_r = NULL;
   22272             :   __Pyx_RefNannyDeclarations
   22273       10700 :   int __pyx_t_1;
   22274       10700 :   PyObject *__pyx_t_2 = NULL;
   22275       10700 :   int __pyx_lineno = 0;
   22276       10700 :   const char *__pyx_filename = NULL;
   22277       10700 :   int __pyx_clineno = 0;
   22278       10700 :   __Pyx_RefNannySetupContext("lil_insert", 1);
   22279       10700 :   __Pyx_XDECREF(__pyx_r);
   22280       10700 :   if (unlikely(!__pyx_v_rows.memview)) { __Pyx_RaiseUnboundLocalError("rows"); __PYX_ERR(0, 61, __pyx_L1_error) }
   22281       10700 :   if (unlikely(!__pyx_v_datas.memview)) { __Pyx_RaiseUnboundLocalError("datas"); __PYX_ERR(0, 61, __pyx_L1_error) }
   22282       10700 :   __pyx_t_1 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_datas, __pyx_v_i, __pyx_v_j, __pyx_v_x, 0); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 61, __pyx_L1_error)
   22283       10105 :   __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 61, __pyx_L1_error)
   22284       10105 :   __Pyx_GOTREF(__pyx_t_2);
   22285       10105 :   __pyx_r = __pyx_t_2;
   22286       10105 :   __pyx_t_2 = 0;
   22287       10105 :   goto __pyx_L0;
   22288             : 
   22289             :   /* function exit code */
   22290         595 :   __pyx_L1_error:;
   22291         595 :   __Pyx_XDECREF(__pyx_t_2);
   22292         595 :   __Pyx_AddTraceback("_csparsetools.lil_insert", __pyx_clineno, __pyx_lineno, __pyx_filename);
   22293         595 :   __pyx_r = NULL;
   22294       10700 :   __pyx_L0:;
   22295       10700 :   __Pyx_XGIVEREF(__pyx_r);
   22296       10700 :   __Pyx_RefNannyFinishContext();
   22297       10700 :   return __pyx_r;
   22298             : }
   22299             : 
   22300             : /* "_csparsetools.pyx":109
   22301             :  *             data[pos] = x
   22302             :  * 
   22303             :  * def lil_get_lengths(object[:] input,             # <<<<<<<<<<<<<<
   22304             :  *                     cnp.ndarray output):
   22305             :  *     return _LIL_GET_LENGTHS_DISPATCH[output.dtype](input, output)
   22306             :  */
   22307             : 
   22308             : /* Python wrapper */
   22309             : static PyObject *__pyx_pw_13_csparsetools_5lil_get_lengths(PyObject *__pyx_self, 
   22310             : #if CYTHON_METH_FASTCALL
   22311             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   22312             : #else
   22313             : PyObject *__pyx_args, PyObject *__pyx_kwds
   22314             : #endif
   22315             : ); /*proto*/
   22316             : static PyMethodDef __pyx_mdef_13_csparsetools_5lil_get_lengths = {"lil_get_lengths", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_5lil_get_lengths, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   22317       43016 : static PyObject *__pyx_pw_13_csparsetools_5lil_get_lengths(PyObject *__pyx_self, 
   22318             : #if CYTHON_METH_FASTCALL
   22319             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   22320             : #else
   22321             : PyObject *__pyx_args, PyObject *__pyx_kwds
   22322             : #endif
   22323             : ) {
   22324       43016 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   22325       43016 :   PyArrayObject *__pyx_v_output = 0;
   22326             :   #if !CYTHON_METH_FASTCALL
   22327             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   22328             :   #endif
   22329       43016 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   22330       43016 :   PyObject* values[2] = {0,0};
   22331       43016 :   int __pyx_lineno = 0;
   22332       43016 :   const char *__pyx_filename = NULL;
   22333       43016 :   int __pyx_clineno = 0;
   22334       43016 :   PyObject *__pyx_r = 0;
   22335             :   __Pyx_RefNannyDeclarations
   22336       43016 :   __Pyx_RefNannySetupContext("lil_get_lengths (wrapper)", 0);
   22337             :   #if !CYTHON_METH_FASTCALL
   22338             :   #if CYTHON_ASSUME_SAFE_MACROS
   22339             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   22340             :   #else
   22341             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   22342             :   #endif
   22343             :   #endif
   22344       43016 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   22345             :   {
   22346       43016 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   22347       43016 :     if (__pyx_kwds) {
   22348           0 :       Py_ssize_t kw_args;
   22349           0 :       switch (__pyx_nargs) {
   22350           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   22351           0 :         CYTHON_FALLTHROUGH;
   22352           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   22353           0 :         CYTHON_FALLTHROUGH;
   22354           0 :         case  0: break;
   22355           0 :         default: goto __pyx_L5_argtuple_error;
   22356             :       }
   22357           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   22358           0 :       switch (__pyx_nargs) {
   22359             :         case  0:
   22360           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   22361           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   22362           0 :           kw_args--;
   22363             :         }
   22364           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 109, __pyx_L3_error)
   22365           0 :         else goto __pyx_L5_argtuple_error;
   22366           0 :         CYTHON_FALLTHROUGH;
   22367             :         case  1:
   22368           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   22369           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   22370           0 :           kw_args--;
   22371             :         }
   22372           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 109, __pyx_L3_error)
   22373             :         else {
   22374           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_lengths", 1, 2, 2, 1); __PYX_ERR(0, 109, __pyx_L3_error)
   22375             :         }
   22376             :       }
   22377           0 :       if (unlikely(kw_args > 0)) {
   22378           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   22379           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "lil_get_lengths") < 0)) __PYX_ERR(0, 109, __pyx_L3_error)
   22380             :       }
   22381       43016 :     } else if (unlikely(__pyx_nargs != 2)) {
   22382           0 :       goto __pyx_L5_argtuple_error;
   22383             :     } else {
   22384       43016 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   22385       43016 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   22386             :     }
   22387       43016 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 109, __pyx_L3_error)
   22388       43016 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   22389             :   }
   22390       43016 :   goto __pyx_L6_skip;
   22391           0 :   __pyx_L5_argtuple_error:;
   22392           0 :   __Pyx_RaiseArgtupleInvalid("lil_get_lengths", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 109, __pyx_L3_error)
   22393       43016 :   __pyx_L6_skip:;
   22394       43016 :   goto __pyx_L4_argument_unpacking_done;
   22395           0 :   __pyx_L3_error:;
   22396             :   {
   22397           0 :     Py_ssize_t __pyx_temp;
   22398           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   22399             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   22400             :     }
   22401             :   }
   22402           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   22403           0 :   __Pyx_AddTraceback("_csparsetools.lil_get_lengths", __pyx_clineno, __pyx_lineno, __pyx_filename);
   22404           0 :   __Pyx_RefNannyFinishContext();
   22405           0 :   return NULL;
   22406       43016 :   __pyx_L4_argument_unpacking_done:;
   22407       43016 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 1, "output", 0))) __PYX_ERR(0, 110, __pyx_L1_error)
   22408       43016 :   __pyx_r = __pyx_pf_13_csparsetools_4lil_get_lengths(__pyx_self, __pyx_v_input, __pyx_v_output);
   22409             : 
   22410             :   /* function exit code */
   22411       43016 :   goto __pyx_L0;
   22412           0 :   __pyx_L1_error:;
   22413           0 :   __pyx_r = NULL;
   22414       43016 :   __pyx_L0:;
   22415       43016 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   22416             :   {
   22417       43016 :     Py_ssize_t __pyx_temp;
   22418       43016 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   22419             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   22420             :     }
   22421             :   }
   22422             :   __Pyx_RefNannyFinishContext();
   22423             :   return __pyx_r;
   22424             : }
   22425             : 
   22426       43016 : static PyObject *__pyx_pf_13_csparsetools_4lil_get_lengths(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   22427       43016 :   PyObject *__pyx_r = NULL;
   22428             :   __Pyx_RefNannyDeclarations
   22429       43016 :   PyObject *__pyx_t_1 = NULL;
   22430       43016 :   PyObject *__pyx_t_2 = NULL;
   22431       43016 :   PyObject *__pyx_t_3 = NULL;
   22432       43016 :   PyObject *__pyx_t_4 = NULL;
   22433       43016 :   unsigned int __pyx_t_5;
   22434       43016 :   int __pyx_lineno = 0;
   22435       43016 :   const char *__pyx_filename = NULL;
   22436       43016 :   int __pyx_clineno = 0;
   22437       43016 :   __Pyx_RefNannySetupContext("lil_get_lengths", 1);
   22438             : 
   22439             :   /* "_csparsetools.pyx":111
   22440             :  * def lil_get_lengths(object[:] input,
   22441             :  *                     cnp.ndarray output):
   22442             :  *     return _LIL_GET_LENGTHS_DISPATCH[output.dtype](input, output)             # <<<<<<<<<<<<<<
   22443             :  * @cython.boundscheck(False)
   22444             :  * @cython.wraparound(False)
   22445             :  */
   22446       43016 :   __Pyx_XDECREF(__pyx_r);
   22447       43016 :   if (unlikely(__pyx_v_13_csparsetools__LIL_GET_LENGTHS_DISPATCH == Py_None)) {
   22448           0 :     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   22449           0 :     __PYX_ERR(0, 111, __pyx_L1_error)
   22450             :   }
   22451       43016 :   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_output), __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 111, __pyx_L1_error)
   22452       43016 :   __Pyx_GOTREF(__pyx_t_2);
   22453       43016 :   __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_13_csparsetools__LIL_GET_LENGTHS_DISPATCH, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 111, __pyx_L1_error)
   22454       43016 :   __Pyx_GOTREF(__pyx_t_3);
   22455       43016 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   22456       43016 :   __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_input, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 111, __pyx_L1_error)
   22457       43016 :   __Pyx_GOTREF(__pyx_t_2);
   22458       43016 :   __pyx_t_4 = NULL;
   22459       43016 :   __pyx_t_5 = 0;
   22460             :   #if CYTHON_UNPACK_METHODS
   22461       43016 :   if (unlikely(PyMethod_Check(__pyx_t_3))) {
   22462           0 :     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
   22463           0 :     if (likely(__pyx_t_4)) {
   22464           0 :       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
   22465           0 :       __Pyx_INCREF(__pyx_t_4);
   22466           0 :       __Pyx_INCREF(function);
   22467           0 :       __Pyx_DECREF_SET(__pyx_t_3, function);
   22468             :       __pyx_t_5 = 1;
   22469             :     }
   22470             :   }
   22471             :   #endif
   22472             :   {
   22473       43016 :     PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_2, ((PyObject *)__pyx_v_output)};
   22474       43016 :     __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
   22475       43016 :     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
   22476       43016 :     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   22477       43016 :     if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error)
   22478       43016 :     __Pyx_GOTREF(__pyx_t_1);
   22479       43016 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   22480             :   }
   22481       43016 :   __pyx_r = __pyx_t_1;
   22482       43016 :   __pyx_t_1 = 0;
   22483       43016 :   goto __pyx_L0;
   22484             : 
   22485             :   /* "_csparsetools.pyx":109
   22486             :  *             data[pos] = x
   22487             :  * 
   22488             :  * def lil_get_lengths(object[:] input,             # <<<<<<<<<<<<<<
   22489             :  *                     cnp.ndarray output):
   22490             :  *     return _LIL_GET_LENGTHS_DISPATCH[output.dtype](input, output)
   22491             :  */
   22492             : 
   22493             :   /* function exit code */
   22494           0 :   __pyx_L1_error:;
   22495           0 :   __Pyx_XDECREF(__pyx_t_1);
   22496           0 :   __Pyx_XDECREF(__pyx_t_2);
   22497           0 :   __Pyx_XDECREF(__pyx_t_3);
   22498           0 :   __Pyx_XDECREF(__pyx_t_4);
   22499           0 :   __Pyx_AddTraceback("_csparsetools.lil_get_lengths", __pyx_clineno, __pyx_lineno, __pyx_filename);
   22500           0 :   __pyx_r = NULL;
   22501       43016 :   __pyx_L0:;
   22502       43016 :   __Pyx_XGIVEREF(__pyx_r);
   22503       43016 :   __Pyx_RefNannyFinishContext();
   22504       43016 :   return __pyx_r;
   22505             : }
   22506             : 
   22507             : /* "_csparsetools.pyx":112
   22508             :  *                     cnp.ndarray output):
   22509             :  *     return _LIL_GET_LENGTHS_DISPATCH[output.dtype](input, output)
   22510             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   22511             :  * @cython.wraparound(False)
   22512             :  * def _lil_get_lengths_int32(object[:] input,
   22513             :  */
   22514             : 
   22515             : /* Python wrapper */
   22516             : static PyObject *__pyx_pw_13_csparsetools_7_lil_get_lengths_int32(PyObject *__pyx_self, 
   22517             : #if CYTHON_METH_FASTCALL
   22518             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   22519             : #else
   22520             : PyObject *__pyx_args, PyObject *__pyx_kwds
   22521             : #endif
   22522             : ); /*proto*/
   22523             : static PyMethodDef __pyx_mdef_13_csparsetools_7_lil_get_lengths_int32 = {"_lil_get_lengths_int32", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_7_lil_get_lengths_int32, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   22524       43016 : static PyObject *__pyx_pw_13_csparsetools_7_lil_get_lengths_int32(PyObject *__pyx_self, 
   22525             : #if CYTHON_METH_FASTCALL
   22526             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   22527             : #else
   22528             : PyObject *__pyx_args, PyObject *__pyx_kwds
   22529             : #endif
   22530             : ) {
   22531       43016 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   22532       43016 :   PyArrayObject *__pyx_v_output = 0;
   22533             :   #if !CYTHON_METH_FASTCALL
   22534             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   22535             :   #endif
   22536       43016 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   22537       43016 :   PyObject* values[2] = {0,0};
   22538       43016 :   int __pyx_lineno = 0;
   22539       43016 :   const char *__pyx_filename = NULL;
   22540       43016 :   int __pyx_clineno = 0;
   22541       43016 :   PyObject *__pyx_r = 0;
   22542             :   __Pyx_RefNannyDeclarations
   22543       43016 :   __Pyx_RefNannySetupContext("_lil_get_lengths_int32 (wrapper)", 0);
   22544             :   #if !CYTHON_METH_FASTCALL
   22545             :   #if CYTHON_ASSUME_SAFE_MACROS
   22546             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   22547             :   #else
   22548             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   22549             :   #endif
   22550             :   #endif
   22551       43016 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   22552             :   {
   22553       43016 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   22554       43016 :     if (__pyx_kwds) {
   22555           0 :       Py_ssize_t kw_args;
   22556           0 :       switch (__pyx_nargs) {
   22557           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   22558           0 :         CYTHON_FALLTHROUGH;
   22559           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   22560           0 :         CYTHON_FALLTHROUGH;
   22561           0 :         case  0: break;
   22562           0 :         default: goto __pyx_L5_argtuple_error;
   22563             :       }
   22564           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   22565           0 :       switch (__pyx_nargs) {
   22566             :         case  0:
   22567           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   22568           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   22569           0 :           kw_args--;
   22570             :         }
   22571           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 112, __pyx_L3_error)
   22572           0 :         else goto __pyx_L5_argtuple_error;
   22573           0 :         CYTHON_FALLTHROUGH;
   22574             :         case  1:
   22575           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   22576           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   22577           0 :           kw_args--;
   22578             :         }
   22579           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 112, __pyx_L3_error)
   22580             :         else {
   22581           0 :           __Pyx_RaiseArgtupleInvalid("_lil_get_lengths_int32", 1, 2, 2, 1); __PYX_ERR(0, 112, __pyx_L3_error)
   22582             :         }
   22583             :       }
   22584           0 :       if (unlikely(kw_args > 0)) {
   22585           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   22586           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_get_lengths_int32") < 0)) __PYX_ERR(0, 112, __pyx_L3_error)
   22587             :       }
   22588       43016 :     } else if (unlikely(__pyx_nargs != 2)) {
   22589           0 :       goto __pyx_L5_argtuple_error;
   22590             :     } else {
   22591       43016 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   22592       43016 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   22593             :     }
   22594       43016 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 114, __pyx_L3_error)
   22595       43016 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   22596             :   }
   22597       43016 :   goto __pyx_L6_skip;
   22598           0 :   __pyx_L5_argtuple_error:;
   22599           0 :   __Pyx_RaiseArgtupleInvalid("_lil_get_lengths_int32", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 112, __pyx_L3_error)
   22600       43016 :   __pyx_L6_skip:;
   22601       43016 :   goto __pyx_L4_argument_unpacking_done;
   22602           0 :   __pyx_L3_error:;
   22603             :   {
   22604           0 :     Py_ssize_t __pyx_temp;
   22605           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   22606             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   22607             :     }
   22608             :   }
   22609           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   22610           0 :   __Pyx_AddTraceback("_csparsetools._lil_get_lengths_int32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   22611           0 :   __Pyx_RefNannyFinishContext();
   22612           0 :   return NULL;
   22613       43016 :   __pyx_L4_argument_unpacking_done:;
   22614       43016 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 1, "output", 0))) __PYX_ERR(0, 115, __pyx_L1_error)
   22615       43016 :   __pyx_r = __pyx_pf_13_csparsetools_6_lil_get_lengths_int32(__pyx_self, __pyx_v_input, __pyx_v_output);
   22616             : 
   22617             :   /* function exit code */
   22618       43016 :   goto __pyx_L0;
   22619           0 :   __pyx_L1_error:;
   22620           0 :   __pyx_r = NULL;
   22621       43016 :   __pyx_L0:;
   22622       43016 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   22623             :   {
   22624       43016 :     Py_ssize_t __pyx_temp;
   22625       43016 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   22626             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   22627             :     }
   22628             :   }
   22629             :   __Pyx_RefNannyFinishContext();
   22630             :   return __pyx_r;
   22631             : }
   22632             : 
   22633       43016 : static PyObject *__pyx_pf_13_csparsetools_6_lil_get_lengths_int32(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   22634       43016 :   Py_ssize_t __pyx_v_i;
   22635       43016 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   22636       43016 :   __Pyx_Buffer __pyx_pybuffer_output;
   22637       43016 :   PyObject *__pyx_r = NULL;
   22638             :   __Pyx_RefNannyDeclarations
   22639       43016 :   Py_ssize_t __pyx_t_1;
   22640       43016 :   Py_ssize_t __pyx_t_2;
   22641       43016 :   Py_ssize_t __pyx_t_3;
   22642       43016 :   PyObject *__pyx_t_4 = NULL;
   22643       43016 :   Py_ssize_t __pyx_t_5;
   22644       43016 :   Py_ssize_t __pyx_t_6;
   22645       43016 :   int __pyx_lineno = 0;
   22646       43016 :   const char *__pyx_filename = NULL;
   22647       43016 :   int __pyx_clineno = 0;
   22648       43016 :   __Pyx_RefNannySetupContext("_lil_get_lengths_int32", 1);
   22649       43016 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   22650       43016 :   __pyx_pybuffer_output.refcount = 0;
   22651       43016 :   __pyx_pybuffernd_output.data = NULL;
   22652       43016 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   22653             :   {
   22654       43016 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   22655       43016 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo_nn_npy_int32, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 112, __pyx_L1_error)
   22656             :   }
   22657       43016 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   22658             : 
   22659             :   /* "_csparsetools.pyx":116
   22660             :  * def _lil_get_lengths_int32(object[:] input,
   22661             :  *                     cnp.ndarray[cnp.npy_int32] output):
   22662             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   22663             :  *         output[i] = len(input[i])
   22664             :  * @cython.boundscheck(False)
   22665             :  */
   22666       43016 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   22667       43016 :   __pyx_t_2 = __pyx_t_1;
   22668      859015 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   22669      815999 :     __pyx_v_i = __pyx_t_3;
   22670             : 
   22671             :     /* "_csparsetools.pyx":117
   22672             :  *                     cnp.ndarray[cnp.npy_int32] output):
   22673             :  *     for i in range(len(input)):
   22674             :  *         output[i] = len(input[i])             # <<<<<<<<<<<<<<
   22675             :  * @cython.boundscheck(False)
   22676             :  * @cython.wraparound(False)
   22677             :  */
   22678      815999 :     __pyx_t_5 = __pyx_v_i;
   22679      815999 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   22680      815999 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   22681      815999 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   22682      815999 :     __pyx_t_6 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 117, __pyx_L1_error)
   22683      815999 :     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   22684      815999 :     __pyx_t_5 = __pyx_v_i;
   22685      815999 :     *__Pyx_BufPtrStrided1d(npy_int32 *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_6;
   22686             :   }
   22687             : 
   22688             :   /* "_csparsetools.pyx":112
   22689             :  *                     cnp.ndarray output):
   22690             :  *     return _LIL_GET_LENGTHS_DISPATCH[output.dtype](input, output)
   22691             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   22692             :  * @cython.wraparound(False)
   22693             :  * def _lil_get_lengths_int32(object[:] input,
   22694             :  */
   22695             : 
   22696             :   /* function exit code */
   22697       43016 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   22698       43016 :   goto __pyx_L0;
   22699           0 :   __pyx_L1_error:;
   22700           0 :   __Pyx_XDECREF(__pyx_t_4);
   22701           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   22702           0 :     __Pyx_PyThreadState_declare
   22703           0 :     __Pyx_PyThreadState_assign
   22704           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   22705           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   22706           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   22707           0 :   __Pyx_AddTraceback("_csparsetools._lil_get_lengths_int32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   22708           0 :   __pyx_r = NULL;
   22709           0 :   goto __pyx_L2;
   22710       43016 :   __pyx_L0:;
   22711       43016 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   22712       43016 :   __pyx_L2:;
   22713       43016 :   __Pyx_XGIVEREF(__pyx_r);
   22714       43016 :   __Pyx_RefNannyFinishContext();
   22715       43016 :   return __pyx_r;
   22716             : }
   22717             : 
   22718             : /* "_csparsetools.pyx":118
   22719             :  *     for i in range(len(input)):
   22720             :  *         output[i] = len(input[i])
   22721             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   22722             :  * @cython.wraparound(False)
   22723             :  * def _lil_get_lengths_int64(object[:] input,
   22724             :  */
   22725             : 
   22726             : /* Python wrapper */
   22727             : static PyObject *__pyx_pw_13_csparsetools_9_lil_get_lengths_int64(PyObject *__pyx_self, 
   22728             : #if CYTHON_METH_FASTCALL
   22729             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   22730             : #else
   22731             : PyObject *__pyx_args, PyObject *__pyx_kwds
   22732             : #endif
   22733             : ); /*proto*/
   22734             : static PyMethodDef __pyx_mdef_13_csparsetools_9_lil_get_lengths_int64 = {"_lil_get_lengths_int64", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_9_lil_get_lengths_int64, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   22735           0 : static PyObject *__pyx_pw_13_csparsetools_9_lil_get_lengths_int64(PyObject *__pyx_self, 
   22736             : #if CYTHON_METH_FASTCALL
   22737             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   22738             : #else
   22739             : PyObject *__pyx_args, PyObject *__pyx_kwds
   22740             : #endif
   22741             : ) {
   22742           0 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   22743           0 :   PyArrayObject *__pyx_v_output = 0;
   22744             :   #if !CYTHON_METH_FASTCALL
   22745             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   22746             :   #endif
   22747           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   22748           0 :   PyObject* values[2] = {0,0};
   22749           0 :   int __pyx_lineno = 0;
   22750           0 :   const char *__pyx_filename = NULL;
   22751           0 :   int __pyx_clineno = 0;
   22752           0 :   PyObject *__pyx_r = 0;
   22753             :   __Pyx_RefNannyDeclarations
   22754           0 :   __Pyx_RefNannySetupContext("_lil_get_lengths_int64 (wrapper)", 0);
   22755             :   #if !CYTHON_METH_FASTCALL
   22756             :   #if CYTHON_ASSUME_SAFE_MACROS
   22757             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   22758             :   #else
   22759             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   22760             :   #endif
   22761             :   #endif
   22762           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   22763             :   {
   22764           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   22765           0 :     if (__pyx_kwds) {
   22766           0 :       Py_ssize_t kw_args;
   22767           0 :       switch (__pyx_nargs) {
   22768           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   22769           0 :         CYTHON_FALLTHROUGH;
   22770           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   22771           0 :         CYTHON_FALLTHROUGH;
   22772           0 :         case  0: break;
   22773           0 :         default: goto __pyx_L5_argtuple_error;
   22774             :       }
   22775           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   22776           0 :       switch (__pyx_nargs) {
   22777             :         case  0:
   22778           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   22779           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   22780           0 :           kw_args--;
   22781             :         }
   22782           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 118, __pyx_L3_error)
   22783           0 :         else goto __pyx_L5_argtuple_error;
   22784           0 :         CYTHON_FALLTHROUGH;
   22785             :         case  1:
   22786           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   22787           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   22788           0 :           kw_args--;
   22789             :         }
   22790           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 118, __pyx_L3_error)
   22791             :         else {
   22792           0 :           __Pyx_RaiseArgtupleInvalid("_lil_get_lengths_int64", 1, 2, 2, 1); __PYX_ERR(0, 118, __pyx_L3_error)
   22793             :         }
   22794             :       }
   22795           0 :       if (unlikely(kw_args > 0)) {
   22796           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   22797           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_get_lengths_int64") < 0)) __PYX_ERR(0, 118, __pyx_L3_error)
   22798             :       }
   22799           0 :     } else if (unlikely(__pyx_nargs != 2)) {
   22800           0 :       goto __pyx_L5_argtuple_error;
   22801             :     } else {
   22802           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   22803           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   22804             :     }
   22805           0 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 120, __pyx_L3_error)
   22806           0 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   22807             :   }
   22808           0 :   goto __pyx_L6_skip;
   22809           0 :   __pyx_L5_argtuple_error:;
   22810           0 :   __Pyx_RaiseArgtupleInvalid("_lil_get_lengths_int64", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 118, __pyx_L3_error)
   22811           0 :   __pyx_L6_skip:;
   22812           0 :   goto __pyx_L4_argument_unpacking_done;
   22813           0 :   __pyx_L3_error:;
   22814             :   {
   22815           0 :     Py_ssize_t __pyx_temp;
   22816           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   22817             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   22818             :     }
   22819             :   }
   22820           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   22821           0 :   __Pyx_AddTraceback("_csparsetools._lil_get_lengths_int64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   22822           0 :   __Pyx_RefNannyFinishContext();
   22823           0 :   return NULL;
   22824           0 :   __pyx_L4_argument_unpacking_done:;
   22825           0 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 1, "output", 0))) __PYX_ERR(0, 121, __pyx_L1_error)
   22826           0 :   __pyx_r = __pyx_pf_13_csparsetools_8_lil_get_lengths_int64(__pyx_self, __pyx_v_input, __pyx_v_output);
   22827             : 
   22828             :   /* function exit code */
   22829           0 :   goto __pyx_L0;
   22830           0 :   __pyx_L1_error:;
   22831           0 :   __pyx_r = NULL;
   22832           0 :   __pyx_L0:;
   22833           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   22834             :   {
   22835           0 :     Py_ssize_t __pyx_temp;
   22836           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   22837             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   22838             :     }
   22839             :   }
   22840             :   __Pyx_RefNannyFinishContext();
   22841             :   return __pyx_r;
   22842             : }
   22843             : 
   22844           0 : static PyObject *__pyx_pf_13_csparsetools_8_lil_get_lengths_int64(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   22845           0 :   Py_ssize_t __pyx_v_i;
   22846           0 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   22847           0 :   __Pyx_Buffer __pyx_pybuffer_output;
   22848           0 :   PyObject *__pyx_r = NULL;
   22849             :   __Pyx_RefNannyDeclarations
   22850           0 :   Py_ssize_t __pyx_t_1;
   22851           0 :   Py_ssize_t __pyx_t_2;
   22852           0 :   Py_ssize_t __pyx_t_3;
   22853           0 :   PyObject *__pyx_t_4 = NULL;
   22854           0 :   Py_ssize_t __pyx_t_5;
   22855           0 :   Py_ssize_t __pyx_t_6;
   22856           0 :   int __pyx_lineno = 0;
   22857           0 :   const char *__pyx_filename = NULL;
   22858           0 :   int __pyx_clineno = 0;
   22859           0 :   __Pyx_RefNannySetupContext("_lil_get_lengths_int64", 1);
   22860           0 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   22861           0 :   __pyx_pybuffer_output.refcount = 0;
   22862           0 :   __pyx_pybuffernd_output.data = NULL;
   22863           0 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   22864             :   {
   22865           0 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   22866           0 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo_nn_npy_int64, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 118, __pyx_L1_error)
   22867             :   }
   22868           0 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   22869             : 
   22870             :   /* "_csparsetools.pyx":122
   22871             :  * def _lil_get_lengths_int64(object[:] input,
   22872             :  *                     cnp.ndarray[cnp.npy_int64] output):
   22873             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   22874             :  *         output[i] = len(input[i])
   22875             :  * 
   22876             :  */
   22877           0 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   22878           0 :   __pyx_t_2 = __pyx_t_1;
   22879           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   22880           0 :     __pyx_v_i = __pyx_t_3;
   22881             : 
   22882             :     /* "_csparsetools.pyx":123
   22883             :  *                     cnp.ndarray[cnp.npy_int64] output):
   22884             :  *     for i in range(len(input)):
   22885             :  *         output[i] = len(input[i])             # <<<<<<<<<<<<<<
   22886             :  * 
   22887             :  * cdef dict _LIL_GET_LENGTHS_DISPATCH = {
   22888             :  */
   22889           0 :     __pyx_t_5 = __pyx_v_i;
   22890           0 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   22891           0 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   22892           0 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   22893           0 :     __pyx_t_6 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 123, __pyx_L1_error)
   22894           0 :     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   22895           0 :     __pyx_t_5 = __pyx_v_i;
   22896           0 :     *__Pyx_BufPtrStrided1d(npy_int64 *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_6;
   22897             :   }
   22898             : 
   22899             :   /* "_csparsetools.pyx":118
   22900             :  *     for i in range(len(input)):
   22901             :  *         output[i] = len(input[i])
   22902             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   22903             :  * @cython.wraparound(False)
   22904             :  * def _lil_get_lengths_int64(object[:] input,
   22905             :  */
   22906             : 
   22907             :   /* function exit code */
   22908           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   22909           0 :   goto __pyx_L0;
   22910           0 :   __pyx_L1_error:;
   22911           0 :   __Pyx_XDECREF(__pyx_t_4);
   22912           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   22913           0 :     __Pyx_PyThreadState_declare
   22914           0 :     __Pyx_PyThreadState_assign
   22915           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   22916           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   22917           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   22918           0 :   __Pyx_AddTraceback("_csparsetools._lil_get_lengths_int64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   22919           0 :   __pyx_r = NULL;
   22920           0 :   goto __pyx_L2;
   22921           0 :   __pyx_L0:;
   22922           0 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   22923           0 :   __pyx_L2:;
   22924           0 :   __Pyx_XGIVEREF(__pyx_r);
   22925           0 :   __Pyx_RefNannyFinishContext();
   22926           0 :   return __pyx_r;
   22927             : }
   22928             : 
   22929             : /* "_csparsetools.pyx":141
   22930             :  *     double
   22931             :  * 
   22932             :  * def lil_flatten_to_array(const obj_fused[:] input,             # <<<<<<<<<<<<<<
   22933             :  *                          cnp.ndarray output):
   22934             :  *     return _LIL_FLATTEN_TO_ARRAY_DISPATCH[output.dtype](input, output)
   22935             :  */
   22936             : 
   22937             : /* Python wrapper */
   22938             : static PyObject *__pyx_pw_13_csparsetools_11lil_flatten_to_array(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
   22939             : static PyMethodDef __pyx_mdef_13_csparsetools_11lil_flatten_to_array = {"lil_flatten_to_array", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_13_csparsetools_11lil_flatten_to_array, METH_VARARGS|METH_KEYWORDS, 0};
   22940       86045 : static PyObject *__pyx_pw_13_csparsetools_11lil_flatten_to_array(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
   22941       86045 :   PyObject *__pyx_v_signatures = 0;
   22942       86045 :   PyObject *__pyx_v_args = 0;
   22943       86045 :   PyObject *__pyx_v_kwargs = 0;
   22944       86045 :   CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
   22945       86045 :   PyObject *__pyx_v__fused_sigindex = 0;
   22946       86045 :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   22947       86045 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   22948       86045 :   PyObject* values[5] = {0,0,0,0,0};
   22949       86045 :   int __pyx_lineno = 0;
   22950       86045 :   const char *__pyx_filename = NULL;
   22951       86045 :   int __pyx_clineno = 0;
   22952       86045 :   PyObject *__pyx_r = 0;
   22953             :   __Pyx_RefNannyDeclarations
   22954       86045 :   __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
   22955             :   #if CYTHON_ASSUME_SAFE_MACROS
   22956       86045 :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   22957             :   #else
   22958             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   22959             :   #endif
   22960       86045 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   22961             :   {
   22962       86045 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
   22963       86045 :     __pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self);
   22964       86045 :     values[4] = __Pyx_Arg_NewRef_VARARGS(__pyx_dynamic_args->__pyx_arg__fused_sigindex);
   22965       86045 :     if (__pyx_kwds) {
   22966           0 :       Py_ssize_t kw_args;
   22967           0 :       switch (__pyx_nargs) {
   22968           0 :         case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
   22969           0 :         CYTHON_FALLTHROUGH;
   22970           0 :         case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
   22971           0 :         CYTHON_FALLTHROUGH;
   22972           0 :         case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
   22973           0 :         CYTHON_FALLTHROUGH;
   22974           0 :         case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
   22975           0 :         CYTHON_FALLTHROUGH;
   22976           0 :         case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
   22977           0 :         CYTHON_FALLTHROUGH;
   22978           0 :         case  0: break;
   22979           0 :         default: goto __pyx_L5_argtuple_error;
   22980             :       }
   22981           0 :       kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
   22982           0 :       switch (__pyx_nargs) {
   22983           0 :         case  0:
   22984           0 :         if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_signatures)) != 0)) {
   22985           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
   22986           0 :           kw_args--;
   22987             :         }
   22988           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
   22989           0 :         else goto __pyx_L5_argtuple_error;
   22990           0 :         CYTHON_FALLTHROUGH;
   22991             :         case  1:
   22992           0 :         if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_args)) != 0)) {
   22993           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
   22994           0 :           kw_args--;
   22995             :         }
   22996           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
   22997             :         else {
   22998           0 :           __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 1); __PYX_ERR(0, 141, __pyx_L3_error)
   22999             :         }
   23000           0 :         CYTHON_FALLTHROUGH;
   23001             :         case  2:
   23002           0 :         if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_kwargs)) != 0)) {
   23003           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
   23004           0 :           kw_args--;
   23005             :         }
   23006           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
   23007             :         else {
   23008           0 :           __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 2); __PYX_ERR(0, 141, __pyx_L3_error)
   23009             :         }
   23010           0 :         CYTHON_FALLTHROUGH;
   23011             :         case  3:
   23012           0 :         if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_defaults)) != 0)) {
   23013           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[3]);
   23014           0 :           kw_args--;
   23015             :         }
   23016           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
   23017             :         else {
   23018           0 :           __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 3); __PYX_ERR(0, 141, __pyx_L3_error)
   23019             :         }
   23020           0 :         CYTHON_FALLTHROUGH;
   23021             :         case  4:
   23022           0 :         if (kw_args > 0) {
   23023           0 :           PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fused_sigindex);
   23024           0 :           if (value) { values[4] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
   23025           0 :           else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
   23026             :         }
   23027             :       }
   23028           0 :       if (unlikely(kw_args > 0)) {
   23029           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   23030           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 141, __pyx_L3_error)
   23031             :       }
   23032             :     } else {
   23033       86045 :       switch (__pyx_nargs) {
   23034           0 :         case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
   23035       86045 :         CYTHON_FALLTHROUGH;
   23036       86045 :         case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
   23037       86045 :         values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
   23038       86045 :         values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
   23039       86045 :         values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
   23040       86045 :         break;
   23041           0 :         default: goto __pyx_L5_argtuple_error;
   23042             :       }
   23043             :     }
   23044       86045 :     __pyx_v_signatures = values[0];
   23045       86045 :     __pyx_v_args = values[1];
   23046       86045 :     __pyx_v_kwargs = values[2];
   23047       86045 :     __pyx_v_defaults = values[3];
   23048       86045 :     __pyx_v__fused_sigindex = values[4];
   23049             :   }
   23050       86045 :   goto __pyx_L6_skip;
   23051           0 :   __pyx_L5_argtuple_error:;
   23052           0 :   __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, __pyx_nargs); __PYX_ERR(0, 141, __pyx_L3_error)
   23053       86045 :   __pyx_L6_skip:;
   23054       86045 :   goto __pyx_L4_argument_unpacking_done;
   23055           0 :   __pyx_L3_error:;
   23056             :   {
   23057           0 :     Py_ssize_t __pyx_temp;
   23058           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   23059             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
   23060             :     }
   23061             :   }
   23062           0 :   __Pyx_AddTraceback("_csparsetools.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
   23063           0 :   __Pyx_RefNannyFinishContext();
   23064           0 :   return NULL;
   23065       86045 :   __pyx_L4_argument_unpacking_done:;
   23066       86045 :   __pyx_r = __pyx_pf_13_csparsetools_10lil_flatten_to_array(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults, __pyx_v__fused_sigindex);
   23067             : 
   23068             :   /* function exit code */
   23069             :   {
   23070       86045 :     Py_ssize_t __pyx_temp;
   23071       86045 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   23072             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
   23073             :     }
   23074             :   }
   23075             :   __Pyx_RefNannyFinishContext();
   23076             :   return __pyx_r;
   23077             : }
   23078             : 
   23079       86045 : static PyObject *__pyx_pf_13_csparsetools_10lil_flatten_to_array(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults, PyObject *__pyx_v__fused_sigindex) {
   23080       86045 :   PyObject *__pyx_v_search_list = 0;
   23081       86045 :   PyObject *__pyx_v_sigindex_node = 0;
   23082       86045 :   PyObject *__pyx_v_dest_sig = NULL;
   23083       86045 :   PyTypeObject *__pyx_v_ndarray = 0;
   23084       86045 :   PyObject *__pyx_v_arg_as_memoryview = 0;
   23085       86045 :   __Pyx_memviewslice __pyx_v_memslice;
   23086       86045 :   Py_ssize_t __pyx_v_itemsize;
   23087       86045 :   CYTHON_UNUSED int __pyx_v_dtype_signed;
   23088       86045 :   Py_UCS4 __pyx_v_kind;
   23089       86045 :   PyObject *__pyx_v_arg = NULL;
   23090       86045 :   PyObject *__pyx_v_dtype = NULL;
   23091       86045 :   PyObject *__pyx_v_arg_base = NULL;
   23092       86045 :   PyObject *__pyx_v_sig = NULL;
   23093       86045 :   PyObject *__pyx_v_sig_series = NULL;
   23094       86045 :   PyObject *__pyx_v_last_type = NULL;
   23095       86045 :   PyObject *__pyx_v_sig_type = NULL;
   23096       86045 :   PyObject *__pyx_v_sigindex_matches = NULL;
   23097       86045 :   PyObject *__pyx_v_sigindex_candidates = NULL;
   23098       86045 :   PyObject *__pyx_v_dst_type = NULL;
   23099       86045 :   PyObject *__pyx_v_found_matches = NULL;
   23100       86045 :   PyObject *__pyx_v_found_candidates = NULL;
   23101       86045 :   PyObject *__pyx_v_sn = NULL;
   23102       86045 :   PyObject *__pyx_v_type_match = NULL;
   23103       86045 :   PyObject *__pyx_v_candidates = NULL;
   23104       86045 :   PyObject *__pyx_r = NULL;
   23105             :   __Pyx_RefNannyDeclarations
   23106       86045 :   PyObject *__pyx_t_1 = NULL;
   23107       86045 :   int __pyx_t_2;
   23108       86045 :   int __pyx_t_3;
   23109       86045 :   int __pyx_t_4;
   23110       86045 :   Py_ssize_t __pyx_t_5;
   23111       86045 :   PyObject *__pyx_t_6 = NULL;
   23112       86045 :   long __pyx_t_7;
   23113       86045 :   PyObject *__pyx_t_8 = NULL;
   23114       86045 :   PyObject *__pyx_t_9 = NULL;
   23115       86045 :   PyObject *__pyx_t_10 = NULL;
   23116       86045 :   int __pyx_t_11;
   23117       86045 :   __Pyx_memviewslice __pyx_t_12;
   23118       86045 :   PyObject *__pyx_t_13 = NULL;
   23119       86045 :   Py_ssize_t __pyx_t_14;
   23120       86045 :   int __pyx_t_15;
   23121       86045 :   PyObject *__pyx_t_16 = NULL;
   23122       86045 :   PyObject *__pyx_t_17 = NULL;
   23123       86045 :   unsigned int __pyx_t_18;
   23124       86045 :   Py_ssize_t __pyx_t_19;
   23125       86045 :   int __pyx_t_20;
   23126       86045 :   int __pyx_lineno = 0;
   23127       86045 :   const char *__pyx_filename = NULL;
   23128       86045 :   int __pyx_clineno = 0;
   23129       86045 :   __Pyx_RefNannySetupContext("lil_flatten_to_array", 0);
   23130       86045 :   __Pyx_INCREF(__pyx_v_kwargs);
   23131       86045 :   __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
   23132       86045 :   __Pyx_GOTREF(__pyx_t_1);
   23133       86045 :   __Pyx_INCREF(Py_None);
   23134       86045 :   __Pyx_GIVEREF(Py_None);
   23135       86045 :   if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, Py_None)) __PYX_ERR(0, 141, __pyx_L1_error);
   23136       86045 :   __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
   23137       86045 :   __pyx_t_1 = 0;
   23138       86045 :   __pyx_t_3 = (__pyx_v_kwargs != Py_None);
   23139       86045 :   if (__pyx_t_3) {
   23140           0 :   } else {
   23141       86045 :     __pyx_t_2 = __pyx_t_3;
   23142       86045 :     goto __pyx_L4_bool_binop_done;
   23143             :   }
   23144           0 :   __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23145           0 :   __pyx_t_4 = (!__pyx_t_3);
   23146           0 :   __pyx_t_2 = __pyx_t_4;
   23147       86045 :   __pyx_L4_bool_binop_done:;
   23148       86045 :   if (__pyx_t_2) {
   23149           0 :     __Pyx_INCREF(Py_None);
   23150           0 :     __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
   23151             :   }
   23152       86045 :   __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
   23153       86045 :   __Pyx_GOTREF(__pyx_t_1);
   23154       86045 :   __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
   23155       86045 :   __pyx_t_1 = 0;
   23156       86045 :   __pyx_v_itemsize = -1L;
   23157       86045 :   if (unlikely(__pyx_v_args == Py_None)) {
   23158           0 :     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   23159           0 :     __PYX_ERR(0, 141, __pyx_L1_error)
   23160             :   }
   23161       86045 :   __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 141, __pyx_L1_error)
   23162       86045 :   __pyx_t_2 = (0 < __pyx_t_5);
   23163       86045 :   if (__pyx_t_2) {
   23164       86045 :     if (unlikely(__pyx_v_args == Py_None)) {
   23165             :       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   23166             :       __PYX_ERR(0, 141, __pyx_L1_error)
   23167             :     }
   23168       86045 :     __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
   23169       86045 :     __Pyx_GOTREF(__pyx_t_1);
   23170       86045 :     __pyx_v_arg = __pyx_t_1;
   23171       86045 :     __pyx_t_1 = 0;
   23172       86045 :     goto __pyx_L6;
   23173             :   }
   23174           0 :   __pyx_t_4 = (__pyx_v_kwargs != Py_None);
   23175           0 :   if (__pyx_t_4) {
   23176           0 :   } else {
   23177           0 :     __pyx_t_2 = __pyx_t_4;
   23178           0 :     goto __pyx_L7_bool_binop_done;
   23179             :   }
   23180           0 :   if (unlikely(__pyx_v_kwargs == Py_None)) {
   23181             :     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
   23182             :     __PYX_ERR(0, 141, __pyx_L1_error)
   23183             :   }
   23184           0 :   __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_input, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23185             :   __pyx_t_2 = __pyx_t_4;
   23186           0 :   __pyx_L7_bool_binop_done:;
   23187           0 :   if (likely(__pyx_t_2)) {
   23188           0 :     if (unlikely(__pyx_v_kwargs == Py_None)) {
   23189           0 :       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   23190           0 :       __PYX_ERR(0, 141, __pyx_L1_error)
   23191             :     }
   23192           0 :     __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_input); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
   23193           0 :     __Pyx_GOTREF(__pyx_t_1);
   23194           0 :     __pyx_v_arg = __pyx_t_1;
   23195           0 :     __pyx_t_1 = 0;
   23196           0 :     goto __pyx_L6;
   23197             :   }
   23198             :   /*else*/ {
   23199           0 :     if (unlikely(__pyx_v_args == Py_None)) {
   23200             :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   23201             :       __PYX_ERR(0, 141, __pyx_L1_error)
   23202             :     }
   23203           0 :     __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 141, __pyx_L1_error)
   23204           0 :     __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
   23205           0 :     __Pyx_GOTREF(__pyx_t_1);
   23206           0 :     __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error)
   23207           0 :     __Pyx_GOTREF(__pyx_t_6);
   23208           0 :     __Pyx_INCREF(__pyx_int_2);
   23209           0 :     __Pyx_GIVEREF(__pyx_int_2);
   23210           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2)) __PYX_ERR(0, 141, __pyx_L1_error);
   23211           0 :     __Pyx_INCREF(__pyx_n_s_s);
   23212           0 :     __Pyx_GIVEREF(__pyx_n_s_s);
   23213           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s)) __PYX_ERR(0, 141, __pyx_L1_error);
   23214           0 :     __Pyx_GIVEREF(__pyx_t_1);
   23215           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error);
   23216           0 :     __pyx_t_1 = 0;
   23217           0 :     __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
   23218           0 :     __Pyx_GOTREF(__pyx_t_1);
   23219           0 :     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   23220           0 :     __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error)
   23221           0 :     __Pyx_GOTREF(__pyx_t_6);
   23222           0 :     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   23223           0 :     __Pyx_Raise(__pyx_t_6, 0, 0, 0);
   23224           0 :     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   23225           0 :     __PYX_ERR(0, 141, __pyx_L1_error)
   23226             :   }
   23227       86045 :   __pyx_L6:;
   23228       86045 :   while (1) {
   23229       86045 :     __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
   23230       86045 :     if (__pyx_t_2) {
   23231       86045 :       __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
   23232       86045 :       if (__pyx_t_2) {
   23233       86045 :         __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error)
   23234       86045 :         __Pyx_GOTREF(__pyx_t_6);
   23235       86045 :         __pyx_v_dtype = __pyx_t_6;
   23236       86045 :         __pyx_t_6 = 0;
   23237       86045 :         goto __pyx_L12;
   23238             :       }
   23239           0 :       __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
   23240           0 :       if (__pyx_t_2) {
   23241           0 :         __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error)
   23242           0 :         __Pyx_GOTREF(__pyx_t_6);
   23243           0 :         __pyx_v_arg_base = __pyx_t_6;
   23244           0 :         __pyx_t_6 = 0;
   23245           0 :         __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
   23246           0 :         if (__pyx_t_2) {
   23247           0 :           __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error)
   23248           0 :           __Pyx_GOTREF(__pyx_t_6);
   23249           0 :           __pyx_v_dtype = __pyx_t_6;
   23250           0 :           __pyx_t_6 = 0;
   23251           0 :           goto __pyx_L13;
   23252             :         }
   23253             :         /*else*/ {
   23254           0 :           __Pyx_INCREF(Py_None);
   23255             :           __pyx_v_dtype = Py_None;
   23256             :         }
   23257           0 :         __pyx_L13:;
   23258           0 :         goto __pyx_L12;
   23259             :       }
   23260             :       /*else*/ {
   23261           0 :         __Pyx_INCREF(Py_None);
   23262             :         __pyx_v_dtype = Py_None;
   23263             :       }
   23264       86045 :       __pyx_L12:;
   23265       86045 :       __pyx_v_itemsize = -1L;
   23266       86045 :       __pyx_t_2 = (__pyx_v_dtype != Py_None);
   23267       86045 :       if (__pyx_t_2) {
   23268       86045 :         __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error)
   23269       86045 :         __Pyx_GOTREF(__pyx_t_6);
   23270       86045 :         __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L1_error)
   23271       86045 :         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   23272       86045 :         __pyx_v_itemsize = __pyx_t_5;
   23273       86045 :         __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error)
   23274       86045 :         __Pyx_GOTREF(__pyx_t_6);
   23275       86045 :         __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 141, __pyx_L1_error)
   23276       86045 :         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   23277       86045 :         __pyx_v_kind = __pyx_t_7;
   23278       86045 :         __pyx_v_dtype_signed = (__pyx_v_kind == 0x69);
   23279       86045 :         switch (__pyx_v_kind) {
   23280             :           case 0x69:
   23281             :           case 0x75:
   23282             :           break;
   23283           0 :           case 0x66:
   23284           0 :           __pyx_t_4 = ((sizeof(double const )) == __pyx_v_itemsize);
   23285           0 :           if (__pyx_t_4) {
   23286           0 :           } else {
   23287           0 :             __pyx_t_2 = __pyx_t_4;
   23288           0 :             goto __pyx_L16_bool_binop_done;
   23289             :           }
   23290           0 :           __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error)
   23291           0 :           __Pyx_GOTREF(__pyx_t_6);
   23292           0 :           __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L1_error)
   23293           0 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   23294           0 :           __pyx_t_4 = (((Py_ssize_t)__pyx_t_5) == 1);
   23295           0 :           __pyx_t_2 = __pyx_t_4;
   23296           0 :           __pyx_L16_bool_binop_done:;
   23297           0 :           if (__pyx_t_2) {
   23298           0 :             if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23299           0 :             goto __pyx_L10_break;
   23300             :           }
   23301             :           break;
   23302             :           case 99:
   23303             :           break;
   23304             :           case 79:
   23305             :           break;
   23306             :           default: break;
   23307             :         }
   23308             :       }
   23309             :     }
   23310       86045 :     __pyx_t_2 = (__pyx_v_arg == Py_None);
   23311       86045 :     if (__pyx_t_2) {
   23312           0 :       if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23313           0 :       goto __pyx_L10_break;
   23314             :     }
   23315             :     {
   23316       86045 :       __Pyx_PyThreadState_declare
   23317       86045 :       __Pyx_PyThreadState_assign
   23318       86045 :       __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
   23319       86045 :       __Pyx_XGOTREF(__pyx_t_8);
   23320       86045 :       __Pyx_XGOTREF(__pyx_t_9);
   23321       86045 :       __Pyx_XGOTREF(__pyx_t_10);
   23322             :       /*try:*/ {
   23323       86045 :         __pyx_t_6 = PyMemoryView_FromObject(__pyx_v_arg); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L19_error)
   23324       86045 :         __Pyx_GOTREF(__pyx_t_6);
   23325       86045 :         __pyx_v_arg_as_memoryview = ((PyObject*)__pyx_t_6);
   23326       86045 :         __pyx_t_6 = 0;
   23327             :       }
   23328             :       /*else:*/ {
   23329       86045 :         __pyx_t_4 = (__pyx_v_itemsize == -1L);
   23330       86045 :         if (!__pyx_t_4) {
   23331       86045 :           goto __pyx_L30_next_or;
   23332             :         } else {
   23333           0 :         }
   23334           0 :         __pyx_t_5 = __Pyx_PyMemoryView_Get_itemsize(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L21_except_error)
   23335           0 :         __pyx_t_4 = (__pyx_t_5 == (sizeof(void *)));
   23336           0 :         if (!__pyx_t_4) {
   23337             :         } else {
   23338           0 :           goto __pyx_L29_next_and;
   23339             :         }
   23340       86045 :         __pyx_L30_next_or:;
   23341       86045 :         __pyx_t_4 = (__pyx_v_itemsize == (sizeof(void *)));
   23342       86045 :         if (__pyx_t_4) {
   23343             :         } else {
   23344           0 :           __pyx_t_2 = __pyx_t_4;
   23345           0 :           goto __pyx_L28_bool_binop_done;
   23346             :         }
   23347       86045 :         __pyx_L29_next_and:;
   23348       86045 :         __pyx_t_11 = __Pyx_PyMemoryView_Get_ndim(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_11 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L21_except_error)
   23349       86045 :         __pyx_t_4 = (__pyx_t_11 == 1);
   23350       86045 :         __pyx_t_2 = __pyx_t_4;
   23351       86045 :         __pyx_L28_bool_binop_done:;
   23352       86045 :         if (__pyx_t_2) {
   23353       86045 :           if ((CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION == 2)) {
   23354             :             __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg, 0); 
   23355             :             __pyx_v_memslice = __pyx_t_12;
   23356             :             goto __pyx_L32;
   23357             :           }
   23358             :           /*else*/ {
   23359       86045 :             __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg_as_memoryview, 0); 
   23360       86045 :             __pyx_v_memslice = __pyx_t_12;
   23361             :           }
   23362       86045 :           __pyx_L32:;
   23363       86045 :           __pyx_t_2 = (__pyx_v_memslice.memview != 0);
   23364       86045 :           if (__pyx_t_2) {
   23365       86045 :             __PYX_XCLEAR_MEMVIEW((&__pyx_v_memslice), 1); 
   23366       86045 :             if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 141, __pyx_L21_except_error)
   23367       86045 :             goto __pyx_L24_try_break;
   23368             :           }
   23369             :           /*else*/ {
   23370           0 :             PyErr_Clear(); 
   23371             :           }
   23372             :         }
   23373           0 :         __pyx_t_4 = (__pyx_v_itemsize == -1L);
   23374           0 :         if (!__pyx_t_4) {
   23375           0 :           goto __pyx_L37_next_or;
   23376             :         } else {
   23377           0 :         }
   23378           0 :         __pyx_t_5 = __Pyx_PyMemoryView_Get_itemsize(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L21_except_error)
   23379           0 :         __pyx_t_4 = (__pyx_t_5 == (sizeof(double const )));
   23380           0 :         if (!__pyx_t_4) {
   23381             :         } else {
   23382           0 :           goto __pyx_L36_next_and;
   23383             :         }
   23384           0 :         __pyx_L37_next_or:;
   23385           0 :         __pyx_t_4 = (__pyx_v_itemsize == (sizeof(double const )));
   23386           0 :         if (__pyx_t_4) {
   23387             :         } else {
   23388           0 :           __pyx_t_2 = __pyx_t_4;
   23389           0 :           goto __pyx_L35_bool_binop_done;
   23390             :         }
   23391           0 :         __pyx_L36_next_and:;
   23392           0 :         __pyx_t_11 = __Pyx_PyMemoryView_Get_ndim(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_11 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L21_except_error)
   23393           0 :         __pyx_t_4 = (__pyx_t_11 == 1);
   23394           0 :         __pyx_t_2 = __pyx_t_4;
   23395           0 :         __pyx_L35_bool_binop_done:;
   23396           0 :         if (__pyx_t_2) {
   23397           0 :           __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_ds_double__const__(__pyx_v_arg_as_memoryview, 0); 
   23398           0 :           __pyx_v_memslice = __pyx_t_12;
   23399           0 :           __pyx_t_2 = (__pyx_v_memslice.memview != 0);
   23400           0 :           if (__pyx_t_2) {
   23401           0 :             __PYX_XCLEAR_MEMVIEW((&__pyx_v_memslice), 1); 
   23402           0 :             if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 141, __pyx_L21_except_error)
   23403           0 :             goto __pyx_L24_try_break;
   23404             :           }
   23405             :           /*else*/ {
   23406           0 :             PyErr_Clear(); 
   23407             :           }
   23408             :         }
   23409             :       }
   23410           0 :       __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
   23411           0 :       __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
   23412           0 :       __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
   23413           0 :       goto __pyx_L26_try_end;
   23414           0 :       __pyx_L19_error:;
   23415           0 :       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
   23416           0 :       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
   23417           0 :       __pyx_t_11 = __Pyx_PyErr_ExceptionMatches2(__pyx_builtin_ValueError, __pyx_builtin_TypeError);
   23418           0 :       if (__pyx_t_11) {
   23419           0 :         __Pyx_AddTraceback("_csparsetools.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
   23420           0 :         if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_13) < 0) __PYX_ERR(0, 141, __pyx_L21_except_error)
   23421           0 :         __Pyx_XGOTREF(__pyx_t_6);
   23422           0 :         __Pyx_XGOTREF(__pyx_t_1);
   23423           0 :         __Pyx_XGOTREF(__pyx_t_13);
   23424           0 :         __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
   23425           0 :         __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
   23426           0 :         __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
   23427           0 :         goto __pyx_L20_exception_handled;
   23428             :       }
   23429           0 :       goto __pyx_L21_except_error;
   23430           0 :       __pyx_L21_except_error:;
   23431           0 :       __Pyx_XGIVEREF(__pyx_t_8);
   23432           0 :       __Pyx_XGIVEREF(__pyx_t_9);
   23433           0 :       __Pyx_XGIVEREF(__pyx_t_10);
   23434           0 :       __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
   23435           0 :       goto __pyx_L1_error;
   23436       86045 :       __pyx_L24_try_break:;
   23437       86045 :       __Pyx_XGIVEREF(__pyx_t_8);
   23438       86045 :       __Pyx_XGIVEREF(__pyx_t_9);
   23439       86045 :       __Pyx_XGIVEREF(__pyx_t_10);
   23440       86045 :       __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
   23441       86045 :       goto __pyx_L10_break;
   23442           0 :       __pyx_L20_exception_handled:;
   23443           0 :       __Pyx_XGIVEREF(__pyx_t_8);
   23444           0 :       __Pyx_XGIVEREF(__pyx_t_9);
   23445           0 :       __Pyx_XGIVEREF(__pyx_t_10);
   23446           0 :       __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
   23447           0 :       __pyx_L26_try_end:;
   23448             :     }
   23449           0 :     if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23450           0 :     goto __pyx_L10_break;
   23451             :   }
   23452       86045 :   __pyx_L10_break:;
   23453       86045 :   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v__fused_sigindex); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23454       86045 :   __pyx_t_4 = (!__pyx_t_2);
   23455       86045 :   if (__pyx_t_4) {
   23456           3 :     __pyx_t_5 = 0;
   23457           3 :     if (unlikely(__pyx_v_signatures == Py_None)) {
   23458           0 :       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
   23459           0 :       __PYX_ERR(0, 141, __pyx_L1_error)
   23460             :     }
   23461           6 :     __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_14), (&__pyx_t_11)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
   23462           3 :     __Pyx_GOTREF(__pyx_t_1);
   23463           3 :     __Pyx_XDECREF(__pyx_t_13);
   23464           3 :     __pyx_t_13 = __pyx_t_1;
   23465           3 :     __pyx_t_1 = 0;
   23466           9 :     while (1) {
   23467           9 :       __pyx_t_15 = __Pyx_dict_iter_next(__pyx_t_13, __pyx_t_14, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_11);
   23468           9 :       if (unlikely(__pyx_t_15 == 0)) break;
   23469           6 :       if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 141, __pyx_L1_error)
   23470           6 :       __Pyx_GOTREF(__pyx_t_1);
   23471           6 :       __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
   23472           6 :       __pyx_t_1 = 0;
   23473           6 :       __pyx_t_1 = __pyx_v__fused_sigindex;
   23474           6 :       __Pyx_INCREF(__pyx_t_1);
   23475           6 :       __Pyx_XDECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
   23476           6 :       __pyx_t_1 = 0;
   23477           6 :       __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 141, __pyx_L1_error)
   23478           6 :       __Pyx_GOTREF(__pyx_t_16);
   23479           6 :       __pyx_t_17 = NULL;
   23480           6 :       __pyx_t_18 = 0;
   23481             :       #if CYTHON_UNPACK_METHODS
   23482           6 :       if (likely(PyMethod_Check(__pyx_t_16))) {
   23483           0 :         __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_16);
   23484           0 :         if (likely(__pyx_t_17)) {
   23485           0 :           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
   23486           0 :           __Pyx_INCREF(__pyx_t_17);
   23487           0 :           __Pyx_INCREF(function);
   23488           0 :           __Pyx_DECREF_SET(__pyx_t_16, function);
   23489             :           __pyx_t_18 = 1;
   23490             :         }
   23491             :       }
   23492             :       #endif
   23493             :       {
   23494           6 :         PyObject *__pyx_callargs[2] = {__pyx_t_17, __pyx_kp_s__11};
   23495           6 :         __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_16, __pyx_callargs+1-__pyx_t_18, 1+__pyx_t_18);
   23496           6 :         __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
   23497           6 :         if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error)
   23498           6 :         __Pyx_GOTREF(__pyx_t_6);
   23499           6 :         __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   23500             :       }
   23501           6 :       __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_split); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 141, __pyx_L1_error)
   23502           6 :       __Pyx_GOTREF(__pyx_t_16);
   23503           6 :       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   23504           6 :       __pyx_t_6 = NULL;
   23505           6 :       __pyx_t_18 = 0;
   23506             :       #if CYTHON_UNPACK_METHODS
   23507           6 :       if (likely(PyMethod_Check(__pyx_t_16))) {
   23508           0 :         __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_16);
   23509           0 :         if (likely(__pyx_t_6)) {
   23510           0 :           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
   23511           0 :           __Pyx_INCREF(__pyx_t_6);
   23512           0 :           __Pyx_INCREF(function);
   23513           0 :           __Pyx_DECREF_SET(__pyx_t_16, function);
   23514             :           __pyx_t_18 = 1;
   23515             :         }
   23516             :       }
   23517             :       #endif
   23518             :       {
   23519           6 :         PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_kp_s__12};
   23520           6 :         __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_16, __pyx_callargs+1-__pyx_t_18, 1+__pyx_t_18);
   23521           6 :         __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
   23522           6 :         if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
   23523           6 :         __Pyx_GOTREF(__pyx_t_1);
   23524           6 :         __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   23525             :       }
   23526          12 :       __pyx_t_16 = __Pyx_PySequence_ListKeepNew(__pyx_t_1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 141, __pyx_L1_error)
   23527           6 :       __Pyx_GOTREF(__pyx_t_16);
   23528           6 :       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   23529           6 :       __pyx_t_19 = PyList_GET_SIZE(__pyx_t_16);
   23530           6 :       if (unlikely(__pyx_t_19 < 1)) {
   23531           0 :         __Pyx_RaiseNeedMoreValuesError(0+__pyx_t_19); __PYX_ERR(0, 141, __pyx_L1_error)
   23532             :       }
   23533             :       #if CYTHON_COMPILING_IN_CPYTHON
   23534           6 :       __pyx_t_6 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_19-1); 
   23535           6 :       ((PyVarObject*)__pyx_t_16)->ob_size--;
   23536             :       #else
   23537             :       __pyx_t_6 = PySequence_ITEM(__pyx_t_16, __pyx_t_19-1); 
   23538             :       #endif
   23539           6 :       __Pyx_GOTREF(__pyx_t_6);
   23540             :       #if !CYTHON_COMPILING_IN_CPYTHON
   23541             :       __pyx_t_17 = PySequence_GetSlice(__pyx_t_16, 0, __pyx_t_19-1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 141, __pyx_L1_error)
   23542             :       __Pyx_GOTREF(__pyx_t_17);
   23543             :       __Pyx_DECREF(__pyx_t_16);
   23544             :       __pyx_t_16 = __pyx_t_17; __pyx_t_17 = NULL;
   23545             :       #else
   23546           6 :       CYTHON_UNUSED_VAR(__pyx_t_17);
   23547             :       #endif
   23548           6 :       __Pyx_XDECREF_SET(__pyx_v_sig_series, ((PyObject*)__pyx_t_16));
   23549           6 :       __pyx_t_16 = 0;
   23550           6 :       __Pyx_XDECREF_SET(__pyx_v_last_type, __pyx_t_6);
   23551           6 :       __pyx_t_6 = 0;
   23552           6 :       __pyx_t_1 = __pyx_v_sig_series; __Pyx_INCREF(__pyx_t_1);
   23553             :       __pyx_t_19 = 0;
   23554           6 :       for (;;) {
   23555             :         {
   23556           6 :           Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
   23557             :           #if !CYTHON_ASSUME_SAFE_MACROS
   23558             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23559             :           #endif
   23560           6 :           if (__pyx_t_19 >= __pyx_temp) break;
   23561             :         }
   23562             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   23563           0 :         __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_19); __Pyx_INCREF(__pyx_t_6); __pyx_t_19++; if (unlikely((0 < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23564             :         #else
   23565             :         __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error)
   23566             :         __Pyx_GOTREF(__pyx_t_6);
   23567             :         #endif
   23568           0 :         __Pyx_XDECREF_SET(__pyx_v_sig_type, __pyx_t_6);
   23569           0 :         __pyx_t_6 = 0;
   23570           0 :         if (unlikely(__pyx_v_sigindex_node == Py_None)) {
   23571           0 :           PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
   23572           0 :           __PYX_ERR(0, 141, __pyx_L1_error)
   23573             :         }
   23574           0 :         __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_v_sig_type, __pyx_v_sigindex_node, Py_NE)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23575           0 :         if (__pyx_t_4) {
   23576           0 :           __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error)
   23577           0 :           __Pyx_GOTREF(__pyx_t_6);
   23578           0 :           if (unlikely(__pyx_v_sigindex_node == Py_None)) {
   23579             :             PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   23580             :             __PYX_ERR(0, 141, __pyx_L1_error)
   23581             :           }
   23582           0 :           if (unlikely((PyDict_SetItem(__pyx_v_sigindex_node, __pyx_v_sig_type, __pyx_t_6) < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23583           0 :           __Pyx_INCREF(__pyx_t_6);
   23584           0 :           __Pyx_DECREF_SET(__pyx_v_sigindex_node, __pyx_t_6);
   23585           0 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   23586           0 :           goto __pyx_L47;
   23587             :         }
   23588             :         /*else*/ {
   23589           0 :           if (unlikely(__pyx_v_sigindex_node == Py_None)) {
   23590             :             PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   23591             :             __PYX_ERR(0, 141, __pyx_L1_error)
   23592             :           }
   23593           0 :           __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_sigindex_node, __pyx_v_sig_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error)
   23594           0 :           __Pyx_GOTREF(__pyx_t_6);
   23595           0 :           __pyx_t_16 = __pyx_t_6;
   23596           0 :           __Pyx_INCREF(__pyx_t_16);
   23597           0 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   23598           6 :           __Pyx_DECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_16));
   23599             :           __pyx_t_16 = 0;
   23600             :         }
   23601             :         __pyx_L47:;
   23602             :       }
   23603           6 :       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   23604           6 :       if (unlikely(__pyx_v_sigindex_node == Py_None)) {
   23605           0 :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   23606           0 :         __PYX_ERR(0, 141, __pyx_L1_error)
   23607             :       }
   23608           6 :       if (unlikely((PyDict_SetItem(__pyx_v_sigindex_node, __pyx_v_last_type, __pyx_v_sig) < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23609             :     }
   23610           6 :     __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
   23611             :   }
   23612       86045 :   __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 141, __pyx_L1_error)
   23613       86045 :   __Pyx_GOTREF(__pyx_t_13);
   23614       86045 :   __pyx_v_sigindex_matches = ((PyObject*)__pyx_t_13);
   23615       86045 :   __pyx_t_13 = 0;
   23616       86045 :   __pyx_t_13 = PyList_New(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 141, __pyx_L1_error)
   23617       86045 :   __Pyx_GOTREF(__pyx_t_13);
   23618       86045 :   __Pyx_INCREF(__pyx_v__fused_sigindex);
   23619       86045 :   __Pyx_GIVEREF(__pyx_v__fused_sigindex);
   23620       86045 :   if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 0, __pyx_v__fused_sigindex)) __PYX_ERR(0, 141, __pyx_L1_error);
   23621       86045 :   __pyx_v_sigindex_candidates = ((PyObject*)__pyx_t_13);
   23622       86045 :   __pyx_t_13 = 0;
   23623       86045 :   __pyx_t_13 = __pyx_v_dest_sig; __Pyx_INCREF(__pyx_t_13);
   23624             :   __pyx_t_14 = 0;
   23625      172090 :   for (;;) {
   23626             :     {
   23627      172090 :       Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_13);
   23628             :       #if !CYTHON_ASSUME_SAFE_MACROS
   23629             :       if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23630             :       #endif
   23631      172090 :       if (__pyx_t_14 >= __pyx_temp) break;
   23632             :     }
   23633             :     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   23634       86045 :     __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely((0 < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23635             :     #else
   23636             :     __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_13, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
   23637             :     __Pyx_GOTREF(__pyx_t_1);
   23638             :     #endif
   23639       86045 :     __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
   23640       86045 :     __pyx_t_1 = 0;
   23641       86045 :     __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
   23642       86045 :     __Pyx_GOTREF(__pyx_t_1);
   23643       86045 :     __Pyx_XDECREF_SET(__pyx_v_found_matches, ((PyObject*)__pyx_t_1));
   23644       86045 :     __pyx_t_1 = 0;
   23645       86045 :     __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
   23646       86045 :     __Pyx_GOTREF(__pyx_t_1);
   23647       86045 :     __Pyx_XDECREF_SET(__pyx_v_found_candidates, ((PyObject*)__pyx_t_1));
   23648       86045 :     __pyx_t_1 = 0;
   23649       86045 :     __pyx_t_4 = (__pyx_v_dst_type == Py_None);
   23650       86045 :     if (__pyx_t_4) {
   23651           0 :       __pyx_t_1 = __pyx_v_sigindex_matches; __Pyx_INCREF(__pyx_t_1);
   23652           0 :       __pyx_t_5 = 0;
   23653           0 :       for (;;) {
   23654             :         {
   23655           0 :           Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
   23656             :           #if !CYTHON_ASSUME_SAFE_MACROS
   23657             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23658             :           #endif
   23659           0 :           if (__pyx_t_5 >= __pyx_temp) break;
   23660             :         }
   23661             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   23662           0 :         __pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_16); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23663             :         #else
   23664             :         __pyx_t_16 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 141, __pyx_L1_error)
   23665             :         __Pyx_GOTREF(__pyx_t_16);
   23666             :         #endif
   23667           0 :         __Pyx_XDECREF_SET(__pyx_v_sn, __pyx_t_16);
   23668           0 :         __pyx_t_16 = 0;
   23669           0 :         if (unlikely(__pyx_v_sn == Py_None)) {
   23670           0 :           PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
   23671           0 :           __PYX_ERR(0, 141, __pyx_L1_error)
   23672             :         }
   23673           0 :         __pyx_t_16 = __Pyx_PyDict_Values(((PyObject*)__pyx_v_sn)); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 141, __pyx_L1_error)
   23674           0 :         __Pyx_GOTREF(__pyx_t_16);
   23675           0 :         __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_found_matches, __pyx_t_16); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 141, __pyx_L1_error)
   23676           0 :         __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   23677             :       }
   23678           0 :       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   23679           0 :       __pyx_t_1 = __pyx_v_sigindex_candidates; __Pyx_INCREF(__pyx_t_1);
   23680           0 :       __pyx_t_5 = 0;
   23681           0 :       for (;;) {
   23682             :         {
   23683           0 :           Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
   23684             :           #if !CYTHON_ASSUME_SAFE_MACROS
   23685             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23686             :           #endif
   23687           0 :           if (__pyx_t_5 >= __pyx_temp) break;
   23688             :         }
   23689             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   23690           0 :         __pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_16); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23691             :         #else
   23692             :         __pyx_t_16 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 141, __pyx_L1_error)
   23693             :         __Pyx_GOTREF(__pyx_t_16);
   23694             :         #endif
   23695           0 :         __Pyx_XDECREF_SET(__pyx_v_sn, __pyx_t_16);
   23696           0 :         __pyx_t_16 = 0;
   23697           0 :         if (unlikely(__pyx_v_sn == Py_None)) {
   23698           0 :           PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
   23699           0 :           __PYX_ERR(0, 141, __pyx_L1_error)
   23700             :         }
   23701           0 :         __pyx_t_16 = __Pyx_PyDict_Values(((PyObject*)__pyx_v_sn)); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 141, __pyx_L1_error)
   23702           0 :         __Pyx_GOTREF(__pyx_t_16);
   23703           0 :         __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_found_candidates, __pyx_t_16); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 141, __pyx_L1_error)
   23704           0 :         __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   23705             :       }
   23706           0 :       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   23707           0 :       goto __pyx_L51;
   23708             :     }
   23709             :     /*else*/ {
   23710       86045 :       __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
   23711       86045 :       __Pyx_GOTREF(__pyx_t_1);
   23712       86045 :       __Pyx_INCREF(__pyx_v_sigindex_matches);
   23713       86045 :       __Pyx_GIVEREF(__pyx_v_sigindex_matches);
   23714       86045 :       if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_sigindex_matches)) __PYX_ERR(0, 141, __pyx_L1_error);
   23715       86045 :       __Pyx_INCREF(__pyx_v_sigindex_candidates);
   23716       86045 :       __Pyx_GIVEREF(__pyx_v_sigindex_candidates);
   23717       86045 :       if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_sigindex_candidates)) __PYX_ERR(0, 141, __pyx_L1_error);
   23718       86045 :       __pyx_t_16 = __pyx_t_1; __Pyx_INCREF(__pyx_t_16);
   23719       86045 :       __pyx_t_5 = 0;
   23720      172090 :       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   23721      430225 :       for (;;) {
   23722      258135 :         if (__pyx_t_5 >= 2) break;
   23723             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   23724      172090 :         __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_16, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23725             :         #else
   23726             :         __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_16, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
   23727             :         __Pyx_GOTREF(__pyx_t_1);
   23728             :         #endif
   23729      172090 :         __Pyx_XDECREF_SET(__pyx_v_search_list, ((PyObject*)__pyx_t_1));
   23730      172090 :         __pyx_t_1 = 0;
   23731      172090 :         if (unlikely(__pyx_v_search_list == Py_None)) {
   23732           0 :           PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
   23733           0 :           __PYX_ERR(0, 141, __pyx_L1_error)
   23734             :         }
   23735      172090 :         __pyx_t_1 = __pyx_v_search_list; __Pyx_INCREF(__pyx_t_1);
   23736             :         __pyx_t_19 = 0;
   23737      258135 :         for (;;) {
   23738             :           {
   23739      258135 :             Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
   23740             :             #if !CYTHON_ASSUME_SAFE_MACROS
   23741             :             if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23742             :             #endif
   23743      258135 :             if (__pyx_t_19 >= __pyx_temp) break;
   23744             :           }
   23745             :           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   23746       86045 :           __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_19); __Pyx_INCREF(__pyx_t_6); __pyx_t_19++; if (unlikely((0 < 0))) __PYX_ERR(0, 141, __pyx_L1_error)
   23747             :           #else
   23748             :           __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error)
   23749             :           __Pyx_GOTREF(__pyx_t_6);
   23750             :           #endif
   23751       86045 :           __Pyx_XDECREF_SET(__pyx_v_sn, __pyx_t_6);
   23752       86045 :           __pyx_t_6 = 0;
   23753       86045 :           if (unlikely(__pyx_v_sn == Py_None)) {
   23754           0 :             PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
   23755           0 :             __PYX_ERR(0, 141, __pyx_L1_error)
   23756             :           }
   23757       86045 :           __pyx_t_6 = __Pyx_PyDict_GetItemDefault(((PyObject*)__pyx_v_sn), __pyx_v_dst_type, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error)
   23758       86045 :           __Pyx_GOTREF(__pyx_t_6);
   23759       86045 :           __Pyx_XDECREF_SET(__pyx_v_type_match, __pyx_t_6);
   23760       86045 :           __pyx_t_6 = 0;
   23761       86045 :           __pyx_t_4 = (__pyx_v_type_match != Py_None);
   23762       86045 :           if (__pyx_t_4) {
   23763       86045 :             __pyx_t_20 = __Pyx_PyList_Append(__pyx_v_found_matches, __pyx_v_type_match); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 141, __pyx_L1_error)
   23764             :           }
   23765             :         }
   23766      344180 :         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   23767             :       }
   23768       86045 :       __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   23769             :     }
   23770       86045 :     __pyx_L51:;
   23771       86045 :     __Pyx_INCREF(__pyx_v_found_matches);
   23772       86045 :     __Pyx_DECREF_SET(__pyx_v_sigindex_matches, __pyx_v_found_matches);
   23773       86045 :     __Pyx_INCREF(__pyx_v_found_candidates);
   23774       86045 :     __Pyx_DECREF_SET(__pyx_v_sigindex_candidates, __pyx_v_found_candidates);
   23775       86045 :     __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_matches) != 0);
   23776       86045 :     if (!__pyx_t_2) {
   23777           0 :     } else {
   23778       86045 :       __pyx_t_4 = __pyx_t_2;
   23779       86045 :       goto __pyx_L66_bool_binop_done;
   23780             :     }
   23781           0 :     __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_candidates) != 0);
   23782           0 :     __pyx_t_4 = __pyx_t_2;
   23783       86045 :     __pyx_L66_bool_binop_done:;
   23784       86045 :     __pyx_t_2 = (!__pyx_t_4);
   23785       86045 :     if (__pyx_t_2) {
   23786           0 :       goto __pyx_L50_break;
   23787             :     }
   23788             :   }
   23789       86045 :   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
   23790       86045 :   goto __pyx_L68_for_end;
   23791           0 :   __pyx_L50_break:;
   23792           0 :   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
   23793           0 :   goto __pyx_L68_for_end;
   23794       86045 :   __pyx_L68_for_end:;
   23795       86045 :   __Pyx_INCREF(__pyx_v_sigindex_matches);
   23796       86045 :   __pyx_v_candidates = __pyx_v_sigindex_matches;
   23797       86045 :   __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
   23798       86045 :   __pyx_t_4 = (!__pyx_t_2);
   23799       86045 :   if (unlikely(__pyx_t_4)) {
   23800           0 :     __pyx_t_13 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 141, __pyx_L1_error)
   23801           0 :     __Pyx_GOTREF(__pyx_t_13);
   23802           0 :     __Pyx_Raise(__pyx_t_13, 0, 0, 0);
   23803           0 :     __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
   23804           0 :     __PYX_ERR(0, 141, __pyx_L1_error)
   23805             :   }
   23806       86045 :   __pyx_t_14 = __Pyx_PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(0, 141, __pyx_L1_error)
   23807       86045 :   __pyx_t_4 = (__pyx_t_14 > 1);
   23808       86045 :   if (unlikely(__pyx_t_4)) {
   23809           0 :     __pyx_t_13 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 141, __pyx_L1_error)
   23810           0 :     __Pyx_GOTREF(__pyx_t_13);
   23811           0 :     __Pyx_Raise(__pyx_t_13, 0, 0, 0);
   23812           0 :     __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
   23813           0 :     __PYX_ERR(0, 141, __pyx_L1_error)
   23814             :   }
   23815             :   /*else*/ {
   23816       86045 :     __Pyx_XDECREF(__pyx_r);
   23817       86045 :     if (unlikely(__pyx_v_signatures == Py_None)) {
   23818           0 :       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   23819           0 :       __PYX_ERR(0, 141, __pyx_L1_error)
   23820             :     }
   23821       86045 :     __pyx_t_13 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 141, __pyx_L1_error)
   23822       86045 :     __Pyx_GOTREF(__pyx_t_13);
   23823       86045 :     __pyx_t_16 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_13); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 141, __pyx_L1_error)
   23824       86045 :     __Pyx_GOTREF(__pyx_t_16);
   23825       86045 :     __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
   23826       86045 :     __pyx_r = __pyx_t_16;
   23827       86045 :     __pyx_t_16 = 0;
   23828       86045 :     goto __pyx_L0;
   23829             :   }
   23830             : 
   23831             :   /* function exit code */
   23832           0 :   __pyx_L1_error:;
   23833           0 :   __Pyx_XDECREF(__pyx_t_1);
   23834           0 :   __Pyx_XDECREF(__pyx_t_6);
   23835           0 :   __Pyx_XDECREF(__pyx_t_13);
   23836           0 :   __Pyx_XDECREF(__pyx_t_16);
   23837           0 :   __Pyx_XDECREF(__pyx_t_17);
   23838           0 :   __Pyx_AddTraceback("_csparsetools.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
   23839           0 :   __pyx_r = NULL;
   23840       86045 :   __pyx_L0:;
   23841       86045 :   __Pyx_XDECREF(__pyx_v_search_list);
   23842       86045 :   __Pyx_XDECREF(__pyx_v_sigindex_node);
   23843       86045 :   __Pyx_XDECREF(__pyx_v_dest_sig);
   23844       86045 :   __Pyx_XDECREF((PyObject *)__pyx_v_ndarray);
   23845       86045 :   __Pyx_XDECREF(__pyx_v_arg_as_memoryview);
   23846       86045 :   __Pyx_XDECREF(__pyx_v_arg);
   23847       86045 :   __Pyx_XDECREF(__pyx_v_dtype);
   23848       86045 :   __Pyx_XDECREF(__pyx_v_arg_base);
   23849       86045 :   __Pyx_XDECREF(__pyx_v_sig);
   23850       86045 :   __Pyx_XDECREF(__pyx_v_sig_series);
   23851       86045 :   __Pyx_XDECREF(__pyx_v_last_type);
   23852       86045 :   __Pyx_XDECREF(__pyx_v_sig_type);
   23853       86045 :   __Pyx_XDECREF(__pyx_v_sigindex_matches);
   23854       86045 :   __Pyx_XDECREF(__pyx_v_sigindex_candidates);
   23855       86045 :   __Pyx_XDECREF(__pyx_v_dst_type);
   23856       86045 :   __Pyx_XDECREF(__pyx_v_found_matches);
   23857       86045 :   __Pyx_XDECREF(__pyx_v_found_candidates);
   23858       86045 :   __Pyx_XDECREF(__pyx_v_sn);
   23859       86045 :   __Pyx_XDECREF(__pyx_v_type_match);
   23860       86045 :   __Pyx_XDECREF(__pyx_v_candidates);
   23861       86045 :   __Pyx_XDECREF(__pyx_v_kwargs);
   23862       86045 :   __Pyx_XGIVEREF(__pyx_r);
   23863       86045 :   __Pyx_RefNannyFinishContext();
   23864       86045 :   return __pyx_r;
   23865             : }
   23866             : 
   23867             : /* Python wrapper */
   23868             : static PyObject *__pyx_fuse_0__pyx_pw_13_csparsetools_113lil_flatten_to_array(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
   23869             : static PyMethodDef __pyx_fuse_0__pyx_mdef_13_csparsetools_113lil_flatten_to_array = {"__pyx_fuse_0lil_flatten_to_array", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_13_csparsetools_113lil_flatten_to_array, METH_VARARGS|METH_KEYWORDS, 0};
   23870       86045 : static PyObject *__pyx_fuse_0__pyx_pw_13_csparsetools_113lil_flatten_to_array(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
   23871       86045 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   23872       86045 :   PyArrayObject *__pyx_v_output = 0;
   23873       86045 :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   23874       86045 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   23875       86045 :   PyObject* values[2] = {0,0};
   23876       86045 :   int __pyx_lineno = 0;
   23877       86045 :   const char *__pyx_filename = NULL;
   23878       86045 :   int __pyx_clineno = 0;
   23879       86045 :   PyObject *__pyx_r = 0;
   23880             :   __Pyx_RefNannyDeclarations
   23881       86045 :   __Pyx_RefNannySetupContext("lil_flatten_to_array (wrapper)", 0);
   23882             :   #if CYTHON_ASSUME_SAFE_MACROS
   23883       86045 :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   23884             :   #else
   23885             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   23886             :   #endif
   23887       86045 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   23888             :   {
   23889       86045 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   23890       86045 :     if (__pyx_kwds) {
   23891           0 :       Py_ssize_t kw_args;
   23892           0 :       switch (__pyx_nargs) {
   23893           0 :         case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
   23894           0 :         CYTHON_FALLTHROUGH;
   23895           0 :         case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
   23896           0 :         CYTHON_FALLTHROUGH;
   23897           0 :         case  0: break;
   23898           0 :         default: goto __pyx_L5_argtuple_error;
   23899             :       }
   23900           0 :       kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
   23901           0 :       switch (__pyx_nargs) {
   23902           0 :         case  0:
   23903           0 :         if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   23904           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
   23905           0 :           kw_args--;
   23906             :         }
   23907           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
   23908           0 :         else goto __pyx_L5_argtuple_error;
   23909           0 :         CYTHON_FALLTHROUGH;
   23910             :         case  1:
   23911           0 :         if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   23912           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
   23913           0 :           kw_args--;
   23914             :         }
   23915           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
   23916             :         else {
   23917           0 :           __Pyx_RaiseArgtupleInvalid("lil_flatten_to_array", 1, 2, 2, 1); __PYX_ERR(0, 141, __pyx_L3_error)
   23918             :         }
   23919             :       }
   23920           0 :       if (unlikely(kw_args > 0)) {
   23921           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   23922           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "lil_flatten_to_array") < 0)) __PYX_ERR(0, 141, __pyx_L3_error)
   23923             :       }
   23924       86045 :     } else if (unlikely(__pyx_nargs != 2)) {
   23925           0 :       goto __pyx_L5_argtuple_error;
   23926             :     } else {
   23927       86045 :       values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
   23928       86045 :       values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
   23929             :     }
   23930       86045 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], 0); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 141, __pyx_L3_error)
   23931       86045 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   23932             :   }
   23933       86045 :   goto __pyx_L6_skip;
   23934           0 :   __pyx_L5_argtuple_error:;
   23935           0 :   __Pyx_RaiseArgtupleInvalid("lil_flatten_to_array", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 141, __pyx_L3_error)
   23936       86045 :   __pyx_L6_skip:;
   23937       86045 :   goto __pyx_L4_argument_unpacking_done;
   23938           0 :   __pyx_L3_error:;
   23939             :   {
   23940           0 :     Py_ssize_t __pyx_temp;
   23941           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   23942             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
   23943             :     }
   23944             :   }
   23945           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   23946           0 :   __Pyx_AddTraceback("_csparsetools.lil_flatten_to_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
   23947           0 :   __Pyx_RefNannyFinishContext();
   23948           0 :   return NULL;
   23949       86045 :   __pyx_L4_argument_unpacking_done:;
   23950       86045 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 1, "output", 0))) __PYX_ERR(0, 142, __pyx_L1_error)
   23951       86045 :   __pyx_r = __pyx_pf_13_csparsetools_112lil_flatten_to_array(__pyx_self, __pyx_v_input, __pyx_v_output);
   23952             : 
   23953             :   /* function exit code */
   23954       86045 :   goto __pyx_L0;
   23955           0 :   __pyx_L1_error:;
   23956           0 :   __pyx_r = NULL;
   23957       86045 :   __pyx_L0:;
   23958       86045 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   23959             :   {
   23960       86045 :     Py_ssize_t __pyx_temp;
   23961       86045 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   23962             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
   23963             :     }
   23964             :   }
   23965             :   __Pyx_RefNannyFinishContext();
   23966             :   return __pyx_r;
   23967             : }
   23968             : 
   23969       86045 : static PyObject *__pyx_pf_13_csparsetools_112lil_flatten_to_array(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   23970       86045 :   PyObject *__pyx_r = NULL;
   23971             :   __Pyx_RefNannyDeclarations
   23972       86045 :   PyObject *__pyx_t_1 = NULL;
   23973       86045 :   PyObject *__pyx_t_2 = NULL;
   23974       86045 :   PyObject *__pyx_t_3 = NULL;
   23975       86045 :   PyObject *__pyx_t_4 = NULL;
   23976       86045 :   unsigned int __pyx_t_5;
   23977       86045 :   int __pyx_lineno = 0;
   23978       86045 :   const char *__pyx_filename = NULL;
   23979       86045 :   int __pyx_clineno = 0;
   23980       86045 :   __Pyx_RefNannySetupContext("__pyx_fuse_0lil_flatten_to_array", 1);
   23981             : 
   23982             :   /* "_csparsetools.pyx":143
   23983             :  * def lil_flatten_to_array(const obj_fused[:] input,
   23984             :  *                          cnp.ndarray output):
   23985             :  *     return _LIL_FLATTEN_TO_ARRAY_DISPATCH[output.dtype](input, output)             # <<<<<<<<<<<<<<
   23986             :  * @cython.boundscheck(False)
   23987             :  * @cython.wraparound(False)
   23988             :  */
   23989       86045 :   __Pyx_XDECREF(__pyx_r);
   23990       86045 :   if (unlikely(__pyx_v_13_csparsetools__LIL_FLATTEN_TO_ARRAY_DISPATCH == Py_None)) {
   23991           0 :     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   23992           0 :     __PYX_ERR(0, 143, __pyx_L1_error)
   23993             :   }
   23994       86045 :   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_output), __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error)
   23995       86045 :   __Pyx_GOTREF(__pyx_t_2);
   23996       86045 :   __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_13_csparsetools__LIL_FLATTEN_TO_ARRAY_DISPATCH, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 143, __pyx_L1_error)
   23997       86045 :   __Pyx_GOTREF(__pyx_t_3);
   23998       86045 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   23999       86045 :   __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_input, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error)
   24000       86045 :   __Pyx_GOTREF(__pyx_t_2);
   24001       86045 :   __pyx_t_4 = NULL;
   24002       86045 :   __pyx_t_5 = 0;
   24003             :   #if CYTHON_UNPACK_METHODS
   24004       86045 :   if (unlikely(PyMethod_Check(__pyx_t_3))) {
   24005           0 :     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
   24006           0 :     if (likely(__pyx_t_4)) {
   24007           0 :       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
   24008           0 :       __Pyx_INCREF(__pyx_t_4);
   24009           0 :       __Pyx_INCREF(function);
   24010           0 :       __Pyx_DECREF_SET(__pyx_t_3, function);
   24011             :       __pyx_t_5 = 1;
   24012             :     }
   24013             :   }
   24014             :   #endif
   24015             :   {
   24016       86045 :     PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_2, ((PyObject *)__pyx_v_output)};
   24017       86045 :     __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
   24018       86045 :     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
   24019       86045 :     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   24020       86045 :     if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 143, __pyx_L1_error)
   24021       86045 :     __Pyx_GOTREF(__pyx_t_1);
   24022       86045 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   24023             :   }
   24024       86045 :   __pyx_r = __pyx_t_1;
   24025       86045 :   __pyx_t_1 = 0;
   24026       86045 :   goto __pyx_L0;
   24027             : 
   24028             :   /* "_csparsetools.pyx":141
   24029             :  *     double
   24030             :  * 
   24031             :  * def lil_flatten_to_array(const obj_fused[:] input,             # <<<<<<<<<<<<<<
   24032             :  *                          cnp.ndarray output):
   24033             :  *     return _LIL_FLATTEN_TO_ARRAY_DISPATCH[output.dtype](input, output)
   24034             :  */
   24035             : 
   24036             :   /* function exit code */
   24037           0 :   __pyx_L1_error:;
   24038           0 :   __Pyx_XDECREF(__pyx_t_1);
   24039           0 :   __Pyx_XDECREF(__pyx_t_2);
   24040           0 :   __Pyx_XDECREF(__pyx_t_3);
   24041           0 :   __Pyx_XDECREF(__pyx_t_4);
   24042           0 :   __Pyx_AddTraceback("_csparsetools.lil_flatten_to_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
   24043           0 :   __pyx_r = NULL;
   24044       86045 :   __pyx_L0:;
   24045       86045 :   __Pyx_XGIVEREF(__pyx_r);
   24046       86045 :   __Pyx_RefNannyFinishContext();
   24047       86045 :   return __pyx_r;
   24048             : }
   24049             : 
   24050             : /* Python wrapper */
   24051             : static PyObject *__pyx_fuse_1__pyx_pw_13_csparsetools_115lil_flatten_to_array(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
   24052             : static PyMethodDef __pyx_fuse_1__pyx_mdef_13_csparsetools_115lil_flatten_to_array = {"__pyx_fuse_1lil_flatten_to_array", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_13_csparsetools_115lil_flatten_to_array, METH_VARARGS|METH_KEYWORDS, 0};
   24053           0 : static PyObject *__pyx_fuse_1__pyx_pw_13_csparsetools_115lil_flatten_to_array(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
   24054           0 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   24055           0 :   PyArrayObject *__pyx_v_output = 0;
   24056           0 :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   24057           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   24058           0 :   PyObject* values[2] = {0,0};
   24059           0 :   int __pyx_lineno = 0;
   24060           0 :   const char *__pyx_filename = NULL;
   24061           0 :   int __pyx_clineno = 0;
   24062           0 :   PyObject *__pyx_r = 0;
   24063             :   __Pyx_RefNannyDeclarations
   24064           0 :   __Pyx_RefNannySetupContext("lil_flatten_to_array (wrapper)", 0);
   24065             :   #if CYTHON_ASSUME_SAFE_MACROS
   24066           0 :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   24067             :   #else
   24068             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   24069             :   #endif
   24070           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   24071             :   {
   24072           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   24073           0 :     if (__pyx_kwds) {
   24074           0 :       Py_ssize_t kw_args;
   24075           0 :       switch (__pyx_nargs) {
   24076           0 :         case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
   24077           0 :         CYTHON_FALLTHROUGH;
   24078           0 :         case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
   24079           0 :         CYTHON_FALLTHROUGH;
   24080           0 :         case  0: break;
   24081           0 :         default: goto __pyx_L5_argtuple_error;
   24082             :       }
   24083           0 :       kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
   24084           0 :       switch (__pyx_nargs) {
   24085           0 :         case  0:
   24086           0 :         if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   24087           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
   24088           0 :           kw_args--;
   24089             :         }
   24090           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
   24091           0 :         else goto __pyx_L5_argtuple_error;
   24092           0 :         CYTHON_FALLTHROUGH;
   24093             :         case  1:
   24094           0 :         if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   24095           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
   24096           0 :           kw_args--;
   24097             :         }
   24098           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
   24099             :         else {
   24100           0 :           __Pyx_RaiseArgtupleInvalid("lil_flatten_to_array", 1, 2, 2, 1); __PYX_ERR(0, 141, __pyx_L3_error)
   24101             :         }
   24102             :       }
   24103           0 :       if (unlikely(kw_args > 0)) {
   24104           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   24105           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "lil_flatten_to_array") < 0)) __PYX_ERR(0, 141, __pyx_L3_error)
   24106             :       }
   24107           0 :     } else if (unlikely(__pyx_nargs != 2)) {
   24108           0 :       goto __pyx_L5_argtuple_error;
   24109             :     } else {
   24110           0 :       values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
   24111           0 :       values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
   24112             :     }
   24113           0 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_double__const__(values[0], 0); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 141, __pyx_L3_error)
   24114           0 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   24115             :   }
   24116           0 :   goto __pyx_L6_skip;
   24117           0 :   __pyx_L5_argtuple_error:;
   24118           0 :   __Pyx_RaiseArgtupleInvalid("lil_flatten_to_array", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 141, __pyx_L3_error)
   24119           0 :   __pyx_L6_skip:;
   24120           0 :   goto __pyx_L4_argument_unpacking_done;
   24121           0 :   __pyx_L3_error:;
   24122             :   {
   24123           0 :     Py_ssize_t __pyx_temp;
   24124           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   24125             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
   24126             :     }
   24127             :   }
   24128           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   24129           0 :   __Pyx_AddTraceback("_csparsetools.lil_flatten_to_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
   24130           0 :   __Pyx_RefNannyFinishContext();
   24131           0 :   return NULL;
   24132           0 :   __pyx_L4_argument_unpacking_done:;
   24133           0 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 1, "output", 0))) __PYX_ERR(0, 142, __pyx_L1_error)
   24134           0 :   __pyx_r = __pyx_pf_13_csparsetools_114lil_flatten_to_array(__pyx_self, __pyx_v_input, __pyx_v_output);
   24135             : 
   24136             :   /* function exit code */
   24137           0 :   goto __pyx_L0;
   24138           0 :   __pyx_L1_error:;
   24139           0 :   __pyx_r = NULL;
   24140           0 :   __pyx_L0:;
   24141           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   24142             :   {
   24143           0 :     Py_ssize_t __pyx_temp;
   24144           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   24145             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
   24146             :     }
   24147             :   }
   24148             :   __Pyx_RefNannyFinishContext();
   24149             :   return __pyx_r;
   24150             : }
   24151             : 
   24152           0 : static PyObject *__pyx_pf_13_csparsetools_114lil_flatten_to_array(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   24153           0 :   PyObject *__pyx_r = NULL;
   24154             :   __Pyx_RefNannyDeclarations
   24155           0 :   PyObject *__pyx_t_1 = NULL;
   24156           0 :   PyObject *__pyx_t_2 = NULL;
   24157           0 :   PyObject *__pyx_t_3 = NULL;
   24158           0 :   PyObject *__pyx_t_4 = NULL;
   24159           0 :   unsigned int __pyx_t_5;
   24160           0 :   int __pyx_lineno = 0;
   24161           0 :   const char *__pyx_filename = NULL;
   24162           0 :   int __pyx_clineno = 0;
   24163           0 :   __Pyx_RefNannySetupContext("__pyx_fuse_1lil_flatten_to_array", 1);
   24164             : 
   24165             :   /* "_csparsetools.pyx":143
   24166             :  * def lil_flatten_to_array(const obj_fused[:] input,
   24167             :  *                          cnp.ndarray output):
   24168             :  *     return _LIL_FLATTEN_TO_ARRAY_DISPATCH[output.dtype](input, output)             # <<<<<<<<<<<<<<
   24169             :  * @cython.boundscheck(False)
   24170             :  * @cython.wraparound(False)
   24171             :  */
   24172           0 :   __Pyx_XDECREF(__pyx_r);
   24173           0 :   if (unlikely(__pyx_v_13_csparsetools__LIL_FLATTEN_TO_ARRAY_DISPATCH == Py_None)) {
   24174           0 :     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   24175           0 :     __PYX_ERR(0, 143, __pyx_L1_error)
   24176             :   }
   24177           0 :   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_output), __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error)
   24178           0 :   __Pyx_GOTREF(__pyx_t_2);
   24179           0 :   __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_13_csparsetools__LIL_FLATTEN_TO_ARRAY_DISPATCH, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 143, __pyx_L1_error)
   24180           0 :   __Pyx_GOTREF(__pyx_t_3);
   24181           0 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   24182           0 :   __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_input, 1, (PyObject *(*)(char *)) __pyx_memview_get_double__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error)
   24183           0 :   __Pyx_GOTREF(__pyx_t_2);
   24184           0 :   __pyx_t_4 = NULL;
   24185           0 :   __pyx_t_5 = 0;
   24186             :   #if CYTHON_UNPACK_METHODS
   24187           0 :   if (unlikely(PyMethod_Check(__pyx_t_3))) {
   24188           0 :     __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
   24189           0 :     if (likely(__pyx_t_4)) {
   24190           0 :       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
   24191           0 :       __Pyx_INCREF(__pyx_t_4);
   24192           0 :       __Pyx_INCREF(function);
   24193           0 :       __Pyx_DECREF_SET(__pyx_t_3, function);
   24194             :       __pyx_t_5 = 1;
   24195             :     }
   24196             :   }
   24197             :   #endif
   24198             :   {
   24199           0 :     PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_2, ((PyObject *)__pyx_v_output)};
   24200           0 :     __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
   24201           0 :     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
   24202           0 :     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   24203           0 :     if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 143, __pyx_L1_error)
   24204           0 :     __Pyx_GOTREF(__pyx_t_1);
   24205           0 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   24206             :   }
   24207           0 :   __pyx_r = __pyx_t_1;
   24208           0 :   __pyx_t_1 = 0;
   24209           0 :   goto __pyx_L0;
   24210             : 
   24211             :   /* "_csparsetools.pyx":141
   24212             :  *     double
   24213             :  * 
   24214             :  * def lil_flatten_to_array(const obj_fused[:] input,             # <<<<<<<<<<<<<<
   24215             :  *                          cnp.ndarray output):
   24216             :  *     return _LIL_FLATTEN_TO_ARRAY_DISPATCH[output.dtype](input, output)
   24217             :  */
   24218             : 
   24219             :   /* function exit code */
   24220           0 :   __pyx_L1_error:;
   24221           0 :   __Pyx_XDECREF(__pyx_t_1);
   24222           0 :   __Pyx_XDECREF(__pyx_t_2);
   24223           0 :   __Pyx_XDECREF(__pyx_t_3);
   24224           0 :   __Pyx_XDECREF(__pyx_t_4);
   24225           0 :   __Pyx_AddTraceback("_csparsetools.lil_flatten_to_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
   24226           0 :   __pyx_r = NULL;
   24227           0 :   __pyx_L0:;
   24228           0 :   __Pyx_XGIVEREF(__pyx_r);
   24229           0 :   __Pyx_RefNannyFinishContext();
   24230           0 :   return __pyx_r;
   24231             : }
   24232             : 
   24233             : /* "_csparsetools.pyx":144
   24234             :  *                          cnp.ndarray output):
   24235             :  *     return _LIL_FLATTEN_TO_ARRAY_DISPATCH[output.dtype](input, output)
   24236             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   24237             :  * @cython.wraparound(False)
   24238             :  * def _lil_flatten_to_array_bool_(object[:] input not None, cnp.ndarray[cnp.npy_bool] output not None):
   24239             :  */
   24240             : 
   24241             : /* Python wrapper */
   24242             : static PyObject *__pyx_pw_13_csparsetools_13_lil_flatten_to_array_bool_(PyObject *__pyx_self, 
   24243             : #if CYTHON_METH_FASTCALL
   24244             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   24245             : #else
   24246             : PyObject *__pyx_args, PyObject *__pyx_kwds
   24247             : #endif
   24248             : ); /*proto*/
   24249             : static PyMethodDef __pyx_mdef_13_csparsetools_13_lil_flatten_to_array_bool_ = {"_lil_flatten_to_array_bool_", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_13_lil_flatten_to_array_bool_, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   24250        1733 : static PyObject *__pyx_pw_13_csparsetools_13_lil_flatten_to_array_bool_(PyObject *__pyx_self, 
   24251             : #if CYTHON_METH_FASTCALL
   24252             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   24253             : #else
   24254             : PyObject *__pyx_args, PyObject *__pyx_kwds
   24255             : #endif
   24256             : ) {
   24257        1733 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   24258        1733 :   PyArrayObject *__pyx_v_output = 0;
   24259             :   #if !CYTHON_METH_FASTCALL
   24260             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   24261             :   #endif
   24262        1733 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   24263        1733 :   PyObject* values[2] = {0,0};
   24264        1733 :   int __pyx_lineno = 0;
   24265        1733 :   const char *__pyx_filename = NULL;
   24266        1733 :   int __pyx_clineno = 0;
   24267        1733 :   PyObject *__pyx_r = 0;
   24268             :   __Pyx_RefNannyDeclarations
   24269        1733 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_bool_ (wrapper)", 0);
   24270             :   #if !CYTHON_METH_FASTCALL
   24271             :   #if CYTHON_ASSUME_SAFE_MACROS
   24272             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   24273             :   #else
   24274             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   24275             :   #endif
   24276             :   #endif
   24277        1733 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   24278             :   {
   24279        1733 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   24280        1733 :     if (__pyx_kwds) {
   24281           0 :       Py_ssize_t kw_args;
   24282           0 :       switch (__pyx_nargs) {
   24283           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   24284           0 :         CYTHON_FALLTHROUGH;
   24285           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   24286           0 :         CYTHON_FALLTHROUGH;
   24287           0 :         case  0: break;
   24288           0 :         default: goto __pyx_L5_argtuple_error;
   24289             :       }
   24290           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   24291           0 :       switch (__pyx_nargs) {
   24292             :         case  0:
   24293           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   24294           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   24295           0 :           kw_args--;
   24296             :         }
   24297           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 144, __pyx_L3_error)
   24298           0 :         else goto __pyx_L5_argtuple_error;
   24299           0 :         CYTHON_FALLTHROUGH;
   24300             :         case  1:
   24301           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   24302           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   24303           0 :           kw_args--;
   24304             :         }
   24305           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 144, __pyx_L3_error)
   24306             :         else {
   24307           0 :           __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_bool_", 1, 2, 2, 1); __PYX_ERR(0, 144, __pyx_L3_error)
   24308             :         }
   24309             :       }
   24310           0 :       if (unlikely(kw_args > 0)) {
   24311           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   24312           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_flatten_to_array_bool_") < 0)) __PYX_ERR(0, 144, __pyx_L3_error)
   24313             :       }
   24314        1733 :     } else if (unlikely(__pyx_nargs != 2)) {
   24315           0 :       goto __pyx_L5_argtuple_error;
   24316             :     } else {
   24317        1733 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   24318        1733 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   24319             :     }
   24320        1733 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 146, __pyx_L3_error)
   24321        1733 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   24322             :   }
   24323        1733 :   goto __pyx_L6_skip;
   24324           0 :   __pyx_L5_argtuple_error:;
   24325           0 :   __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_bool_", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 144, __pyx_L3_error)
   24326        1733 :   __pyx_L6_skip:;
   24327        1733 :   goto __pyx_L4_argument_unpacking_done;
   24328           0 :   __pyx_L3_error:;
   24329             :   {
   24330           0 :     Py_ssize_t __pyx_temp;
   24331           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   24332             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   24333             :     }
   24334             :   }
   24335           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   24336           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_bool_", __pyx_clineno, __pyx_lineno, __pyx_filename);
   24337           0 :   __Pyx_RefNannyFinishContext();
   24338           0 :   return NULL;
   24339        1733 :   __pyx_L4_argument_unpacking_done:;
   24340        1733 :   if (unlikely(((PyObject *)__pyx_v_input.memview) == Py_None)) {
   24341           0 :     PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "input"); __PYX_ERR(0, 146, __pyx_L1_error)
   24342             :   }
   24343        1733 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 0, "output", 0))) __PYX_ERR(0, 146, __pyx_L1_error)
   24344        1733 :   __pyx_r = __pyx_pf_13_csparsetools_12_lil_flatten_to_array_bool_(__pyx_self, __pyx_v_input, __pyx_v_output);
   24345             : 
   24346             :   /* function exit code */
   24347        1733 :   goto __pyx_L0;
   24348             :   __pyx_L1_error:;
   24349             :   __pyx_r = NULL;
   24350        1733 :   __pyx_L0:;
   24351        1733 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   24352             :   {
   24353        1733 :     Py_ssize_t __pyx_temp;
   24354        1733 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   24355             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   24356             :     }
   24357             :   }
   24358             :   __Pyx_RefNannyFinishContext();
   24359             :   return __pyx_r;
   24360             : }
   24361             : 
   24362        1733 : static PyObject *__pyx_pf_13_csparsetools_12_lil_flatten_to_array_bool_(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   24363        1733 :   PyObject *__pyx_v_row = 0;
   24364        1733 :   size_t __pyx_v_pos;
   24365        1733 :   Py_ssize_t __pyx_v_i;
   24366        1733 :   Py_ssize_t __pyx_v_j;
   24367        1733 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   24368        1733 :   __Pyx_Buffer __pyx_pybuffer_output;
   24369        1733 :   PyObject *__pyx_r = NULL;
   24370             :   __Pyx_RefNannyDeclarations
   24371        1733 :   Py_ssize_t __pyx_t_1;
   24372        1733 :   Py_ssize_t __pyx_t_2;
   24373        1733 :   Py_ssize_t __pyx_t_3;
   24374        1733 :   PyObject *__pyx_t_4 = NULL;
   24375        1733 :   Py_ssize_t __pyx_t_5;
   24376        1733 :   Py_ssize_t __pyx_t_6;
   24377        1733 :   Py_ssize_t __pyx_t_7;
   24378        1733 :   Py_ssize_t __pyx_t_8;
   24379        1733 :   npy_bool __pyx_t_9;
   24380        1733 :   size_t __pyx_t_10;
   24381        1733 :   int __pyx_lineno = 0;
   24382        1733 :   const char *__pyx_filename = NULL;
   24383        1733 :   int __pyx_clineno = 0;
   24384        1733 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_bool_", 1);
   24385        1733 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   24386        1733 :   __pyx_pybuffer_output.refcount = 0;
   24387        1733 :   __pyx_pybuffernd_output.data = NULL;
   24388        1733 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   24389             :   {
   24390        1733 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   24391        1733 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo_nn_npy_bool, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 144, __pyx_L1_error)
   24392             :   }
   24393        1733 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   24394             : 
   24395             :   /* "_csparsetools.pyx":148
   24396             :  * def _lil_flatten_to_array_bool_(object[:] input not None, cnp.ndarray[cnp.npy_bool] output not None):
   24397             :  *     cdef list row
   24398             :  *     cdef size_t pos = 0             # <<<<<<<<<<<<<<
   24399             :  *     for i in range(len(input)):
   24400             :  *         row = input[i]
   24401             :  */
   24402        1733 :   __pyx_v_pos = 0;
   24403             : 
   24404             :   /* "_csparsetools.pyx":149
   24405             :  *     cdef list row
   24406             :  *     cdef size_t pos = 0
   24407             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   24408             :  *         row = input[i]
   24409             :  *         for j in range(len(row)):
   24410             :  */
   24411        1733 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   24412        1733 :   __pyx_t_2 = __pyx_t_1;
   24413       12896 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   24414       11163 :     __pyx_v_i = __pyx_t_3;
   24415             : 
   24416             :     /* "_csparsetools.pyx":150
   24417             :  *     cdef size_t pos = 0
   24418             :  *     for i in range(len(input)):
   24419             :  *         row = input[i]             # <<<<<<<<<<<<<<
   24420             :  *         for j in range(len(row)):
   24421             :  *             output[pos] = row[j]
   24422             :  */
   24423       11163 :     __pyx_t_5 = __pyx_v_i;
   24424       11163 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   24425       11163 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   24426       11163 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   24427       11163 :     if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 150, __pyx_L1_error)
   24428       11163 :     __Pyx_XDECREF_SET(__pyx_v_row, ((PyObject*)__pyx_t_4));
   24429       11163 :     __pyx_t_4 = 0;
   24430             : 
   24431             :     /* "_csparsetools.pyx":151
   24432             :  *     for i in range(len(input)):
   24433             :  *         row = input[i]
   24434             :  *         for j in range(len(row)):             # <<<<<<<<<<<<<<
   24435             :  *             output[pos] = row[j]
   24436             :  *             pos += 1
   24437             :  */
   24438       11163 :     if (unlikely(__pyx_v_row == Py_None)) {
   24439           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   24440           0 :       __PYX_ERR(0, 151, __pyx_L1_error)
   24441             :     }
   24442       11163 :     __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 151, __pyx_L1_error)
   24443             :     __pyx_t_7 = __pyx_t_6;
   24444       24875 :     for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
   24445       13712 :       __pyx_v_j = __pyx_t_8;
   24446             : 
   24447             :       /* "_csparsetools.pyx":152
   24448             :  *         row = input[i]
   24449             :  *         for j in range(len(row)):
   24450             :  *             output[pos] = row[j]             # <<<<<<<<<<<<<<
   24451             :  *             pos += 1
   24452             :  * @cython.boundscheck(False)
   24453             :  */
   24454       13712 :       if (unlikely(__pyx_v_row == Py_None)) {
   24455             :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   24456             :         __PYX_ERR(0, 152, __pyx_L1_error)
   24457             :       }
   24458       13712 :       __pyx_t_9 = __Pyx_PyInt_As_npy_bool(PyList_GET_ITEM(__pyx_v_row, __pyx_v_j)); if (unlikely((__pyx_t_9 == ((npy_bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 152, __pyx_L1_error)
   24459       13712 :       __pyx_t_10 = __pyx_v_pos;
   24460       13712 :       *__Pyx_BufPtrStrided1d(npy_bool *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_9;
   24461             : 
   24462             :       /* "_csparsetools.pyx":153
   24463             :  *         for j in range(len(row)):
   24464             :  *             output[pos] = row[j]
   24465             :  *             pos += 1             # <<<<<<<<<<<<<<
   24466             :  * @cython.boundscheck(False)
   24467             :  * @cython.wraparound(False)
   24468             :  */
   24469       13712 :       __pyx_v_pos = (__pyx_v_pos + 1);
   24470             :     }
   24471             :   }
   24472             : 
   24473             :   /* "_csparsetools.pyx":144
   24474             :  *                          cnp.ndarray output):
   24475             :  *     return _LIL_FLATTEN_TO_ARRAY_DISPATCH[output.dtype](input, output)
   24476             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   24477             :  * @cython.wraparound(False)
   24478             :  * def _lil_flatten_to_array_bool_(object[:] input not None, cnp.ndarray[cnp.npy_bool] output not None):
   24479             :  */
   24480             : 
   24481             :   /* function exit code */
   24482        1733 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   24483        1733 :   goto __pyx_L0;
   24484           0 :   __pyx_L1_error:;
   24485           0 :   __Pyx_XDECREF(__pyx_t_4);
   24486           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   24487           0 :     __Pyx_PyThreadState_declare
   24488           0 :     __Pyx_PyThreadState_assign
   24489           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   24490           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   24491           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   24492           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_bool_", __pyx_clineno, __pyx_lineno, __pyx_filename);
   24493           0 :   __pyx_r = NULL;
   24494           0 :   goto __pyx_L2;
   24495        1733 :   __pyx_L0:;
   24496        1733 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   24497        1733 :   __pyx_L2:;
   24498        1733 :   __Pyx_XDECREF(__pyx_v_row);
   24499        1733 :   __Pyx_XGIVEREF(__pyx_r);
   24500        1733 :   __Pyx_RefNannyFinishContext();
   24501        1733 :   return __pyx_r;
   24502             : }
   24503             : 
   24504             : /* "_csparsetools.pyx":154
   24505             :  *             output[pos] = row[j]
   24506             :  *             pos += 1
   24507             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   24508             :  * @cython.wraparound(False)
   24509             :  * def _lil_flatten_to_array_int8(object[:] input not None, cnp.ndarray[cnp.npy_int8] output not None):
   24510             :  */
   24511             : 
   24512             : /* Python wrapper */
   24513             : static PyObject *__pyx_pw_13_csparsetools_15_lil_flatten_to_array_int8(PyObject *__pyx_self, 
   24514             : #if CYTHON_METH_FASTCALL
   24515             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   24516             : #else
   24517             : PyObject *__pyx_args, PyObject *__pyx_kwds
   24518             : #endif
   24519             : ); /*proto*/
   24520             : static PyMethodDef __pyx_mdef_13_csparsetools_15_lil_flatten_to_array_int8 = {"_lil_flatten_to_array_int8", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_15_lil_flatten_to_array_int8, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   24521        1978 : static PyObject *__pyx_pw_13_csparsetools_15_lil_flatten_to_array_int8(PyObject *__pyx_self, 
   24522             : #if CYTHON_METH_FASTCALL
   24523             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   24524             : #else
   24525             : PyObject *__pyx_args, PyObject *__pyx_kwds
   24526             : #endif
   24527             : ) {
   24528        1978 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   24529        1978 :   PyArrayObject *__pyx_v_output = 0;
   24530             :   #if !CYTHON_METH_FASTCALL
   24531             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   24532             :   #endif
   24533        1978 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   24534        1978 :   PyObject* values[2] = {0,0};
   24535        1978 :   int __pyx_lineno = 0;
   24536        1978 :   const char *__pyx_filename = NULL;
   24537        1978 :   int __pyx_clineno = 0;
   24538        1978 :   PyObject *__pyx_r = 0;
   24539             :   __Pyx_RefNannyDeclarations
   24540        1978 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_int8 (wrapper)", 0);
   24541             :   #if !CYTHON_METH_FASTCALL
   24542             :   #if CYTHON_ASSUME_SAFE_MACROS
   24543             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   24544             :   #else
   24545             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   24546             :   #endif
   24547             :   #endif
   24548        1978 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   24549             :   {
   24550        1978 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   24551        1978 :     if (__pyx_kwds) {
   24552           0 :       Py_ssize_t kw_args;
   24553           0 :       switch (__pyx_nargs) {
   24554           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   24555           0 :         CYTHON_FALLTHROUGH;
   24556           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   24557           0 :         CYTHON_FALLTHROUGH;
   24558           0 :         case  0: break;
   24559           0 :         default: goto __pyx_L5_argtuple_error;
   24560             :       }
   24561           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   24562           0 :       switch (__pyx_nargs) {
   24563             :         case  0:
   24564           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   24565           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   24566           0 :           kw_args--;
   24567             :         }
   24568           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 154, __pyx_L3_error)
   24569           0 :         else goto __pyx_L5_argtuple_error;
   24570           0 :         CYTHON_FALLTHROUGH;
   24571             :         case  1:
   24572           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   24573           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   24574           0 :           kw_args--;
   24575             :         }
   24576           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 154, __pyx_L3_error)
   24577             :         else {
   24578           0 :           __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_int8", 1, 2, 2, 1); __PYX_ERR(0, 154, __pyx_L3_error)
   24579             :         }
   24580             :       }
   24581           0 :       if (unlikely(kw_args > 0)) {
   24582           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   24583           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_flatten_to_array_int8") < 0)) __PYX_ERR(0, 154, __pyx_L3_error)
   24584             :       }
   24585        1978 :     } else if (unlikely(__pyx_nargs != 2)) {
   24586           0 :       goto __pyx_L5_argtuple_error;
   24587             :     } else {
   24588        1978 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   24589        1978 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   24590             :     }
   24591        1978 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 156, __pyx_L3_error)
   24592        1978 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   24593             :   }
   24594        1978 :   goto __pyx_L6_skip;
   24595           0 :   __pyx_L5_argtuple_error:;
   24596           0 :   __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_int8", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 154, __pyx_L3_error)
   24597        1978 :   __pyx_L6_skip:;
   24598        1978 :   goto __pyx_L4_argument_unpacking_done;
   24599           0 :   __pyx_L3_error:;
   24600             :   {
   24601           0 :     Py_ssize_t __pyx_temp;
   24602           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   24603             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   24604             :     }
   24605             :   }
   24606           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   24607           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_int8", __pyx_clineno, __pyx_lineno, __pyx_filename);
   24608           0 :   __Pyx_RefNannyFinishContext();
   24609           0 :   return NULL;
   24610        1978 :   __pyx_L4_argument_unpacking_done:;
   24611        1978 :   if (unlikely(((PyObject *)__pyx_v_input.memview) == Py_None)) {
   24612           0 :     PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "input"); __PYX_ERR(0, 156, __pyx_L1_error)
   24613             :   }
   24614        1978 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 0, "output", 0))) __PYX_ERR(0, 156, __pyx_L1_error)
   24615        1978 :   __pyx_r = __pyx_pf_13_csparsetools_14_lil_flatten_to_array_int8(__pyx_self, __pyx_v_input, __pyx_v_output);
   24616             : 
   24617             :   /* function exit code */
   24618        1978 :   goto __pyx_L0;
   24619             :   __pyx_L1_error:;
   24620             :   __pyx_r = NULL;
   24621        1978 :   __pyx_L0:;
   24622        1978 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   24623             :   {
   24624        1978 :     Py_ssize_t __pyx_temp;
   24625        1978 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   24626             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   24627             :     }
   24628             :   }
   24629             :   __Pyx_RefNannyFinishContext();
   24630             :   return __pyx_r;
   24631             : }
   24632             : 
   24633        1978 : static PyObject *__pyx_pf_13_csparsetools_14_lil_flatten_to_array_int8(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   24634        1978 :   PyObject *__pyx_v_row = 0;
   24635        1978 :   size_t __pyx_v_pos;
   24636        1978 :   Py_ssize_t __pyx_v_i;
   24637        1978 :   Py_ssize_t __pyx_v_j;
   24638        1978 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   24639        1978 :   __Pyx_Buffer __pyx_pybuffer_output;
   24640        1978 :   PyObject *__pyx_r = NULL;
   24641             :   __Pyx_RefNannyDeclarations
   24642        1978 :   Py_ssize_t __pyx_t_1;
   24643        1978 :   Py_ssize_t __pyx_t_2;
   24644        1978 :   Py_ssize_t __pyx_t_3;
   24645        1978 :   PyObject *__pyx_t_4 = NULL;
   24646        1978 :   Py_ssize_t __pyx_t_5;
   24647        1978 :   Py_ssize_t __pyx_t_6;
   24648        1978 :   Py_ssize_t __pyx_t_7;
   24649        1978 :   Py_ssize_t __pyx_t_8;
   24650        1978 :   npy_int8 __pyx_t_9;
   24651        1978 :   size_t __pyx_t_10;
   24652        1978 :   int __pyx_lineno = 0;
   24653        1978 :   const char *__pyx_filename = NULL;
   24654        1978 :   int __pyx_clineno = 0;
   24655        1978 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_int8", 1);
   24656        1978 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   24657        1978 :   __pyx_pybuffer_output.refcount = 0;
   24658        1978 :   __pyx_pybuffernd_output.data = NULL;
   24659        1978 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   24660             :   {
   24661        1978 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   24662        1978 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo_nn_npy_int8, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 154, __pyx_L1_error)
   24663             :   }
   24664        1978 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   24665             : 
   24666             :   /* "_csparsetools.pyx":158
   24667             :  * def _lil_flatten_to_array_int8(object[:] input not None, cnp.ndarray[cnp.npy_int8] output not None):
   24668             :  *     cdef list row
   24669             :  *     cdef size_t pos = 0             # <<<<<<<<<<<<<<
   24670             :  *     for i in range(len(input)):
   24671             :  *         row = input[i]
   24672             :  */
   24673        1978 :   __pyx_v_pos = 0;
   24674             : 
   24675             :   /* "_csparsetools.pyx":159
   24676             :  *     cdef list row
   24677             :  *     cdef size_t pos = 0
   24678             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   24679             :  *         row = input[i]
   24680             :  *         for j in range(len(row)):
   24681             :  */
   24682        1978 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   24683        1978 :   __pyx_t_2 = __pyx_t_1;
   24684       14135 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   24685       12157 :     __pyx_v_i = __pyx_t_3;
   24686             : 
   24687             :     /* "_csparsetools.pyx":160
   24688             :  *     cdef size_t pos = 0
   24689             :  *     for i in range(len(input)):
   24690             :  *         row = input[i]             # <<<<<<<<<<<<<<
   24691             :  *         for j in range(len(row)):
   24692             :  *             output[pos] = row[j]
   24693             :  */
   24694       12157 :     __pyx_t_5 = __pyx_v_i;
   24695       12157 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   24696       12157 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   24697       12157 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   24698       12157 :     if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 160, __pyx_L1_error)
   24699       12157 :     __Pyx_XDECREF_SET(__pyx_v_row, ((PyObject*)__pyx_t_4));
   24700       12157 :     __pyx_t_4 = 0;
   24701             : 
   24702             :     /* "_csparsetools.pyx":161
   24703             :  *     for i in range(len(input)):
   24704             :  *         row = input[i]
   24705             :  *         for j in range(len(row)):             # <<<<<<<<<<<<<<
   24706             :  *             output[pos] = row[j]
   24707             :  *             pos += 1
   24708             :  */
   24709       12157 :     if (unlikely(__pyx_v_row == Py_None)) {
   24710           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   24711           0 :       __PYX_ERR(0, 161, __pyx_L1_error)
   24712             :     }
   24713       12157 :     __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 161, __pyx_L1_error)
   24714             :     __pyx_t_7 = __pyx_t_6;
   24715       22474 :     for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
   24716       10317 :       __pyx_v_j = __pyx_t_8;
   24717             : 
   24718             :       /* "_csparsetools.pyx":162
   24719             :  *         row = input[i]
   24720             :  *         for j in range(len(row)):
   24721             :  *             output[pos] = row[j]             # <<<<<<<<<<<<<<
   24722             :  *             pos += 1
   24723             :  * @cython.boundscheck(False)
   24724             :  */
   24725       10317 :       if (unlikely(__pyx_v_row == Py_None)) {
   24726             :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   24727             :         __PYX_ERR(0, 162, __pyx_L1_error)
   24728             :       }
   24729       10317 :       __pyx_t_9 = __Pyx_PyInt_As_npy_int8(PyList_GET_ITEM(__pyx_v_row, __pyx_v_j)); if (unlikely((__pyx_t_9 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 162, __pyx_L1_error)
   24730       10317 :       __pyx_t_10 = __pyx_v_pos;
   24731       10317 :       *__Pyx_BufPtrStrided1d(npy_int8 *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_9;
   24732             : 
   24733             :       /* "_csparsetools.pyx":163
   24734             :  *         for j in range(len(row)):
   24735             :  *             output[pos] = row[j]
   24736             :  *             pos += 1             # <<<<<<<<<<<<<<
   24737             :  * @cython.boundscheck(False)
   24738             :  * @cython.wraparound(False)
   24739             :  */
   24740       10317 :       __pyx_v_pos = (__pyx_v_pos + 1);
   24741             :     }
   24742             :   }
   24743             : 
   24744             :   /* "_csparsetools.pyx":154
   24745             :  *             output[pos] = row[j]
   24746             :  *             pos += 1
   24747             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   24748             :  * @cython.wraparound(False)
   24749             :  * def _lil_flatten_to_array_int8(object[:] input not None, cnp.ndarray[cnp.npy_int8] output not None):
   24750             :  */
   24751             : 
   24752             :   /* function exit code */
   24753        1978 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   24754        1978 :   goto __pyx_L0;
   24755           0 :   __pyx_L1_error:;
   24756           0 :   __Pyx_XDECREF(__pyx_t_4);
   24757           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   24758           0 :     __Pyx_PyThreadState_declare
   24759           0 :     __Pyx_PyThreadState_assign
   24760           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   24761           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   24762           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   24763           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_int8", __pyx_clineno, __pyx_lineno, __pyx_filename);
   24764           0 :   __pyx_r = NULL;
   24765           0 :   goto __pyx_L2;
   24766        1978 :   __pyx_L0:;
   24767        1978 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   24768        1978 :   __pyx_L2:;
   24769        1978 :   __Pyx_XDECREF(__pyx_v_row);
   24770        1978 :   __Pyx_XGIVEREF(__pyx_r);
   24771        1978 :   __Pyx_RefNannyFinishContext();
   24772        1978 :   return __pyx_r;
   24773             : }
   24774             : 
   24775             : /* "_csparsetools.pyx":164
   24776             :  *             output[pos] = row[j]
   24777             :  *             pos += 1
   24778             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   24779             :  * @cython.wraparound(False)
   24780             :  * def _lil_flatten_to_array_uint8(object[:] input not None, cnp.ndarray[cnp.npy_uint8] output not None):
   24781             :  */
   24782             : 
   24783             : /* Python wrapper */
   24784             : static PyObject *__pyx_pw_13_csparsetools_17_lil_flatten_to_array_uint8(PyObject *__pyx_self, 
   24785             : #if CYTHON_METH_FASTCALL
   24786             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   24787             : #else
   24788             : PyObject *__pyx_args, PyObject *__pyx_kwds
   24789             : #endif
   24790             : ); /*proto*/
   24791             : static PyMethodDef __pyx_mdef_13_csparsetools_17_lil_flatten_to_array_uint8 = {"_lil_flatten_to_array_uint8", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_17_lil_flatten_to_array_uint8, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   24792        1936 : static PyObject *__pyx_pw_13_csparsetools_17_lil_flatten_to_array_uint8(PyObject *__pyx_self, 
   24793             : #if CYTHON_METH_FASTCALL
   24794             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   24795             : #else
   24796             : PyObject *__pyx_args, PyObject *__pyx_kwds
   24797             : #endif
   24798             : ) {
   24799        1936 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   24800        1936 :   PyArrayObject *__pyx_v_output = 0;
   24801             :   #if !CYTHON_METH_FASTCALL
   24802             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   24803             :   #endif
   24804        1936 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   24805        1936 :   PyObject* values[2] = {0,0};
   24806        1936 :   int __pyx_lineno = 0;
   24807        1936 :   const char *__pyx_filename = NULL;
   24808        1936 :   int __pyx_clineno = 0;
   24809        1936 :   PyObject *__pyx_r = 0;
   24810             :   __Pyx_RefNannyDeclarations
   24811        1936 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_uint8 (wrapper)", 0);
   24812             :   #if !CYTHON_METH_FASTCALL
   24813             :   #if CYTHON_ASSUME_SAFE_MACROS
   24814             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   24815             :   #else
   24816             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   24817             :   #endif
   24818             :   #endif
   24819        1936 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   24820             :   {
   24821        1936 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   24822        1936 :     if (__pyx_kwds) {
   24823           0 :       Py_ssize_t kw_args;
   24824           0 :       switch (__pyx_nargs) {
   24825           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   24826           0 :         CYTHON_FALLTHROUGH;
   24827           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   24828           0 :         CYTHON_FALLTHROUGH;
   24829           0 :         case  0: break;
   24830           0 :         default: goto __pyx_L5_argtuple_error;
   24831             :       }
   24832           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   24833           0 :       switch (__pyx_nargs) {
   24834             :         case  0:
   24835           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   24836           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   24837           0 :           kw_args--;
   24838             :         }
   24839           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 164, __pyx_L3_error)
   24840           0 :         else goto __pyx_L5_argtuple_error;
   24841           0 :         CYTHON_FALLTHROUGH;
   24842             :         case  1:
   24843           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   24844           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   24845           0 :           kw_args--;
   24846             :         }
   24847           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 164, __pyx_L3_error)
   24848             :         else {
   24849           0 :           __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_uint8", 1, 2, 2, 1); __PYX_ERR(0, 164, __pyx_L3_error)
   24850             :         }
   24851             :       }
   24852           0 :       if (unlikely(kw_args > 0)) {
   24853           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   24854           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_flatten_to_array_uint8") < 0)) __PYX_ERR(0, 164, __pyx_L3_error)
   24855             :       }
   24856        1936 :     } else if (unlikely(__pyx_nargs != 2)) {
   24857           0 :       goto __pyx_L5_argtuple_error;
   24858             :     } else {
   24859        1936 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   24860        1936 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   24861             :     }
   24862        1936 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 166, __pyx_L3_error)
   24863        1936 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   24864             :   }
   24865        1936 :   goto __pyx_L6_skip;
   24866           0 :   __pyx_L5_argtuple_error:;
   24867           0 :   __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_uint8", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 164, __pyx_L3_error)
   24868        1936 :   __pyx_L6_skip:;
   24869        1936 :   goto __pyx_L4_argument_unpacking_done;
   24870           0 :   __pyx_L3_error:;
   24871             :   {
   24872           0 :     Py_ssize_t __pyx_temp;
   24873           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   24874             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   24875             :     }
   24876             :   }
   24877           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   24878           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_uint8", __pyx_clineno, __pyx_lineno, __pyx_filename);
   24879           0 :   __Pyx_RefNannyFinishContext();
   24880           0 :   return NULL;
   24881        1936 :   __pyx_L4_argument_unpacking_done:;
   24882        1936 :   if (unlikely(((PyObject *)__pyx_v_input.memview) == Py_None)) {
   24883           0 :     PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "input"); __PYX_ERR(0, 166, __pyx_L1_error)
   24884             :   }
   24885        1936 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 0, "output", 0))) __PYX_ERR(0, 166, __pyx_L1_error)
   24886        1936 :   __pyx_r = __pyx_pf_13_csparsetools_16_lil_flatten_to_array_uint8(__pyx_self, __pyx_v_input, __pyx_v_output);
   24887             : 
   24888             :   /* function exit code */
   24889        1936 :   goto __pyx_L0;
   24890             :   __pyx_L1_error:;
   24891             :   __pyx_r = NULL;
   24892        1936 :   __pyx_L0:;
   24893        1936 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   24894             :   {
   24895        1936 :     Py_ssize_t __pyx_temp;
   24896        1936 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   24897             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   24898             :     }
   24899             :   }
   24900             :   __Pyx_RefNannyFinishContext();
   24901             :   return __pyx_r;
   24902             : }
   24903             : 
   24904        1936 : static PyObject *__pyx_pf_13_csparsetools_16_lil_flatten_to_array_uint8(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   24905        1936 :   PyObject *__pyx_v_row = 0;
   24906        1936 :   size_t __pyx_v_pos;
   24907        1936 :   Py_ssize_t __pyx_v_i;
   24908        1936 :   Py_ssize_t __pyx_v_j;
   24909        1936 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   24910        1936 :   __Pyx_Buffer __pyx_pybuffer_output;
   24911        1936 :   PyObject *__pyx_r = NULL;
   24912             :   __Pyx_RefNannyDeclarations
   24913        1936 :   Py_ssize_t __pyx_t_1;
   24914        1936 :   Py_ssize_t __pyx_t_2;
   24915        1936 :   Py_ssize_t __pyx_t_3;
   24916        1936 :   PyObject *__pyx_t_4 = NULL;
   24917        1936 :   Py_ssize_t __pyx_t_5;
   24918        1936 :   Py_ssize_t __pyx_t_6;
   24919        1936 :   Py_ssize_t __pyx_t_7;
   24920        1936 :   Py_ssize_t __pyx_t_8;
   24921        1936 :   npy_uint8 __pyx_t_9;
   24922        1936 :   size_t __pyx_t_10;
   24923        1936 :   int __pyx_lineno = 0;
   24924        1936 :   const char *__pyx_filename = NULL;
   24925        1936 :   int __pyx_clineno = 0;
   24926        1936 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_uint8", 1);
   24927        1936 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   24928        1936 :   __pyx_pybuffer_output.refcount = 0;
   24929        1936 :   __pyx_pybuffernd_output.data = NULL;
   24930        1936 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   24931             :   {
   24932        1936 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   24933        1936 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo_nn_npy_uint8, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 164, __pyx_L1_error)
   24934             :   }
   24935        1936 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   24936             : 
   24937             :   /* "_csparsetools.pyx":168
   24938             :  * def _lil_flatten_to_array_uint8(object[:] input not None, cnp.ndarray[cnp.npy_uint8] output not None):
   24939             :  *     cdef list row
   24940             :  *     cdef size_t pos = 0             # <<<<<<<<<<<<<<
   24941             :  *     for i in range(len(input)):
   24942             :  *         row = input[i]
   24943             :  */
   24944        1936 :   __pyx_v_pos = 0;
   24945             : 
   24946             :   /* "_csparsetools.pyx":169
   24947             :  *     cdef list row
   24948             :  *     cdef size_t pos = 0
   24949             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   24950             :  *         row = input[i]
   24951             :  *         for j in range(len(row)):
   24952             :  */
   24953        1936 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   24954        1936 :   __pyx_t_2 = __pyx_t_1;
   24955       13967 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   24956       12031 :     __pyx_v_i = __pyx_t_3;
   24957             : 
   24958             :     /* "_csparsetools.pyx":170
   24959             :  *     cdef size_t pos = 0
   24960             :  *     for i in range(len(input)):
   24961             :  *         row = input[i]             # <<<<<<<<<<<<<<
   24962             :  *         for j in range(len(row)):
   24963             :  *             output[pos] = row[j]
   24964             :  */
   24965       12031 :     __pyx_t_5 = __pyx_v_i;
   24966       12031 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   24967       12031 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   24968       12031 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   24969       12031 :     if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 170, __pyx_L1_error)
   24970       12031 :     __Pyx_XDECREF_SET(__pyx_v_row, ((PyObject*)__pyx_t_4));
   24971       12031 :     __pyx_t_4 = 0;
   24972             : 
   24973             :     /* "_csparsetools.pyx":171
   24974             :  *     for i in range(len(input)):
   24975             :  *         row = input[i]
   24976             :  *         for j in range(len(row)):             # <<<<<<<<<<<<<<
   24977             :  *             output[pos] = row[j]
   24978             :  *             pos += 1
   24979             :  */
   24980       12031 :     if (unlikely(__pyx_v_row == Py_None)) {
   24981           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   24982           0 :       __PYX_ERR(0, 171, __pyx_L1_error)
   24983             :     }
   24984       12031 :     __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 171, __pyx_L1_error)
   24985             :     __pyx_t_7 = __pyx_t_6;
   24986       22054 :     for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
   24987       10023 :       __pyx_v_j = __pyx_t_8;
   24988             : 
   24989             :       /* "_csparsetools.pyx":172
   24990             :  *         row = input[i]
   24991             :  *         for j in range(len(row)):
   24992             :  *             output[pos] = row[j]             # <<<<<<<<<<<<<<
   24993             :  *             pos += 1
   24994             :  * @cython.boundscheck(False)
   24995             :  */
   24996       10023 :       if (unlikely(__pyx_v_row == Py_None)) {
   24997             :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   24998             :         __PYX_ERR(0, 172, __pyx_L1_error)
   24999             :       }
   25000       10023 :       __pyx_t_9 = __Pyx_PyInt_As_npy_uint8(PyList_GET_ITEM(__pyx_v_row, __pyx_v_j)); if (unlikely((__pyx_t_9 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 172, __pyx_L1_error)
   25001       10023 :       __pyx_t_10 = __pyx_v_pos;
   25002       10023 :       *__Pyx_BufPtrStrided1d(npy_uint8 *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_9;
   25003             : 
   25004             :       /* "_csparsetools.pyx":173
   25005             :  *         for j in range(len(row)):
   25006             :  *             output[pos] = row[j]
   25007             :  *             pos += 1             # <<<<<<<<<<<<<<
   25008             :  * @cython.boundscheck(False)
   25009             :  * @cython.wraparound(False)
   25010             :  */
   25011       10023 :       __pyx_v_pos = (__pyx_v_pos + 1);
   25012             :     }
   25013             :   }
   25014             : 
   25015             :   /* "_csparsetools.pyx":164
   25016             :  *             output[pos] = row[j]
   25017             :  *             pos += 1
   25018             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   25019             :  * @cython.wraparound(False)
   25020             :  * def _lil_flatten_to_array_uint8(object[:] input not None, cnp.ndarray[cnp.npy_uint8] output not None):
   25021             :  */
   25022             : 
   25023             :   /* function exit code */
   25024        1936 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   25025        1936 :   goto __pyx_L0;
   25026           0 :   __pyx_L1_error:;
   25027           0 :   __Pyx_XDECREF(__pyx_t_4);
   25028           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   25029           0 :     __Pyx_PyThreadState_declare
   25030           0 :     __Pyx_PyThreadState_assign
   25031           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   25032           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   25033           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   25034           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_uint8", __pyx_clineno, __pyx_lineno, __pyx_filename);
   25035           0 :   __pyx_r = NULL;
   25036           0 :   goto __pyx_L2;
   25037        1936 :   __pyx_L0:;
   25038        1936 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   25039        1936 :   __pyx_L2:;
   25040        1936 :   __Pyx_XDECREF(__pyx_v_row);
   25041        1936 :   __Pyx_XGIVEREF(__pyx_r);
   25042        1936 :   __Pyx_RefNannyFinishContext();
   25043        1936 :   return __pyx_r;
   25044             : }
   25045             : 
   25046             : /* "_csparsetools.pyx":174
   25047             :  *             output[pos] = row[j]
   25048             :  *             pos += 1
   25049             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   25050             :  * @cython.wraparound(False)
   25051             :  * def _lil_flatten_to_array_int16(object[:] input not None, cnp.ndarray[cnp.npy_int16] output not None):
   25052             :  */
   25053             : 
   25054             : /* Python wrapper */
   25055             : static PyObject *__pyx_pw_13_csparsetools_19_lil_flatten_to_array_int16(PyObject *__pyx_self, 
   25056             : #if CYTHON_METH_FASTCALL
   25057             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   25058             : #else
   25059             : PyObject *__pyx_args, PyObject *__pyx_kwds
   25060             : #endif
   25061             : ); /*proto*/
   25062             : static PyMethodDef __pyx_mdef_13_csparsetools_19_lil_flatten_to_array_int16 = {"_lil_flatten_to_array_int16", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_19_lil_flatten_to_array_int16, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   25063        1943 : static PyObject *__pyx_pw_13_csparsetools_19_lil_flatten_to_array_int16(PyObject *__pyx_self, 
   25064             : #if CYTHON_METH_FASTCALL
   25065             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   25066             : #else
   25067             : PyObject *__pyx_args, PyObject *__pyx_kwds
   25068             : #endif
   25069             : ) {
   25070        1943 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   25071        1943 :   PyArrayObject *__pyx_v_output = 0;
   25072             :   #if !CYTHON_METH_FASTCALL
   25073             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   25074             :   #endif
   25075        1943 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   25076        1943 :   PyObject* values[2] = {0,0};
   25077        1943 :   int __pyx_lineno = 0;
   25078        1943 :   const char *__pyx_filename = NULL;
   25079        1943 :   int __pyx_clineno = 0;
   25080        1943 :   PyObject *__pyx_r = 0;
   25081             :   __Pyx_RefNannyDeclarations
   25082        1943 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_int16 (wrapper)", 0);
   25083             :   #if !CYTHON_METH_FASTCALL
   25084             :   #if CYTHON_ASSUME_SAFE_MACROS
   25085             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   25086             :   #else
   25087             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   25088             :   #endif
   25089             :   #endif
   25090        1943 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   25091             :   {
   25092        1943 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   25093        1943 :     if (__pyx_kwds) {
   25094           0 :       Py_ssize_t kw_args;
   25095           0 :       switch (__pyx_nargs) {
   25096           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   25097           0 :         CYTHON_FALLTHROUGH;
   25098           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   25099           0 :         CYTHON_FALLTHROUGH;
   25100           0 :         case  0: break;
   25101           0 :         default: goto __pyx_L5_argtuple_error;
   25102             :       }
   25103           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   25104           0 :       switch (__pyx_nargs) {
   25105             :         case  0:
   25106           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   25107           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   25108           0 :           kw_args--;
   25109             :         }
   25110           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 174, __pyx_L3_error)
   25111           0 :         else goto __pyx_L5_argtuple_error;
   25112           0 :         CYTHON_FALLTHROUGH;
   25113             :         case  1:
   25114           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   25115           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   25116           0 :           kw_args--;
   25117             :         }
   25118           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 174, __pyx_L3_error)
   25119             :         else {
   25120           0 :           __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_int16", 1, 2, 2, 1); __PYX_ERR(0, 174, __pyx_L3_error)
   25121             :         }
   25122             :       }
   25123           0 :       if (unlikely(kw_args > 0)) {
   25124           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   25125           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_flatten_to_array_int16") < 0)) __PYX_ERR(0, 174, __pyx_L3_error)
   25126             :       }
   25127        1943 :     } else if (unlikely(__pyx_nargs != 2)) {
   25128           0 :       goto __pyx_L5_argtuple_error;
   25129             :     } else {
   25130        1943 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   25131        1943 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   25132             :     }
   25133        1943 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 176, __pyx_L3_error)
   25134        1943 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   25135             :   }
   25136        1943 :   goto __pyx_L6_skip;
   25137           0 :   __pyx_L5_argtuple_error:;
   25138           0 :   __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_int16", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 174, __pyx_L3_error)
   25139        1943 :   __pyx_L6_skip:;
   25140        1943 :   goto __pyx_L4_argument_unpacking_done;
   25141           0 :   __pyx_L3_error:;
   25142             :   {
   25143           0 :     Py_ssize_t __pyx_temp;
   25144           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   25145             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   25146             :     }
   25147             :   }
   25148           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   25149           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_int16", __pyx_clineno, __pyx_lineno, __pyx_filename);
   25150           0 :   __Pyx_RefNannyFinishContext();
   25151           0 :   return NULL;
   25152        1943 :   __pyx_L4_argument_unpacking_done:;
   25153        1943 :   if (unlikely(((PyObject *)__pyx_v_input.memview) == Py_None)) {
   25154           0 :     PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "input"); __PYX_ERR(0, 176, __pyx_L1_error)
   25155             :   }
   25156        1943 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 0, "output", 0))) __PYX_ERR(0, 176, __pyx_L1_error)
   25157        1943 :   __pyx_r = __pyx_pf_13_csparsetools_18_lil_flatten_to_array_int16(__pyx_self, __pyx_v_input, __pyx_v_output);
   25158             : 
   25159             :   /* function exit code */
   25160        1943 :   goto __pyx_L0;
   25161             :   __pyx_L1_error:;
   25162             :   __pyx_r = NULL;
   25163        1943 :   __pyx_L0:;
   25164        1943 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   25165             :   {
   25166        1943 :     Py_ssize_t __pyx_temp;
   25167        1943 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   25168             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   25169             :     }
   25170             :   }
   25171             :   __Pyx_RefNannyFinishContext();
   25172             :   return __pyx_r;
   25173             : }
   25174             : 
   25175        1943 : static PyObject *__pyx_pf_13_csparsetools_18_lil_flatten_to_array_int16(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   25176        1943 :   PyObject *__pyx_v_row = 0;
   25177        1943 :   size_t __pyx_v_pos;
   25178        1943 :   Py_ssize_t __pyx_v_i;
   25179        1943 :   Py_ssize_t __pyx_v_j;
   25180        1943 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   25181        1943 :   __Pyx_Buffer __pyx_pybuffer_output;
   25182        1943 :   PyObject *__pyx_r = NULL;
   25183             :   __Pyx_RefNannyDeclarations
   25184        1943 :   Py_ssize_t __pyx_t_1;
   25185        1943 :   Py_ssize_t __pyx_t_2;
   25186        1943 :   Py_ssize_t __pyx_t_3;
   25187        1943 :   PyObject *__pyx_t_4 = NULL;
   25188        1943 :   Py_ssize_t __pyx_t_5;
   25189        1943 :   Py_ssize_t __pyx_t_6;
   25190        1943 :   Py_ssize_t __pyx_t_7;
   25191        1943 :   Py_ssize_t __pyx_t_8;
   25192        1943 :   npy_int16 __pyx_t_9;
   25193        1943 :   size_t __pyx_t_10;
   25194        1943 :   int __pyx_lineno = 0;
   25195        1943 :   const char *__pyx_filename = NULL;
   25196        1943 :   int __pyx_clineno = 0;
   25197        1943 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_int16", 1);
   25198        1943 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   25199        1943 :   __pyx_pybuffer_output.refcount = 0;
   25200        1943 :   __pyx_pybuffernd_output.data = NULL;
   25201        1943 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   25202             :   {
   25203        1943 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   25204        1943 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo_nn_npy_int16, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 174, __pyx_L1_error)
   25205             :   }
   25206        1943 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   25207             : 
   25208             :   /* "_csparsetools.pyx":178
   25209             :  * def _lil_flatten_to_array_int16(object[:] input not None, cnp.ndarray[cnp.npy_int16] output not None):
   25210             :  *     cdef list row
   25211             :  *     cdef size_t pos = 0             # <<<<<<<<<<<<<<
   25212             :  *     for i in range(len(input)):
   25213             :  *         row = input[i]
   25214             :  */
   25215        1943 :   __pyx_v_pos = 0;
   25216             : 
   25217             :   /* "_csparsetools.pyx":179
   25218             :  *     cdef list row
   25219             :  *     cdef size_t pos = 0
   25220             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   25221             :  *         row = input[i]
   25222             :  *         for j in range(len(row)):
   25223             :  */
   25224        1943 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   25225        1943 :   __pyx_t_2 = __pyx_t_1;
   25226       13987 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   25227       12044 :     __pyx_v_i = __pyx_t_3;
   25228             : 
   25229             :     /* "_csparsetools.pyx":180
   25230             :  *     cdef size_t pos = 0
   25231             :  *     for i in range(len(input)):
   25232             :  *         row = input[i]             # <<<<<<<<<<<<<<
   25233             :  *         for j in range(len(row)):
   25234             :  *             output[pos] = row[j]
   25235             :  */
   25236       12044 :     __pyx_t_5 = __pyx_v_i;
   25237       12044 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   25238       12044 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   25239       12044 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   25240       12044 :     if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 180, __pyx_L1_error)
   25241       12044 :     __Pyx_XDECREF_SET(__pyx_v_row, ((PyObject*)__pyx_t_4));
   25242       12044 :     __pyx_t_4 = 0;
   25243             : 
   25244             :     /* "_csparsetools.pyx":181
   25245             :  *     for i in range(len(input)):
   25246             :  *         row = input[i]
   25247             :  *         for j in range(len(row)):             # <<<<<<<<<<<<<<
   25248             :  *             output[pos] = row[j]
   25249             :  *             pos += 1
   25250             :  */
   25251       12044 :     if (unlikely(__pyx_v_row == Py_None)) {
   25252           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   25253           0 :       __PYX_ERR(0, 181, __pyx_L1_error)
   25254             :     }
   25255       12044 :     __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 181, __pyx_L1_error)
   25256             :     __pyx_t_7 = __pyx_t_6;
   25257       22097 :     for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
   25258       10053 :       __pyx_v_j = __pyx_t_8;
   25259             : 
   25260             :       /* "_csparsetools.pyx":182
   25261             :  *         row = input[i]
   25262             :  *         for j in range(len(row)):
   25263             :  *             output[pos] = row[j]             # <<<<<<<<<<<<<<
   25264             :  *             pos += 1
   25265             :  * @cython.boundscheck(False)
   25266             :  */
   25267       10053 :       if (unlikely(__pyx_v_row == Py_None)) {
   25268             :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   25269             :         __PYX_ERR(0, 182, __pyx_L1_error)
   25270             :       }
   25271       10053 :       __pyx_t_9 = __Pyx_PyInt_As_npy_int16(PyList_GET_ITEM(__pyx_v_row, __pyx_v_j)); if (unlikely((__pyx_t_9 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 182, __pyx_L1_error)
   25272       10053 :       __pyx_t_10 = __pyx_v_pos;
   25273       10053 :       *__Pyx_BufPtrStrided1d(npy_int16 *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_9;
   25274             : 
   25275             :       /* "_csparsetools.pyx":183
   25276             :  *         for j in range(len(row)):
   25277             :  *             output[pos] = row[j]
   25278             :  *             pos += 1             # <<<<<<<<<<<<<<
   25279             :  * @cython.boundscheck(False)
   25280             :  * @cython.wraparound(False)
   25281             :  */
   25282       10053 :       __pyx_v_pos = (__pyx_v_pos + 1);
   25283             :     }
   25284             :   }
   25285             : 
   25286             :   /* "_csparsetools.pyx":174
   25287             :  *             output[pos] = row[j]
   25288             :  *             pos += 1
   25289             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   25290             :  * @cython.wraparound(False)
   25291             :  * def _lil_flatten_to_array_int16(object[:] input not None, cnp.ndarray[cnp.npy_int16] output not None):
   25292             :  */
   25293             : 
   25294             :   /* function exit code */
   25295        1943 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   25296        1943 :   goto __pyx_L0;
   25297           0 :   __pyx_L1_error:;
   25298           0 :   __Pyx_XDECREF(__pyx_t_4);
   25299           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   25300           0 :     __Pyx_PyThreadState_declare
   25301           0 :     __Pyx_PyThreadState_assign
   25302           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   25303           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   25304           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   25305           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_int16", __pyx_clineno, __pyx_lineno, __pyx_filename);
   25306           0 :   __pyx_r = NULL;
   25307           0 :   goto __pyx_L2;
   25308        1943 :   __pyx_L0:;
   25309        1943 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   25310        1943 :   __pyx_L2:;
   25311        1943 :   __Pyx_XDECREF(__pyx_v_row);
   25312        1943 :   __Pyx_XGIVEREF(__pyx_r);
   25313        1943 :   __Pyx_RefNannyFinishContext();
   25314        1943 :   return __pyx_r;
   25315             : }
   25316             : 
   25317             : /* "_csparsetools.pyx":184
   25318             :  *             output[pos] = row[j]
   25319             :  *             pos += 1
   25320             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   25321             :  * @cython.wraparound(False)
   25322             :  * def _lil_flatten_to_array_uint16(object[:] input not None, cnp.ndarray[cnp.npy_uint16] output not None):
   25323             :  */
   25324             : 
   25325             : /* Python wrapper */
   25326             : static PyObject *__pyx_pw_13_csparsetools_21_lil_flatten_to_array_uint16(PyObject *__pyx_self, 
   25327             : #if CYTHON_METH_FASTCALL
   25328             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   25329             : #else
   25330             : PyObject *__pyx_args, PyObject *__pyx_kwds
   25331             : #endif
   25332             : ); /*proto*/
   25333             : static PyMethodDef __pyx_mdef_13_csparsetools_21_lil_flatten_to_array_uint16 = {"_lil_flatten_to_array_uint16", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_21_lil_flatten_to_array_uint16, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   25334        1936 : static PyObject *__pyx_pw_13_csparsetools_21_lil_flatten_to_array_uint16(PyObject *__pyx_self, 
   25335             : #if CYTHON_METH_FASTCALL
   25336             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   25337             : #else
   25338             : PyObject *__pyx_args, PyObject *__pyx_kwds
   25339             : #endif
   25340             : ) {
   25341        1936 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   25342        1936 :   PyArrayObject *__pyx_v_output = 0;
   25343             :   #if !CYTHON_METH_FASTCALL
   25344             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   25345             :   #endif
   25346        1936 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   25347        1936 :   PyObject* values[2] = {0,0};
   25348        1936 :   int __pyx_lineno = 0;
   25349        1936 :   const char *__pyx_filename = NULL;
   25350        1936 :   int __pyx_clineno = 0;
   25351        1936 :   PyObject *__pyx_r = 0;
   25352             :   __Pyx_RefNannyDeclarations
   25353        1936 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_uint16 (wrapper)", 0);
   25354             :   #if !CYTHON_METH_FASTCALL
   25355             :   #if CYTHON_ASSUME_SAFE_MACROS
   25356             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   25357             :   #else
   25358             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   25359             :   #endif
   25360             :   #endif
   25361        1936 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   25362             :   {
   25363        1936 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   25364        1936 :     if (__pyx_kwds) {
   25365           0 :       Py_ssize_t kw_args;
   25366           0 :       switch (__pyx_nargs) {
   25367           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   25368           0 :         CYTHON_FALLTHROUGH;
   25369           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   25370           0 :         CYTHON_FALLTHROUGH;
   25371           0 :         case  0: break;
   25372           0 :         default: goto __pyx_L5_argtuple_error;
   25373             :       }
   25374           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   25375           0 :       switch (__pyx_nargs) {
   25376             :         case  0:
   25377           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   25378           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   25379           0 :           kw_args--;
   25380             :         }
   25381           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 184, __pyx_L3_error)
   25382           0 :         else goto __pyx_L5_argtuple_error;
   25383           0 :         CYTHON_FALLTHROUGH;
   25384             :         case  1:
   25385           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   25386           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   25387           0 :           kw_args--;
   25388             :         }
   25389           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 184, __pyx_L3_error)
   25390             :         else {
   25391           0 :           __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_uint16", 1, 2, 2, 1); __PYX_ERR(0, 184, __pyx_L3_error)
   25392             :         }
   25393             :       }
   25394           0 :       if (unlikely(kw_args > 0)) {
   25395           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   25396           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_flatten_to_array_uint16") < 0)) __PYX_ERR(0, 184, __pyx_L3_error)
   25397             :       }
   25398        1936 :     } else if (unlikely(__pyx_nargs != 2)) {
   25399           0 :       goto __pyx_L5_argtuple_error;
   25400             :     } else {
   25401        1936 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   25402        1936 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   25403             :     }
   25404        1936 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 186, __pyx_L3_error)
   25405        1936 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   25406             :   }
   25407        1936 :   goto __pyx_L6_skip;
   25408           0 :   __pyx_L5_argtuple_error:;
   25409           0 :   __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_uint16", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 184, __pyx_L3_error)
   25410        1936 :   __pyx_L6_skip:;
   25411        1936 :   goto __pyx_L4_argument_unpacking_done;
   25412           0 :   __pyx_L3_error:;
   25413             :   {
   25414           0 :     Py_ssize_t __pyx_temp;
   25415           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   25416             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   25417             :     }
   25418             :   }
   25419           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   25420           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_uint16", __pyx_clineno, __pyx_lineno, __pyx_filename);
   25421           0 :   __Pyx_RefNannyFinishContext();
   25422           0 :   return NULL;
   25423        1936 :   __pyx_L4_argument_unpacking_done:;
   25424        1936 :   if (unlikely(((PyObject *)__pyx_v_input.memview) == Py_None)) {
   25425           0 :     PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "input"); __PYX_ERR(0, 186, __pyx_L1_error)
   25426             :   }
   25427        1936 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 0, "output", 0))) __PYX_ERR(0, 186, __pyx_L1_error)
   25428        1936 :   __pyx_r = __pyx_pf_13_csparsetools_20_lil_flatten_to_array_uint16(__pyx_self, __pyx_v_input, __pyx_v_output);
   25429             : 
   25430             :   /* function exit code */
   25431        1936 :   goto __pyx_L0;
   25432             :   __pyx_L1_error:;
   25433             :   __pyx_r = NULL;
   25434        1936 :   __pyx_L0:;
   25435        1936 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   25436             :   {
   25437        1936 :     Py_ssize_t __pyx_temp;
   25438        1936 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   25439             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   25440             :     }
   25441             :   }
   25442             :   __Pyx_RefNannyFinishContext();
   25443             :   return __pyx_r;
   25444             : }
   25445             : 
   25446        1936 : static PyObject *__pyx_pf_13_csparsetools_20_lil_flatten_to_array_uint16(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   25447        1936 :   PyObject *__pyx_v_row = 0;
   25448        1936 :   size_t __pyx_v_pos;
   25449        1936 :   Py_ssize_t __pyx_v_i;
   25450        1936 :   Py_ssize_t __pyx_v_j;
   25451        1936 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   25452        1936 :   __Pyx_Buffer __pyx_pybuffer_output;
   25453        1936 :   PyObject *__pyx_r = NULL;
   25454             :   __Pyx_RefNannyDeclarations
   25455        1936 :   Py_ssize_t __pyx_t_1;
   25456        1936 :   Py_ssize_t __pyx_t_2;
   25457        1936 :   Py_ssize_t __pyx_t_3;
   25458        1936 :   PyObject *__pyx_t_4 = NULL;
   25459        1936 :   Py_ssize_t __pyx_t_5;
   25460        1936 :   Py_ssize_t __pyx_t_6;
   25461        1936 :   Py_ssize_t __pyx_t_7;
   25462        1936 :   Py_ssize_t __pyx_t_8;
   25463        1936 :   npy_uint16 __pyx_t_9;
   25464        1936 :   size_t __pyx_t_10;
   25465        1936 :   int __pyx_lineno = 0;
   25466        1936 :   const char *__pyx_filename = NULL;
   25467        1936 :   int __pyx_clineno = 0;
   25468        1936 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_uint16", 1);
   25469        1936 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   25470        1936 :   __pyx_pybuffer_output.refcount = 0;
   25471        1936 :   __pyx_pybuffernd_output.data = NULL;
   25472        1936 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   25473             :   {
   25474        1936 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   25475        1936 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo_nn_npy_uint16, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 184, __pyx_L1_error)
   25476             :   }
   25477        1936 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   25478             : 
   25479             :   /* "_csparsetools.pyx":188
   25480             :  * def _lil_flatten_to_array_uint16(object[:] input not None, cnp.ndarray[cnp.npy_uint16] output not None):
   25481             :  *     cdef list row
   25482             :  *     cdef size_t pos = 0             # <<<<<<<<<<<<<<
   25483             :  *     for i in range(len(input)):
   25484             :  *         row = input[i]
   25485             :  */
   25486        1936 :   __pyx_v_pos = 0;
   25487             : 
   25488             :   /* "_csparsetools.pyx":189
   25489             :  *     cdef list row
   25490             :  *     cdef size_t pos = 0
   25491             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   25492             :  *         row = input[i]
   25493             :  *         for j in range(len(row)):
   25494             :  */
   25495        1936 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   25496        1936 :   __pyx_t_2 = __pyx_t_1;
   25497       13967 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   25498       12031 :     __pyx_v_i = __pyx_t_3;
   25499             : 
   25500             :     /* "_csparsetools.pyx":190
   25501             :  *     cdef size_t pos = 0
   25502             :  *     for i in range(len(input)):
   25503             :  *         row = input[i]             # <<<<<<<<<<<<<<
   25504             :  *         for j in range(len(row)):
   25505             :  *             output[pos] = row[j]
   25506             :  */
   25507       12031 :     __pyx_t_5 = __pyx_v_i;
   25508       12031 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   25509       12031 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   25510       12031 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   25511       12031 :     if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 190, __pyx_L1_error)
   25512       12031 :     __Pyx_XDECREF_SET(__pyx_v_row, ((PyObject*)__pyx_t_4));
   25513       12031 :     __pyx_t_4 = 0;
   25514             : 
   25515             :     /* "_csparsetools.pyx":191
   25516             :  *     for i in range(len(input)):
   25517             :  *         row = input[i]
   25518             :  *         for j in range(len(row)):             # <<<<<<<<<<<<<<
   25519             :  *             output[pos] = row[j]
   25520             :  *             pos += 1
   25521             :  */
   25522       12031 :     if (unlikely(__pyx_v_row == Py_None)) {
   25523           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   25524           0 :       __PYX_ERR(0, 191, __pyx_L1_error)
   25525             :     }
   25526       12031 :     __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 191, __pyx_L1_error)
   25527             :     __pyx_t_7 = __pyx_t_6;
   25528       22054 :     for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
   25529       10023 :       __pyx_v_j = __pyx_t_8;
   25530             : 
   25531             :       /* "_csparsetools.pyx":192
   25532             :  *         row = input[i]
   25533             :  *         for j in range(len(row)):
   25534             :  *             output[pos] = row[j]             # <<<<<<<<<<<<<<
   25535             :  *             pos += 1
   25536             :  * @cython.boundscheck(False)
   25537             :  */
   25538       10023 :       if (unlikely(__pyx_v_row == Py_None)) {
   25539             :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   25540             :         __PYX_ERR(0, 192, __pyx_L1_error)
   25541             :       }
   25542       10023 :       __pyx_t_9 = __Pyx_PyInt_As_npy_uint16(PyList_GET_ITEM(__pyx_v_row, __pyx_v_j)); if (unlikely((__pyx_t_9 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 192, __pyx_L1_error)
   25543       10023 :       __pyx_t_10 = __pyx_v_pos;
   25544       10023 :       *__Pyx_BufPtrStrided1d(npy_uint16 *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_9;
   25545             : 
   25546             :       /* "_csparsetools.pyx":193
   25547             :  *         for j in range(len(row)):
   25548             :  *             output[pos] = row[j]
   25549             :  *             pos += 1             # <<<<<<<<<<<<<<
   25550             :  * @cython.boundscheck(False)
   25551             :  * @cython.wraparound(False)
   25552             :  */
   25553       10023 :       __pyx_v_pos = (__pyx_v_pos + 1);
   25554             :     }
   25555             :   }
   25556             : 
   25557             :   /* "_csparsetools.pyx":184
   25558             :  *             output[pos] = row[j]
   25559             :  *             pos += 1
   25560             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   25561             :  * @cython.wraparound(False)
   25562             :  * def _lil_flatten_to_array_uint16(object[:] input not None, cnp.ndarray[cnp.npy_uint16] output not None):
   25563             :  */
   25564             : 
   25565             :   /* function exit code */
   25566        1936 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   25567        1936 :   goto __pyx_L0;
   25568           0 :   __pyx_L1_error:;
   25569           0 :   __Pyx_XDECREF(__pyx_t_4);
   25570           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   25571           0 :     __Pyx_PyThreadState_declare
   25572           0 :     __Pyx_PyThreadState_assign
   25573           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   25574           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   25575           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   25576           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_uint16", __pyx_clineno, __pyx_lineno, __pyx_filename);
   25577           0 :   __pyx_r = NULL;
   25578           0 :   goto __pyx_L2;
   25579        1936 :   __pyx_L0:;
   25580        1936 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   25581        1936 :   __pyx_L2:;
   25582        1936 :   __Pyx_XDECREF(__pyx_v_row);
   25583        1936 :   __Pyx_XGIVEREF(__pyx_r);
   25584        1936 :   __Pyx_RefNannyFinishContext();
   25585        1936 :   return __pyx_r;
   25586             : }
   25587             : 
   25588             : /* "_csparsetools.pyx":194
   25589             :  *             output[pos] = row[j]
   25590             :  *             pos += 1
   25591             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   25592             :  * @cython.wraparound(False)
   25593             :  * def _lil_flatten_to_array_int32(object[:] input not None, cnp.ndarray[cnp.npy_int32] output not None):
   25594             :  */
   25595             : 
   25596             : /* Python wrapper */
   25597             : static PyObject *__pyx_pw_13_csparsetools_23_lil_flatten_to_array_int32(PyObject *__pyx_self, 
   25598             : #if CYTHON_METH_FASTCALL
   25599             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   25600             : #else
   25601             : PyObject *__pyx_args, PyObject *__pyx_kwds
   25602             : #endif
   25603             : ); /*proto*/
   25604             : static PyMethodDef __pyx_mdef_13_csparsetools_23_lil_flatten_to_array_int32 = {"_lil_flatten_to_array_int32", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_23_lil_flatten_to_array_int32, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   25605       45039 : static PyObject *__pyx_pw_13_csparsetools_23_lil_flatten_to_array_int32(PyObject *__pyx_self, 
   25606             : #if CYTHON_METH_FASTCALL
   25607             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   25608             : #else
   25609             : PyObject *__pyx_args, PyObject *__pyx_kwds
   25610             : #endif
   25611             : ) {
   25612       45039 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   25613       45039 :   PyArrayObject *__pyx_v_output = 0;
   25614             :   #if !CYTHON_METH_FASTCALL
   25615             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   25616             :   #endif
   25617       45039 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   25618       45039 :   PyObject* values[2] = {0,0};
   25619       45039 :   int __pyx_lineno = 0;
   25620       45039 :   const char *__pyx_filename = NULL;
   25621       45039 :   int __pyx_clineno = 0;
   25622       45039 :   PyObject *__pyx_r = 0;
   25623             :   __Pyx_RefNannyDeclarations
   25624       45039 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_int32 (wrapper)", 0);
   25625             :   #if !CYTHON_METH_FASTCALL
   25626             :   #if CYTHON_ASSUME_SAFE_MACROS
   25627             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   25628             :   #else
   25629             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   25630             :   #endif
   25631             :   #endif
   25632       45039 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   25633             :   {
   25634       45039 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   25635       45039 :     if (__pyx_kwds) {
   25636           0 :       Py_ssize_t kw_args;
   25637           0 :       switch (__pyx_nargs) {
   25638           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   25639           0 :         CYTHON_FALLTHROUGH;
   25640           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   25641           0 :         CYTHON_FALLTHROUGH;
   25642           0 :         case  0: break;
   25643           0 :         default: goto __pyx_L5_argtuple_error;
   25644             :       }
   25645           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   25646           0 :       switch (__pyx_nargs) {
   25647             :         case  0:
   25648           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   25649           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   25650           0 :           kw_args--;
   25651             :         }
   25652           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 194, __pyx_L3_error)
   25653           0 :         else goto __pyx_L5_argtuple_error;
   25654           0 :         CYTHON_FALLTHROUGH;
   25655             :         case  1:
   25656           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   25657           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   25658           0 :           kw_args--;
   25659             :         }
   25660           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 194, __pyx_L3_error)
   25661             :         else {
   25662           0 :           __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_int32", 1, 2, 2, 1); __PYX_ERR(0, 194, __pyx_L3_error)
   25663             :         }
   25664             :       }
   25665           0 :       if (unlikely(kw_args > 0)) {
   25666           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   25667           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_flatten_to_array_int32") < 0)) __PYX_ERR(0, 194, __pyx_L3_error)
   25668             :       }
   25669       45039 :     } else if (unlikely(__pyx_nargs != 2)) {
   25670           0 :       goto __pyx_L5_argtuple_error;
   25671             :     } else {
   25672       45039 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   25673       45039 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   25674             :     }
   25675       45039 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 196, __pyx_L3_error)
   25676       45039 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   25677             :   }
   25678       45039 :   goto __pyx_L6_skip;
   25679           0 :   __pyx_L5_argtuple_error:;
   25680           0 :   __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_int32", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 194, __pyx_L3_error)
   25681       45039 :   __pyx_L6_skip:;
   25682       45039 :   goto __pyx_L4_argument_unpacking_done;
   25683           0 :   __pyx_L3_error:;
   25684             :   {
   25685           0 :     Py_ssize_t __pyx_temp;
   25686           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   25687             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   25688             :     }
   25689             :   }
   25690           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   25691           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_int32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   25692           0 :   __Pyx_RefNannyFinishContext();
   25693           0 :   return NULL;
   25694       45039 :   __pyx_L4_argument_unpacking_done:;
   25695       45039 :   if (unlikely(((PyObject *)__pyx_v_input.memview) == Py_None)) {
   25696           0 :     PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "input"); __PYX_ERR(0, 196, __pyx_L1_error)
   25697             :   }
   25698       45039 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 0, "output", 0))) __PYX_ERR(0, 196, __pyx_L1_error)
   25699       45039 :   __pyx_r = __pyx_pf_13_csparsetools_22_lil_flatten_to_array_int32(__pyx_self, __pyx_v_input, __pyx_v_output);
   25700             : 
   25701             :   /* function exit code */
   25702       45039 :   goto __pyx_L0;
   25703             :   __pyx_L1_error:;
   25704             :   __pyx_r = NULL;
   25705       45039 :   __pyx_L0:;
   25706       45039 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   25707             :   {
   25708       45039 :     Py_ssize_t __pyx_temp;
   25709       45039 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   25710             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   25711             :     }
   25712             :   }
   25713             :   __Pyx_RefNannyFinishContext();
   25714             :   return __pyx_r;
   25715             : }
   25716             : 
   25717       45039 : static PyObject *__pyx_pf_13_csparsetools_22_lil_flatten_to_array_int32(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   25718       45039 :   PyObject *__pyx_v_row = 0;
   25719       45039 :   size_t __pyx_v_pos;
   25720       45039 :   Py_ssize_t __pyx_v_i;
   25721       45039 :   Py_ssize_t __pyx_v_j;
   25722       45039 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   25723       45039 :   __Pyx_Buffer __pyx_pybuffer_output;
   25724       45039 :   PyObject *__pyx_r = NULL;
   25725             :   __Pyx_RefNannyDeclarations
   25726       45039 :   Py_ssize_t __pyx_t_1;
   25727       45039 :   Py_ssize_t __pyx_t_2;
   25728       45039 :   Py_ssize_t __pyx_t_3;
   25729       45039 :   PyObject *__pyx_t_4 = NULL;
   25730       45039 :   Py_ssize_t __pyx_t_5;
   25731       45039 :   Py_ssize_t __pyx_t_6;
   25732       45039 :   Py_ssize_t __pyx_t_7;
   25733       45039 :   Py_ssize_t __pyx_t_8;
   25734       45039 :   npy_int32 __pyx_t_9;
   25735       45039 :   size_t __pyx_t_10;
   25736       45039 :   int __pyx_lineno = 0;
   25737       45039 :   const char *__pyx_filename = NULL;
   25738       45039 :   int __pyx_clineno = 0;
   25739       45039 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_int32", 1);
   25740       45039 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   25741       45039 :   __pyx_pybuffer_output.refcount = 0;
   25742       45039 :   __pyx_pybuffernd_output.data = NULL;
   25743       45039 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   25744             :   {
   25745       45039 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   25746       45039 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo_nn_npy_int32, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 194, __pyx_L1_error)
   25747             :   }
   25748       45039 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   25749             : 
   25750             :   /* "_csparsetools.pyx":198
   25751             :  * def _lil_flatten_to_array_int32(object[:] input not None, cnp.ndarray[cnp.npy_int32] output not None):
   25752             :  *     cdef list row
   25753             :  *     cdef size_t pos = 0             # <<<<<<<<<<<<<<
   25754             :  *     for i in range(len(input)):
   25755             :  *         row = input[i]
   25756             :  */
   25757       45039 :   __pyx_v_pos = 0;
   25758             : 
   25759             :   /* "_csparsetools.pyx":199
   25760             :  *     cdef list row
   25761             :  *     cdef size_t pos = 0
   25762             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   25763             :  *         row = input[i]
   25764             :  *         for j in range(len(row)):
   25765             :  */
   25766       45039 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   25767       45039 :   __pyx_t_2 = __pyx_t_1;
   25768      873410 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   25769      828371 :     __pyx_v_i = __pyx_t_3;
   25770             : 
   25771             :     /* "_csparsetools.pyx":200
   25772             :  *     cdef size_t pos = 0
   25773             :  *     for i in range(len(input)):
   25774             :  *         row = input[i]             # <<<<<<<<<<<<<<
   25775             :  *         for j in range(len(row)):
   25776             :  *             output[pos] = row[j]
   25777             :  */
   25778      828371 :     __pyx_t_5 = __pyx_v_i;
   25779      828371 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   25780      828371 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   25781      828371 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   25782      828371 :     if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 200, __pyx_L1_error)
   25783      828371 :     __Pyx_XDECREF_SET(__pyx_v_row, ((PyObject*)__pyx_t_4));
   25784      828371 :     __pyx_t_4 = 0;
   25785             : 
   25786             :     /* "_csparsetools.pyx":201
   25787             :  *     for i in range(len(input)):
   25788             :  *         row = input[i]
   25789             :  *         for j in range(len(row)):             # <<<<<<<<<<<<<<
   25790             :  *             output[pos] = row[j]
   25791             :  *             pos += 1
   25792             :  */
   25793      828371 :     if (unlikely(__pyx_v_row == Py_None)) {
   25794           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   25795           0 :       __PYX_ERR(0, 201, __pyx_L1_error)
   25796             :     }
   25797      828371 :     __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 201, __pyx_L1_error)
   25798             :     __pyx_t_7 = __pyx_t_6;
   25799     1948559 :     for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
   25800     1120188 :       __pyx_v_j = __pyx_t_8;
   25801             : 
   25802             :       /* "_csparsetools.pyx":202
   25803             :  *         row = input[i]
   25804             :  *         for j in range(len(row)):
   25805             :  *             output[pos] = row[j]             # <<<<<<<<<<<<<<
   25806             :  *             pos += 1
   25807             :  * @cython.boundscheck(False)
   25808             :  */
   25809     1120188 :       if (unlikely(__pyx_v_row == Py_None)) {
   25810             :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   25811             :         __PYX_ERR(0, 202, __pyx_L1_error)
   25812             :       }
   25813     1120188 :       __pyx_t_9 = __Pyx_PyInt_As_npy_int32(PyList_GET_ITEM(__pyx_v_row, __pyx_v_j)); if (unlikely((__pyx_t_9 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 202, __pyx_L1_error)
   25814     1120188 :       __pyx_t_10 = __pyx_v_pos;
   25815     1120188 :       *__Pyx_BufPtrStrided1d(npy_int32 *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_9;
   25816             : 
   25817             :       /* "_csparsetools.pyx":203
   25818             :  *         for j in range(len(row)):
   25819             :  *             output[pos] = row[j]
   25820             :  *             pos += 1             # <<<<<<<<<<<<<<
   25821             :  * @cython.boundscheck(False)
   25822             :  * @cython.wraparound(False)
   25823             :  */
   25824     1120188 :       __pyx_v_pos = (__pyx_v_pos + 1);
   25825             :     }
   25826             :   }
   25827             : 
   25828             :   /* "_csparsetools.pyx":194
   25829             :  *             output[pos] = row[j]
   25830             :  *             pos += 1
   25831             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   25832             :  * @cython.wraparound(False)
   25833             :  * def _lil_flatten_to_array_int32(object[:] input not None, cnp.ndarray[cnp.npy_int32] output not None):
   25834             :  */
   25835             : 
   25836             :   /* function exit code */
   25837       45039 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   25838       45039 :   goto __pyx_L0;
   25839           0 :   __pyx_L1_error:;
   25840           0 :   __Pyx_XDECREF(__pyx_t_4);
   25841           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   25842           0 :     __Pyx_PyThreadState_declare
   25843           0 :     __Pyx_PyThreadState_assign
   25844           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   25845           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   25846           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   25847           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_int32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   25848           0 :   __pyx_r = NULL;
   25849           0 :   goto __pyx_L2;
   25850       45039 :   __pyx_L0:;
   25851       45039 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   25852       45039 :   __pyx_L2:;
   25853       45039 :   __Pyx_XDECREF(__pyx_v_row);
   25854       45039 :   __Pyx_XGIVEREF(__pyx_r);
   25855       45039 :   __Pyx_RefNannyFinishContext();
   25856       45039 :   return __pyx_r;
   25857             : }
   25858             : 
   25859             : /* "_csparsetools.pyx":204
   25860             :  *             output[pos] = row[j]
   25861             :  *             pos += 1
   25862             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   25863             :  * @cython.wraparound(False)
   25864             :  * def _lil_flatten_to_array_uint32(object[:] input not None, cnp.ndarray[cnp.npy_uint32] output not None):
   25865             :  */
   25866             : 
   25867             : /* Python wrapper */
   25868             : static PyObject *__pyx_pw_13_csparsetools_25_lil_flatten_to_array_uint32(PyObject *__pyx_self, 
   25869             : #if CYTHON_METH_FASTCALL
   25870             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   25871             : #else
   25872             : PyObject *__pyx_args, PyObject *__pyx_kwds
   25873             : #endif
   25874             : ); /*proto*/
   25875             : static PyMethodDef __pyx_mdef_13_csparsetools_25_lil_flatten_to_array_uint32 = {"_lil_flatten_to_array_uint32", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_25_lil_flatten_to_array_uint32, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   25876        1936 : static PyObject *__pyx_pw_13_csparsetools_25_lil_flatten_to_array_uint32(PyObject *__pyx_self, 
   25877             : #if CYTHON_METH_FASTCALL
   25878             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   25879             : #else
   25880             : PyObject *__pyx_args, PyObject *__pyx_kwds
   25881             : #endif
   25882             : ) {
   25883        1936 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   25884        1936 :   PyArrayObject *__pyx_v_output = 0;
   25885             :   #if !CYTHON_METH_FASTCALL
   25886             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   25887             :   #endif
   25888        1936 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   25889        1936 :   PyObject* values[2] = {0,0};
   25890        1936 :   int __pyx_lineno = 0;
   25891        1936 :   const char *__pyx_filename = NULL;
   25892        1936 :   int __pyx_clineno = 0;
   25893        1936 :   PyObject *__pyx_r = 0;
   25894             :   __Pyx_RefNannyDeclarations
   25895        1936 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_uint32 (wrapper)", 0);
   25896             :   #if !CYTHON_METH_FASTCALL
   25897             :   #if CYTHON_ASSUME_SAFE_MACROS
   25898             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   25899             :   #else
   25900             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   25901             :   #endif
   25902             :   #endif
   25903        1936 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   25904             :   {
   25905        1936 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   25906        1936 :     if (__pyx_kwds) {
   25907           0 :       Py_ssize_t kw_args;
   25908           0 :       switch (__pyx_nargs) {
   25909           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   25910           0 :         CYTHON_FALLTHROUGH;
   25911           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   25912           0 :         CYTHON_FALLTHROUGH;
   25913           0 :         case  0: break;
   25914           0 :         default: goto __pyx_L5_argtuple_error;
   25915             :       }
   25916           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   25917           0 :       switch (__pyx_nargs) {
   25918             :         case  0:
   25919           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   25920           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   25921           0 :           kw_args--;
   25922             :         }
   25923           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 204, __pyx_L3_error)
   25924           0 :         else goto __pyx_L5_argtuple_error;
   25925           0 :         CYTHON_FALLTHROUGH;
   25926             :         case  1:
   25927           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   25928           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   25929           0 :           kw_args--;
   25930             :         }
   25931           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 204, __pyx_L3_error)
   25932             :         else {
   25933           0 :           __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_uint32", 1, 2, 2, 1); __PYX_ERR(0, 204, __pyx_L3_error)
   25934             :         }
   25935             :       }
   25936           0 :       if (unlikely(kw_args > 0)) {
   25937           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   25938           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_flatten_to_array_uint32") < 0)) __PYX_ERR(0, 204, __pyx_L3_error)
   25939             :       }
   25940        1936 :     } else if (unlikely(__pyx_nargs != 2)) {
   25941           0 :       goto __pyx_L5_argtuple_error;
   25942             :     } else {
   25943        1936 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   25944        1936 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   25945             :     }
   25946        1936 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 206, __pyx_L3_error)
   25947        1936 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   25948             :   }
   25949        1936 :   goto __pyx_L6_skip;
   25950           0 :   __pyx_L5_argtuple_error:;
   25951           0 :   __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_uint32", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 204, __pyx_L3_error)
   25952        1936 :   __pyx_L6_skip:;
   25953        1936 :   goto __pyx_L4_argument_unpacking_done;
   25954           0 :   __pyx_L3_error:;
   25955             :   {
   25956           0 :     Py_ssize_t __pyx_temp;
   25957           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   25958             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   25959             :     }
   25960             :   }
   25961           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   25962           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_uint32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   25963           0 :   __Pyx_RefNannyFinishContext();
   25964           0 :   return NULL;
   25965        1936 :   __pyx_L4_argument_unpacking_done:;
   25966        1936 :   if (unlikely(((PyObject *)__pyx_v_input.memview) == Py_None)) {
   25967           0 :     PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "input"); __PYX_ERR(0, 206, __pyx_L1_error)
   25968             :   }
   25969        1936 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 0, "output", 0))) __PYX_ERR(0, 206, __pyx_L1_error)
   25970        1936 :   __pyx_r = __pyx_pf_13_csparsetools_24_lil_flatten_to_array_uint32(__pyx_self, __pyx_v_input, __pyx_v_output);
   25971             : 
   25972             :   /* function exit code */
   25973        1936 :   goto __pyx_L0;
   25974             :   __pyx_L1_error:;
   25975             :   __pyx_r = NULL;
   25976        1936 :   __pyx_L0:;
   25977        1936 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   25978             :   {
   25979        1936 :     Py_ssize_t __pyx_temp;
   25980        1936 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   25981             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   25982             :     }
   25983             :   }
   25984             :   __Pyx_RefNannyFinishContext();
   25985             :   return __pyx_r;
   25986             : }
   25987             : 
   25988        1936 : static PyObject *__pyx_pf_13_csparsetools_24_lil_flatten_to_array_uint32(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   25989        1936 :   PyObject *__pyx_v_row = 0;
   25990        1936 :   size_t __pyx_v_pos;
   25991        1936 :   Py_ssize_t __pyx_v_i;
   25992        1936 :   Py_ssize_t __pyx_v_j;
   25993        1936 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   25994        1936 :   __Pyx_Buffer __pyx_pybuffer_output;
   25995        1936 :   PyObject *__pyx_r = NULL;
   25996             :   __Pyx_RefNannyDeclarations
   25997        1936 :   Py_ssize_t __pyx_t_1;
   25998        1936 :   Py_ssize_t __pyx_t_2;
   25999        1936 :   Py_ssize_t __pyx_t_3;
   26000        1936 :   PyObject *__pyx_t_4 = NULL;
   26001        1936 :   Py_ssize_t __pyx_t_5;
   26002        1936 :   Py_ssize_t __pyx_t_6;
   26003        1936 :   Py_ssize_t __pyx_t_7;
   26004        1936 :   Py_ssize_t __pyx_t_8;
   26005        1936 :   npy_uint32 __pyx_t_9;
   26006        1936 :   size_t __pyx_t_10;
   26007        1936 :   int __pyx_lineno = 0;
   26008        1936 :   const char *__pyx_filename = NULL;
   26009        1936 :   int __pyx_clineno = 0;
   26010        1936 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_uint32", 1);
   26011        1936 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   26012        1936 :   __pyx_pybuffer_output.refcount = 0;
   26013        1936 :   __pyx_pybuffernd_output.data = NULL;
   26014        1936 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   26015             :   {
   26016        1936 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   26017        1936 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo_nn_npy_uint32, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 204, __pyx_L1_error)
   26018             :   }
   26019        1936 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   26020             : 
   26021             :   /* "_csparsetools.pyx":208
   26022             :  * def _lil_flatten_to_array_uint32(object[:] input not None, cnp.ndarray[cnp.npy_uint32] output not None):
   26023             :  *     cdef list row
   26024             :  *     cdef size_t pos = 0             # <<<<<<<<<<<<<<
   26025             :  *     for i in range(len(input)):
   26026             :  *         row = input[i]
   26027             :  */
   26028        1936 :   __pyx_v_pos = 0;
   26029             : 
   26030             :   /* "_csparsetools.pyx":209
   26031             :  *     cdef list row
   26032             :  *     cdef size_t pos = 0
   26033             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   26034             :  *         row = input[i]
   26035             :  *         for j in range(len(row)):
   26036             :  */
   26037        1936 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   26038        1936 :   __pyx_t_2 = __pyx_t_1;
   26039       13967 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   26040       12031 :     __pyx_v_i = __pyx_t_3;
   26041             : 
   26042             :     /* "_csparsetools.pyx":210
   26043             :  *     cdef size_t pos = 0
   26044             :  *     for i in range(len(input)):
   26045             :  *         row = input[i]             # <<<<<<<<<<<<<<
   26046             :  *         for j in range(len(row)):
   26047             :  *             output[pos] = row[j]
   26048             :  */
   26049       12031 :     __pyx_t_5 = __pyx_v_i;
   26050       12031 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   26051       12031 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   26052       12031 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   26053       12031 :     if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 210, __pyx_L1_error)
   26054       12031 :     __Pyx_XDECREF_SET(__pyx_v_row, ((PyObject*)__pyx_t_4));
   26055       12031 :     __pyx_t_4 = 0;
   26056             : 
   26057             :     /* "_csparsetools.pyx":211
   26058             :  *     for i in range(len(input)):
   26059             :  *         row = input[i]
   26060             :  *         for j in range(len(row)):             # <<<<<<<<<<<<<<
   26061             :  *             output[pos] = row[j]
   26062             :  *             pos += 1
   26063             :  */
   26064       12031 :     if (unlikely(__pyx_v_row == Py_None)) {
   26065           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   26066           0 :       __PYX_ERR(0, 211, __pyx_L1_error)
   26067             :     }
   26068       12031 :     __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 211, __pyx_L1_error)
   26069             :     __pyx_t_7 = __pyx_t_6;
   26070       22054 :     for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
   26071       10023 :       __pyx_v_j = __pyx_t_8;
   26072             : 
   26073             :       /* "_csparsetools.pyx":212
   26074             :  *         row = input[i]
   26075             :  *         for j in range(len(row)):
   26076             :  *             output[pos] = row[j]             # <<<<<<<<<<<<<<
   26077             :  *             pos += 1
   26078             :  * @cython.boundscheck(False)
   26079             :  */
   26080       10023 :       if (unlikely(__pyx_v_row == Py_None)) {
   26081             :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   26082             :         __PYX_ERR(0, 212, __pyx_L1_error)
   26083             :       }
   26084       10023 :       __pyx_t_9 = __Pyx_PyInt_As_npy_uint32(PyList_GET_ITEM(__pyx_v_row, __pyx_v_j)); if (unlikely((__pyx_t_9 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 212, __pyx_L1_error)
   26085       10023 :       __pyx_t_10 = __pyx_v_pos;
   26086       10023 :       *__Pyx_BufPtrStrided1d(npy_uint32 *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_9;
   26087             : 
   26088             :       /* "_csparsetools.pyx":213
   26089             :  *         for j in range(len(row)):
   26090             :  *             output[pos] = row[j]
   26091             :  *             pos += 1             # <<<<<<<<<<<<<<
   26092             :  * @cython.boundscheck(False)
   26093             :  * @cython.wraparound(False)
   26094             :  */
   26095       10023 :       __pyx_v_pos = (__pyx_v_pos + 1);
   26096             :     }
   26097             :   }
   26098             : 
   26099             :   /* "_csparsetools.pyx":204
   26100             :  *             output[pos] = row[j]
   26101             :  *             pos += 1
   26102             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   26103             :  * @cython.wraparound(False)
   26104             :  * def _lil_flatten_to_array_uint32(object[:] input not None, cnp.ndarray[cnp.npy_uint32] output not None):
   26105             :  */
   26106             : 
   26107             :   /* function exit code */
   26108        1936 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   26109        1936 :   goto __pyx_L0;
   26110           0 :   __pyx_L1_error:;
   26111           0 :   __Pyx_XDECREF(__pyx_t_4);
   26112           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   26113           0 :     __Pyx_PyThreadState_declare
   26114           0 :     __Pyx_PyThreadState_assign
   26115           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   26116           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   26117           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   26118           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_uint32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   26119           0 :   __pyx_r = NULL;
   26120           0 :   goto __pyx_L2;
   26121        1936 :   __pyx_L0:;
   26122        1936 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   26123        1936 :   __pyx_L2:;
   26124        1936 :   __Pyx_XDECREF(__pyx_v_row);
   26125        1936 :   __Pyx_XGIVEREF(__pyx_r);
   26126        1936 :   __Pyx_RefNannyFinishContext();
   26127        1936 :   return __pyx_r;
   26128             : }
   26129             : 
   26130             : /* "_csparsetools.pyx":214
   26131             :  *             output[pos] = row[j]
   26132             :  *             pos += 1
   26133             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   26134             :  * @cython.wraparound(False)
   26135             :  * def _lil_flatten_to_array_int64(object[:] input not None, cnp.ndarray[cnp.npy_int64] output not None):
   26136             :  */
   26137             : 
   26138             : /* Python wrapper */
   26139             : static PyObject *__pyx_pw_13_csparsetools_27_lil_flatten_to_array_int64(PyObject *__pyx_self, 
   26140             : #if CYTHON_METH_FASTCALL
   26141             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   26142             : #else
   26143             : PyObject *__pyx_args, PyObject *__pyx_kwds
   26144             : #endif
   26145             : ); /*proto*/
   26146             : static PyMethodDef __pyx_mdef_13_csparsetools_27_lil_flatten_to_array_int64 = {"_lil_flatten_to_array_int64", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_27_lil_flatten_to_array_int64, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   26147        8382 : static PyObject *__pyx_pw_13_csparsetools_27_lil_flatten_to_array_int64(PyObject *__pyx_self, 
   26148             : #if CYTHON_METH_FASTCALL
   26149             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   26150             : #else
   26151             : PyObject *__pyx_args, PyObject *__pyx_kwds
   26152             : #endif
   26153             : ) {
   26154        8382 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   26155        8382 :   PyArrayObject *__pyx_v_output = 0;
   26156             :   #if !CYTHON_METH_FASTCALL
   26157             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   26158             :   #endif
   26159        8382 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   26160        8382 :   PyObject* values[2] = {0,0};
   26161        8382 :   int __pyx_lineno = 0;
   26162        8382 :   const char *__pyx_filename = NULL;
   26163        8382 :   int __pyx_clineno = 0;
   26164        8382 :   PyObject *__pyx_r = 0;
   26165             :   __Pyx_RefNannyDeclarations
   26166        8382 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_int64 (wrapper)", 0);
   26167             :   #if !CYTHON_METH_FASTCALL
   26168             :   #if CYTHON_ASSUME_SAFE_MACROS
   26169             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   26170             :   #else
   26171             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   26172             :   #endif
   26173             :   #endif
   26174        8382 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   26175             :   {
   26176        8382 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   26177        8382 :     if (__pyx_kwds) {
   26178           0 :       Py_ssize_t kw_args;
   26179           0 :       switch (__pyx_nargs) {
   26180           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   26181           0 :         CYTHON_FALLTHROUGH;
   26182           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   26183           0 :         CYTHON_FALLTHROUGH;
   26184           0 :         case  0: break;
   26185           0 :         default: goto __pyx_L5_argtuple_error;
   26186             :       }
   26187           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   26188           0 :       switch (__pyx_nargs) {
   26189             :         case  0:
   26190           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   26191           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   26192           0 :           kw_args--;
   26193             :         }
   26194           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 214, __pyx_L3_error)
   26195           0 :         else goto __pyx_L5_argtuple_error;
   26196           0 :         CYTHON_FALLTHROUGH;
   26197             :         case  1:
   26198           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   26199           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   26200           0 :           kw_args--;
   26201             :         }
   26202           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 214, __pyx_L3_error)
   26203             :         else {
   26204           0 :           __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_int64", 1, 2, 2, 1); __PYX_ERR(0, 214, __pyx_L3_error)
   26205             :         }
   26206             :       }
   26207           0 :       if (unlikely(kw_args > 0)) {
   26208           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   26209           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_flatten_to_array_int64") < 0)) __PYX_ERR(0, 214, __pyx_L3_error)
   26210             :       }
   26211        8382 :     } else if (unlikely(__pyx_nargs != 2)) {
   26212           0 :       goto __pyx_L5_argtuple_error;
   26213             :     } else {
   26214        8382 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   26215        8382 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   26216             :     }
   26217        8382 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 216, __pyx_L3_error)
   26218        8382 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   26219             :   }
   26220        8382 :   goto __pyx_L6_skip;
   26221           0 :   __pyx_L5_argtuple_error:;
   26222           0 :   __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_int64", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 214, __pyx_L3_error)
   26223        8382 :   __pyx_L6_skip:;
   26224        8382 :   goto __pyx_L4_argument_unpacking_done;
   26225           0 :   __pyx_L3_error:;
   26226             :   {
   26227           0 :     Py_ssize_t __pyx_temp;
   26228           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   26229             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   26230             :     }
   26231             :   }
   26232           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   26233           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_int64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   26234           0 :   __Pyx_RefNannyFinishContext();
   26235           0 :   return NULL;
   26236        8382 :   __pyx_L4_argument_unpacking_done:;
   26237        8382 :   if (unlikely(((PyObject *)__pyx_v_input.memview) == Py_None)) {
   26238           0 :     PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "input"); __PYX_ERR(0, 216, __pyx_L1_error)
   26239             :   }
   26240        8382 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 0, "output", 0))) __PYX_ERR(0, 216, __pyx_L1_error)
   26241        8382 :   __pyx_r = __pyx_pf_13_csparsetools_26_lil_flatten_to_array_int64(__pyx_self, __pyx_v_input, __pyx_v_output);
   26242             : 
   26243             :   /* function exit code */
   26244        8382 :   goto __pyx_L0;
   26245             :   __pyx_L1_error:;
   26246             :   __pyx_r = NULL;
   26247        8382 :   __pyx_L0:;
   26248        8382 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   26249             :   {
   26250        8382 :     Py_ssize_t __pyx_temp;
   26251        8382 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   26252             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   26253             :     }
   26254             :   }
   26255             :   __Pyx_RefNannyFinishContext();
   26256             :   return __pyx_r;
   26257             : }
   26258             : 
   26259        8382 : static PyObject *__pyx_pf_13_csparsetools_26_lil_flatten_to_array_int64(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   26260        8382 :   PyObject *__pyx_v_row = 0;
   26261        8382 :   size_t __pyx_v_pos;
   26262        8382 :   Py_ssize_t __pyx_v_i;
   26263        8382 :   Py_ssize_t __pyx_v_j;
   26264        8382 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   26265        8382 :   __Pyx_Buffer __pyx_pybuffer_output;
   26266        8382 :   PyObject *__pyx_r = NULL;
   26267             :   __Pyx_RefNannyDeclarations
   26268        8382 :   Py_ssize_t __pyx_t_1;
   26269        8382 :   Py_ssize_t __pyx_t_2;
   26270        8382 :   Py_ssize_t __pyx_t_3;
   26271        8382 :   PyObject *__pyx_t_4 = NULL;
   26272        8382 :   Py_ssize_t __pyx_t_5;
   26273        8382 :   Py_ssize_t __pyx_t_6;
   26274        8382 :   Py_ssize_t __pyx_t_7;
   26275        8382 :   Py_ssize_t __pyx_t_8;
   26276        8382 :   npy_int64 __pyx_t_9;
   26277        8382 :   size_t __pyx_t_10;
   26278        8382 :   int __pyx_lineno = 0;
   26279        8382 :   const char *__pyx_filename = NULL;
   26280        8382 :   int __pyx_clineno = 0;
   26281        8382 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_int64", 1);
   26282        8382 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   26283        8382 :   __pyx_pybuffer_output.refcount = 0;
   26284        8382 :   __pyx_pybuffernd_output.data = NULL;
   26285        8382 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   26286             :   {
   26287        8382 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   26288        8382 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo_nn_npy_int64, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 214, __pyx_L1_error)
   26289             :   }
   26290        8382 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   26291             : 
   26292             :   /* "_csparsetools.pyx":218
   26293             :  * def _lil_flatten_to_array_int64(object[:] input not None, cnp.ndarray[cnp.npy_int64] output not None):
   26294             :  *     cdef list row
   26295             :  *     cdef size_t pos = 0             # <<<<<<<<<<<<<<
   26296             :  *     for i in range(len(input)):
   26297             :  *         row = input[i]
   26298             :  */
   26299        8382 :   __pyx_v_pos = 0;
   26300             : 
   26301             :   /* "_csparsetools.pyx":219
   26302             :  *     cdef list row
   26303             :  *     cdef size_t pos = 0
   26304             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   26305             :  *         row = input[i]
   26306             :  *         for j in range(len(row)):
   26307             :  */
   26308        8382 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   26309        8382 :   __pyx_t_2 = __pyx_t_1;
   26310       59885 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   26311       51503 :     __pyx_v_i = __pyx_t_3;
   26312             : 
   26313             :     /* "_csparsetools.pyx":220
   26314             :  *     cdef size_t pos = 0
   26315             :  *     for i in range(len(input)):
   26316             :  *         row = input[i]             # <<<<<<<<<<<<<<
   26317             :  *         for j in range(len(row)):
   26318             :  *             output[pos] = row[j]
   26319             :  */
   26320       51503 :     __pyx_t_5 = __pyx_v_i;
   26321       51503 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   26322       51503 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   26323       51503 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   26324       51503 :     if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 220, __pyx_L1_error)
   26325       51503 :     __Pyx_XDECREF_SET(__pyx_v_row, ((PyObject*)__pyx_t_4));
   26326       51503 :     __pyx_t_4 = 0;
   26327             : 
   26328             :     /* "_csparsetools.pyx":221
   26329             :  *     for i in range(len(input)):
   26330             :  *         row = input[i]
   26331             :  *         for j in range(len(row)):             # <<<<<<<<<<<<<<
   26332             :  *             output[pos] = row[j]
   26333             :  *             pos += 1
   26334             :  */
   26335       51503 :     if (unlikely(__pyx_v_row == Py_None)) {
   26336           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   26337           0 :       __PYX_ERR(0, 221, __pyx_L1_error)
   26338             :     }
   26339       51503 :     __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 221, __pyx_L1_error)
   26340             :     __pyx_t_7 = __pyx_t_6;
   26341      143695 :     for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
   26342       92192 :       __pyx_v_j = __pyx_t_8;
   26343             : 
   26344             :       /* "_csparsetools.pyx":222
   26345             :  *         row = input[i]
   26346             :  *         for j in range(len(row)):
   26347             :  *             output[pos] = row[j]             # <<<<<<<<<<<<<<
   26348             :  *             pos += 1
   26349             :  * @cython.boundscheck(False)
   26350             :  */
   26351       92192 :       if (unlikely(__pyx_v_row == Py_None)) {
   26352             :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   26353             :         __PYX_ERR(0, 222, __pyx_L1_error)
   26354             :       }
   26355       92192 :       __pyx_t_9 = __Pyx_PyInt_As_npy_int64(PyList_GET_ITEM(__pyx_v_row, __pyx_v_j)); if (unlikely((__pyx_t_9 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 222, __pyx_L1_error)
   26356       92192 :       __pyx_t_10 = __pyx_v_pos;
   26357       92192 :       *__Pyx_BufPtrStrided1d(npy_int64 *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_9;
   26358             : 
   26359             :       /* "_csparsetools.pyx":223
   26360             :  *         for j in range(len(row)):
   26361             :  *             output[pos] = row[j]
   26362             :  *             pos += 1             # <<<<<<<<<<<<<<
   26363             :  * @cython.boundscheck(False)
   26364             :  * @cython.wraparound(False)
   26365             :  */
   26366       92192 :       __pyx_v_pos = (__pyx_v_pos + 1);
   26367             :     }
   26368             :   }
   26369             : 
   26370             :   /* "_csparsetools.pyx":214
   26371             :  *             output[pos] = row[j]
   26372             :  *             pos += 1
   26373             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   26374             :  * @cython.wraparound(False)
   26375             :  * def _lil_flatten_to_array_int64(object[:] input not None, cnp.ndarray[cnp.npy_int64] output not None):
   26376             :  */
   26377             : 
   26378             :   /* function exit code */
   26379        8382 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   26380        8382 :   goto __pyx_L0;
   26381           0 :   __pyx_L1_error:;
   26382           0 :   __Pyx_XDECREF(__pyx_t_4);
   26383           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   26384           0 :     __Pyx_PyThreadState_declare
   26385           0 :     __Pyx_PyThreadState_assign
   26386           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   26387           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   26388           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   26389           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_int64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   26390           0 :   __pyx_r = NULL;
   26391           0 :   goto __pyx_L2;
   26392        8382 :   __pyx_L0:;
   26393        8382 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   26394        8382 :   __pyx_L2:;
   26395        8382 :   __Pyx_XDECREF(__pyx_v_row);
   26396        8382 :   __Pyx_XGIVEREF(__pyx_r);
   26397        8382 :   __Pyx_RefNannyFinishContext();
   26398        8382 :   return __pyx_r;
   26399             : }
   26400             : 
   26401             : /* "_csparsetools.pyx":224
   26402             :  *             output[pos] = row[j]
   26403             :  *             pos += 1
   26404             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   26405             :  * @cython.wraparound(False)
   26406             :  * def _lil_flatten_to_array_uint64(object[:] input not None, cnp.ndarray[cnp.npy_uint64] output not None):
   26407             :  */
   26408             : 
   26409             : /* Python wrapper */
   26410             : static PyObject *__pyx_pw_13_csparsetools_29_lil_flatten_to_array_uint64(PyObject *__pyx_self, 
   26411             : #if CYTHON_METH_FASTCALL
   26412             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   26413             : #else
   26414             : PyObject *__pyx_args, PyObject *__pyx_kwds
   26415             : #endif
   26416             : ); /*proto*/
   26417             : static PyMethodDef __pyx_mdef_13_csparsetools_29_lil_flatten_to_array_uint64 = {"_lil_flatten_to_array_uint64", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_29_lil_flatten_to_array_uint64, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   26418        3872 : static PyObject *__pyx_pw_13_csparsetools_29_lil_flatten_to_array_uint64(PyObject *__pyx_self, 
   26419             : #if CYTHON_METH_FASTCALL
   26420             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   26421             : #else
   26422             : PyObject *__pyx_args, PyObject *__pyx_kwds
   26423             : #endif
   26424             : ) {
   26425        3872 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   26426        3872 :   PyArrayObject *__pyx_v_output = 0;
   26427             :   #if !CYTHON_METH_FASTCALL
   26428             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   26429             :   #endif
   26430        3872 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   26431        3872 :   PyObject* values[2] = {0,0};
   26432        3872 :   int __pyx_lineno = 0;
   26433        3872 :   const char *__pyx_filename = NULL;
   26434        3872 :   int __pyx_clineno = 0;
   26435        3872 :   PyObject *__pyx_r = 0;
   26436             :   __Pyx_RefNannyDeclarations
   26437        3872 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_uint64 (wrapper)", 0);
   26438             :   #if !CYTHON_METH_FASTCALL
   26439             :   #if CYTHON_ASSUME_SAFE_MACROS
   26440             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   26441             :   #else
   26442             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   26443             :   #endif
   26444             :   #endif
   26445        3872 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   26446             :   {
   26447        3872 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   26448        3872 :     if (__pyx_kwds) {
   26449           0 :       Py_ssize_t kw_args;
   26450           0 :       switch (__pyx_nargs) {
   26451           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   26452           0 :         CYTHON_FALLTHROUGH;
   26453           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   26454           0 :         CYTHON_FALLTHROUGH;
   26455           0 :         case  0: break;
   26456           0 :         default: goto __pyx_L5_argtuple_error;
   26457             :       }
   26458           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   26459           0 :       switch (__pyx_nargs) {
   26460             :         case  0:
   26461           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   26462           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   26463           0 :           kw_args--;
   26464             :         }
   26465           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 224, __pyx_L3_error)
   26466           0 :         else goto __pyx_L5_argtuple_error;
   26467           0 :         CYTHON_FALLTHROUGH;
   26468             :         case  1:
   26469           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   26470           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   26471           0 :           kw_args--;
   26472             :         }
   26473           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 224, __pyx_L3_error)
   26474             :         else {
   26475           0 :           __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_uint64", 1, 2, 2, 1); __PYX_ERR(0, 224, __pyx_L3_error)
   26476             :         }
   26477             :       }
   26478           0 :       if (unlikely(kw_args > 0)) {
   26479           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   26480           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_flatten_to_array_uint64") < 0)) __PYX_ERR(0, 224, __pyx_L3_error)
   26481             :       }
   26482        3872 :     } else if (unlikely(__pyx_nargs != 2)) {
   26483           0 :       goto __pyx_L5_argtuple_error;
   26484             :     } else {
   26485        3872 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   26486        3872 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   26487             :     }
   26488        3872 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 226, __pyx_L3_error)
   26489        3872 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   26490             :   }
   26491        3872 :   goto __pyx_L6_skip;
   26492           0 :   __pyx_L5_argtuple_error:;
   26493           0 :   __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_uint64", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 224, __pyx_L3_error)
   26494        3872 :   __pyx_L6_skip:;
   26495        3872 :   goto __pyx_L4_argument_unpacking_done;
   26496           0 :   __pyx_L3_error:;
   26497             :   {
   26498           0 :     Py_ssize_t __pyx_temp;
   26499           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   26500             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   26501             :     }
   26502             :   }
   26503           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   26504           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_uint64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   26505           0 :   __Pyx_RefNannyFinishContext();
   26506           0 :   return NULL;
   26507        3872 :   __pyx_L4_argument_unpacking_done:;
   26508        3872 :   if (unlikely(((PyObject *)__pyx_v_input.memview) == Py_None)) {
   26509           0 :     PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "input"); __PYX_ERR(0, 226, __pyx_L1_error)
   26510             :   }
   26511        3872 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 0, "output", 0))) __PYX_ERR(0, 226, __pyx_L1_error)
   26512        3872 :   __pyx_r = __pyx_pf_13_csparsetools_28_lil_flatten_to_array_uint64(__pyx_self, __pyx_v_input, __pyx_v_output);
   26513             : 
   26514             :   /* function exit code */
   26515        3872 :   goto __pyx_L0;
   26516             :   __pyx_L1_error:;
   26517             :   __pyx_r = NULL;
   26518        3872 :   __pyx_L0:;
   26519        3872 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   26520             :   {
   26521        3872 :     Py_ssize_t __pyx_temp;
   26522        3872 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   26523             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   26524             :     }
   26525             :   }
   26526             :   __Pyx_RefNannyFinishContext();
   26527             :   return __pyx_r;
   26528             : }
   26529             : 
   26530        3872 : static PyObject *__pyx_pf_13_csparsetools_28_lil_flatten_to_array_uint64(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   26531        3872 :   PyObject *__pyx_v_row = 0;
   26532        3872 :   size_t __pyx_v_pos;
   26533        3872 :   Py_ssize_t __pyx_v_i;
   26534        3872 :   Py_ssize_t __pyx_v_j;
   26535        3872 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   26536        3872 :   __Pyx_Buffer __pyx_pybuffer_output;
   26537        3872 :   PyObject *__pyx_r = NULL;
   26538             :   __Pyx_RefNannyDeclarations
   26539        3872 :   Py_ssize_t __pyx_t_1;
   26540        3872 :   Py_ssize_t __pyx_t_2;
   26541        3872 :   Py_ssize_t __pyx_t_3;
   26542        3872 :   PyObject *__pyx_t_4 = NULL;
   26543        3872 :   Py_ssize_t __pyx_t_5;
   26544        3872 :   Py_ssize_t __pyx_t_6;
   26545        3872 :   Py_ssize_t __pyx_t_7;
   26546        3872 :   Py_ssize_t __pyx_t_8;
   26547        3872 :   npy_uint64 __pyx_t_9;
   26548        3872 :   size_t __pyx_t_10;
   26549        3872 :   int __pyx_lineno = 0;
   26550        3872 :   const char *__pyx_filename = NULL;
   26551        3872 :   int __pyx_clineno = 0;
   26552        3872 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_uint64", 1);
   26553        3872 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   26554        3872 :   __pyx_pybuffer_output.refcount = 0;
   26555        3872 :   __pyx_pybuffernd_output.data = NULL;
   26556        3872 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   26557             :   {
   26558        3872 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   26559        3872 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo_nn_npy_uint64, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 224, __pyx_L1_error)
   26560             :   }
   26561        3872 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   26562             : 
   26563             :   /* "_csparsetools.pyx":228
   26564             :  * def _lil_flatten_to_array_uint64(object[:] input not None, cnp.ndarray[cnp.npy_uint64] output not None):
   26565             :  *     cdef list row
   26566             :  *     cdef size_t pos = 0             # <<<<<<<<<<<<<<
   26567             :  *     for i in range(len(input)):
   26568             :  *         row = input[i]
   26569             :  */
   26570        3872 :   __pyx_v_pos = 0;
   26571             : 
   26572             :   /* "_csparsetools.pyx":229
   26573             :  *     cdef list row
   26574             :  *     cdef size_t pos = 0
   26575             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   26576             :  *         row = input[i]
   26577             :  *         for j in range(len(row)):
   26578             :  */
   26579        3872 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   26580        3872 :   __pyx_t_2 = __pyx_t_1;
   26581       27934 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   26582       24062 :     __pyx_v_i = __pyx_t_3;
   26583             : 
   26584             :     /* "_csparsetools.pyx":230
   26585             :  *     cdef size_t pos = 0
   26586             :  *     for i in range(len(input)):
   26587             :  *         row = input[i]             # <<<<<<<<<<<<<<
   26588             :  *         for j in range(len(row)):
   26589             :  *             output[pos] = row[j]
   26590             :  */
   26591       24062 :     __pyx_t_5 = __pyx_v_i;
   26592       24062 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   26593       24062 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   26594       24062 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   26595       24062 :     if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 230, __pyx_L1_error)
   26596       24062 :     __Pyx_XDECREF_SET(__pyx_v_row, ((PyObject*)__pyx_t_4));
   26597       24062 :     __pyx_t_4 = 0;
   26598             : 
   26599             :     /* "_csparsetools.pyx":231
   26600             :  *     for i in range(len(input)):
   26601             :  *         row = input[i]
   26602             :  *         for j in range(len(row)):             # <<<<<<<<<<<<<<
   26603             :  *             output[pos] = row[j]
   26604             :  *             pos += 1
   26605             :  */
   26606       24062 :     if (unlikely(__pyx_v_row == Py_None)) {
   26607           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   26608           0 :       __PYX_ERR(0, 231, __pyx_L1_error)
   26609             :     }
   26610       24062 :     __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 231, __pyx_L1_error)
   26611             :     __pyx_t_7 = __pyx_t_6;
   26612       44108 :     for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
   26613       20046 :       __pyx_v_j = __pyx_t_8;
   26614             : 
   26615             :       /* "_csparsetools.pyx":232
   26616             :  *         row = input[i]
   26617             :  *         for j in range(len(row)):
   26618             :  *             output[pos] = row[j]             # <<<<<<<<<<<<<<
   26619             :  *             pos += 1
   26620             :  * @cython.boundscheck(False)
   26621             :  */
   26622       20046 :       if (unlikely(__pyx_v_row == Py_None)) {
   26623             :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   26624             :         __PYX_ERR(0, 232, __pyx_L1_error)
   26625             :       }
   26626       20046 :       __pyx_t_9 = __Pyx_PyInt_As_npy_uint64(PyList_GET_ITEM(__pyx_v_row, __pyx_v_j)); if (unlikely((__pyx_t_9 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 232, __pyx_L1_error)
   26627       20046 :       __pyx_t_10 = __pyx_v_pos;
   26628       20046 :       *__Pyx_BufPtrStrided1d(npy_uint64 *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_9;
   26629             : 
   26630             :       /* "_csparsetools.pyx":233
   26631             :  *         for j in range(len(row)):
   26632             :  *             output[pos] = row[j]
   26633             :  *             pos += 1             # <<<<<<<<<<<<<<
   26634             :  * @cython.boundscheck(False)
   26635             :  * @cython.wraparound(False)
   26636             :  */
   26637       20046 :       __pyx_v_pos = (__pyx_v_pos + 1);
   26638             :     }
   26639             :   }
   26640             : 
   26641             :   /* "_csparsetools.pyx":224
   26642             :  *             output[pos] = row[j]
   26643             :  *             pos += 1
   26644             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   26645             :  * @cython.wraparound(False)
   26646             :  * def _lil_flatten_to_array_uint64(object[:] input not None, cnp.ndarray[cnp.npy_uint64] output not None):
   26647             :  */
   26648             : 
   26649             :   /* function exit code */
   26650        3872 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   26651        3872 :   goto __pyx_L0;
   26652           0 :   __pyx_L1_error:;
   26653           0 :   __Pyx_XDECREF(__pyx_t_4);
   26654           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   26655           0 :     __Pyx_PyThreadState_declare
   26656           0 :     __Pyx_PyThreadState_assign
   26657           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   26658           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   26659           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   26660           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_uint64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   26661           0 :   __pyx_r = NULL;
   26662           0 :   goto __pyx_L2;
   26663        3872 :   __pyx_L0:;
   26664        3872 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   26665        3872 :   __pyx_L2:;
   26666        3872 :   __Pyx_XDECREF(__pyx_v_row);
   26667        3872 :   __Pyx_XGIVEREF(__pyx_r);
   26668        3872 :   __Pyx_RefNannyFinishContext();
   26669        3872 :   return __pyx_r;
   26670             : }
   26671             : 
   26672             : /* "_csparsetools.pyx":234
   26673             :  *             output[pos] = row[j]
   26674             :  *             pos += 1
   26675             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   26676             :  * @cython.wraparound(False)
   26677             :  * def _lil_flatten_to_array_float32(object[:] input not None, cnp.ndarray[cnp.npy_float32] output not None):
   26678             :  */
   26679             : 
   26680             : /* Python wrapper */
   26681             : static PyObject *__pyx_pw_13_csparsetools_31_lil_flatten_to_array_float32(PyObject *__pyx_self, 
   26682             : #if CYTHON_METH_FASTCALL
   26683             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   26684             : #else
   26685             : PyObject *__pyx_args, PyObject *__pyx_kwds
   26686             : #endif
   26687             : ); /*proto*/
   26688             : static PyMethodDef __pyx_mdef_13_csparsetools_31_lil_flatten_to_array_float32 = {"_lil_flatten_to_array_float32", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_31_lil_flatten_to_array_float32, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   26689        2021 : static PyObject *__pyx_pw_13_csparsetools_31_lil_flatten_to_array_float32(PyObject *__pyx_self, 
   26690             : #if CYTHON_METH_FASTCALL
   26691             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   26692             : #else
   26693             : PyObject *__pyx_args, PyObject *__pyx_kwds
   26694             : #endif
   26695             : ) {
   26696        2021 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   26697        2021 :   PyArrayObject *__pyx_v_output = 0;
   26698             :   #if !CYTHON_METH_FASTCALL
   26699             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   26700             :   #endif
   26701        2021 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   26702        2021 :   PyObject* values[2] = {0,0};
   26703        2021 :   int __pyx_lineno = 0;
   26704        2021 :   const char *__pyx_filename = NULL;
   26705        2021 :   int __pyx_clineno = 0;
   26706        2021 :   PyObject *__pyx_r = 0;
   26707             :   __Pyx_RefNannyDeclarations
   26708        2021 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_float32 (wrapper)", 0);
   26709             :   #if !CYTHON_METH_FASTCALL
   26710             :   #if CYTHON_ASSUME_SAFE_MACROS
   26711             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   26712             :   #else
   26713             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   26714             :   #endif
   26715             :   #endif
   26716        2021 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   26717             :   {
   26718        2021 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   26719        2021 :     if (__pyx_kwds) {
   26720           0 :       Py_ssize_t kw_args;
   26721           0 :       switch (__pyx_nargs) {
   26722           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   26723           0 :         CYTHON_FALLTHROUGH;
   26724           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   26725           0 :         CYTHON_FALLTHROUGH;
   26726           0 :         case  0: break;
   26727           0 :         default: goto __pyx_L5_argtuple_error;
   26728             :       }
   26729           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   26730           0 :       switch (__pyx_nargs) {
   26731             :         case  0:
   26732           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   26733           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   26734           0 :           kw_args--;
   26735             :         }
   26736           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 234, __pyx_L3_error)
   26737           0 :         else goto __pyx_L5_argtuple_error;
   26738           0 :         CYTHON_FALLTHROUGH;
   26739             :         case  1:
   26740           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   26741           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   26742           0 :           kw_args--;
   26743             :         }
   26744           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 234, __pyx_L3_error)
   26745             :         else {
   26746           0 :           __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_float32", 1, 2, 2, 1); __PYX_ERR(0, 234, __pyx_L3_error)
   26747             :         }
   26748             :       }
   26749           0 :       if (unlikely(kw_args > 0)) {
   26750           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   26751           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_flatten_to_array_float32") < 0)) __PYX_ERR(0, 234, __pyx_L3_error)
   26752             :       }
   26753        2021 :     } else if (unlikely(__pyx_nargs != 2)) {
   26754           0 :       goto __pyx_L5_argtuple_error;
   26755             :     } else {
   26756        2021 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   26757        2021 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   26758             :     }
   26759        2021 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 236, __pyx_L3_error)
   26760        2021 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   26761             :   }
   26762        2021 :   goto __pyx_L6_skip;
   26763           0 :   __pyx_L5_argtuple_error:;
   26764           0 :   __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_float32", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 234, __pyx_L3_error)
   26765        2021 :   __pyx_L6_skip:;
   26766        2021 :   goto __pyx_L4_argument_unpacking_done;
   26767           0 :   __pyx_L3_error:;
   26768             :   {
   26769           0 :     Py_ssize_t __pyx_temp;
   26770           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   26771             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   26772             :     }
   26773             :   }
   26774           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   26775           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_float32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   26776           0 :   __Pyx_RefNannyFinishContext();
   26777           0 :   return NULL;
   26778        2021 :   __pyx_L4_argument_unpacking_done:;
   26779        2021 :   if (unlikely(((PyObject *)__pyx_v_input.memview) == Py_None)) {
   26780           0 :     PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "input"); __PYX_ERR(0, 236, __pyx_L1_error)
   26781             :   }
   26782        2021 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 0, "output", 0))) __PYX_ERR(0, 236, __pyx_L1_error)
   26783        2021 :   __pyx_r = __pyx_pf_13_csparsetools_30_lil_flatten_to_array_float32(__pyx_self, __pyx_v_input, __pyx_v_output);
   26784             : 
   26785             :   /* function exit code */
   26786        2021 :   goto __pyx_L0;
   26787             :   __pyx_L1_error:;
   26788             :   __pyx_r = NULL;
   26789        2021 :   __pyx_L0:;
   26790        2021 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   26791             :   {
   26792        2021 :     Py_ssize_t __pyx_temp;
   26793        2021 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   26794             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   26795             :     }
   26796             :   }
   26797             :   __Pyx_RefNannyFinishContext();
   26798             :   return __pyx_r;
   26799             : }
   26800             : 
   26801        2021 : static PyObject *__pyx_pf_13_csparsetools_30_lil_flatten_to_array_float32(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   26802        2021 :   PyObject *__pyx_v_row = 0;
   26803        2021 :   size_t __pyx_v_pos;
   26804        2021 :   Py_ssize_t __pyx_v_i;
   26805        2021 :   Py_ssize_t __pyx_v_j;
   26806        2021 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   26807        2021 :   __Pyx_Buffer __pyx_pybuffer_output;
   26808        2021 :   PyObject *__pyx_r = NULL;
   26809             :   __Pyx_RefNannyDeclarations
   26810        2021 :   Py_ssize_t __pyx_t_1;
   26811        2021 :   Py_ssize_t __pyx_t_2;
   26812        2021 :   Py_ssize_t __pyx_t_3;
   26813        2021 :   PyObject *__pyx_t_4 = NULL;
   26814        2021 :   Py_ssize_t __pyx_t_5;
   26815        2021 :   Py_ssize_t __pyx_t_6;
   26816        2021 :   Py_ssize_t __pyx_t_7;
   26817        2021 :   Py_ssize_t __pyx_t_8;
   26818        2021 :   npy_float32 __pyx_t_9;
   26819        2021 :   size_t __pyx_t_10;
   26820        2021 :   int __pyx_lineno = 0;
   26821        2021 :   const char *__pyx_filename = NULL;
   26822        2021 :   int __pyx_clineno = 0;
   26823        2021 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_float32", 1);
   26824        2021 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   26825        2021 :   __pyx_pybuffer_output.refcount = 0;
   26826        2021 :   __pyx_pybuffernd_output.data = NULL;
   26827        2021 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   26828             :   {
   26829        2021 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   26830        2021 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo_nn_npy_float32, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 234, __pyx_L1_error)
   26831             :   }
   26832        2021 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   26833             : 
   26834             :   /* "_csparsetools.pyx":238
   26835             :  * def _lil_flatten_to_array_float32(object[:] input not None, cnp.ndarray[cnp.npy_float32] output not None):
   26836             :  *     cdef list row
   26837             :  *     cdef size_t pos = 0             # <<<<<<<<<<<<<<
   26838             :  *     for i in range(len(input)):
   26839             :  *         row = input[i]
   26840             :  */
   26841        2021 :   __pyx_v_pos = 0;
   26842             : 
   26843             :   /* "_csparsetools.pyx":239
   26844             :  *     cdef list row
   26845             :  *     cdef size_t pos = 0
   26846             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   26847             :  *         row = input[i]
   26848             :  *         for j in range(len(row)):
   26849             :  */
   26850        2021 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   26851        2021 :   __pyx_t_2 = __pyx_t_1;
   26852       14417 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   26853       12396 :     __pyx_v_i = __pyx_t_3;
   26854             : 
   26855             :     /* "_csparsetools.pyx":240
   26856             :  *     cdef size_t pos = 0
   26857             :  *     for i in range(len(input)):
   26858             :  *         row = input[i]             # <<<<<<<<<<<<<<
   26859             :  *         for j in range(len(row)):
   26860             :  *             output[pos] = row[j]
   26861             :  */
   26862       12396 :     __pyx_t_5 = __pyx_v_i;
   26863       12396 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   26864       12396 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   26865       12396 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   26866       12396 :     if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 240, __pyx_L1_error)
   26867       12396 :     __Pyx_XDECREF_SET(__pyx_v_row, ((PyObject*)__pyx_t_4));
   26868       12396 :     __pyx_t_4 = 0;
   26869             : 
   26870             :     /* "_csparsetools.pyx":241
   26871             :  *     for i in range(len(input)):
   26872             :  *         row = input[i]
   26873             :  *         for j in range(len(row)):             # <<<<<<<<<<<<<<
   26874             :  *             output[pos] = row[j]
   26875             :  *             pos += 1
   26876             :  */
   26877       12396 :     if (unlikely(__pyx_v_row == Py_None)) {
   26878           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   26879           0 :       __PYX_ERR(0, 241, __pyx_L1_error)
   26880             :     }
   26881       12396 :     __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 241, __pyx_L1_error)
   26882             :     __pyx_t_7 = __pyx_t_6;
   26883       28320 :     for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
   26884       15924 :       __pyx_v_j = __pyx_t_8;
   26885             : 
   26886             :       /* "_csparsetools.pyx":242
   26887             :  *         row = input[i]
   26888             :  *         for j in range(len(row)):
   26889             :  *             output[pos] = row[j]             # <<<<<<<<<<<<<<
   26890             :  *             pos += 1
   26891             :  * @cython.boundscheck(False)
   26892             :  */
   26893       15924 :       if (unlikely(__pyx_v_row == Py_None)) {
   26894             :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   26895             :         __PYX_ERR(0, 242, __pyx_L1_error)
   26896             :       }
   26897       15924 :       __pyx_t_9 = __pyx_PyFloat_AsFloat(PyList_GET_ITEM(__pyx_v_row, __pyx_v_j)); if (unlikely((__pyx_t_9 == ((npy_float32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 242, __pyx_L1_error)
   26898       15924 :       __pyx_t_10 = __pyx_v_pos;
   26899       15924 :       *__Pyx_BufPtrStrided1d(npy_float32 *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_9;
   26900             : 
   26901             :       /* "_csparsetools.pyx":243
   26902             :  *         for j in range(len(row)):
   26903             :  *             output[pos] = row[j]
   26904             :  *             pos += 1             # <<<<<<<<<<<<<<
   26905             :  * @cython.boundscheck(False)
   26906             :  * @cython.wraparound(False)
   26907             :  */
   26908       15924 :       __pyx_v_pos = (__pyx_v_pos + 1);
   26909             :     }
   26910             :   }
   26911             : 
   26912             :   /* "_csparsetools.pyx":234
   26913             :  *             output[pos] = row[j]
   26914             :  *             pos += 1
   26915             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   26916             :  * @cython.wraparound(False)
   26917             :  * def _lil_flatten_to_array_float32(object[:] input not None, cnp.ndarray[cnp.npy_float32] output not None):
   26918             :  */
   26919             : 
   26920             :   /* function exit code */
   26921        2021 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   26922        2021 :   goto __pyx_L0;
   26923           0 :   __pyx_L1_error:;
   26924           0 :   __Pyx_XDECREF(__pyx_t_4);
   26925           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   26926           0 :     __Pyx_PyThreadState_declare
   26927           0 :     __Pyx_PyThreadState_assign
   26928           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   26929           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   26930           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   26931           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_float32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   26932           0 :   __pyx_r = NULL;
   26933           0 :   goto __pyx_L2;
   26934        2021 :   __pyx_L0:;
   26935        2021 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   26936        2021 :   __pyx_L2:;
   26937        2021 :   __Pyx_XDECREF(__pyx_v_row);
   26938        2021 :   __Pyx_XGIVEREF(__pyx_r);
   26939        2021 :   __Pyx_RefNannyFinishContext();
   26940        2021 :   return __pyx_r;
   26941             : }
   26942             : 
   26943             : /* "_csparsetools.pyx":244
   26944             :  *             output[pos] = row[j]
   26945             :  *             pos += 1
   26946             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   26947             :  * @cython.wraparound(False)
   26948             :  * def _lil_flatten_to_array_float64(object[:] input not None, cnp.ndarray[cnp.npy_float64] output not None):
   26949             :  */
   26950             : 
   26951             : /* Python wrapper */
   26952             : static PyObject *__pyx_pw_13_csparsetools_33_lil_flatten_to_array_float64(PyObject *__pyx_self, 
   26953             : #if CYTHON_METH_FASTCALL
   26954             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   26955             : #else
   26956             : PyObject *__pyx_args, PyObject *__pyx_kwds
   26957             : #endif
   26958             : ); /*proto*/
   26959             : static PyMethodDef __pyx_mdef_13_csparsetools_33_lil_flatten_to_array_float64 = {"_lil_flatten_to_array_float64", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_33_lil_flatten_to_array_float64, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   26960        6360 : static PyObject *__pyx_pw_13_csparsetools_33_lil_flatten_to_array_float64(PyObject *__pyx_self, 
   26961             : #if CYTHON_METH_FASTCALL
   26962             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   26963             : #else
   26964             : PyObject *__pyx_args, PyObject *__pyx_kwds
   26965             : #endif
   26966             : ) {
   26967        6360 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   26968        6360 :   PyArrayObject *__pyx_v_output = 0;
   26969             :   #if !CYTHON_METH_FASTCALL
   26970             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   26971             :   #endif
   26972        6360 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   26973        6360 :   PyObject* values[2] = {0,0};
   26974        6360 :   int __pyx_lineno = 0;
   26975        6360 :   const char *__pyx_filename = NULL;
   26976        6360 :   int __pyx_clineno = 0;
   26977        6360 :   PyObject *__pyx_r = 0;
   26978             :   __Pyx_RefNannyDeclarations
   26979        6360 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_float64 (wrapper)", 0);
   26980             :   #if !CYTHON_METH_FASTCALL
   26981             :   #if CYTHON_ASSUME_SAFE_MACROS
   26982             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   26983             :   #else
   26984             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   26985             :   #endif
   26986             :   #endif
   26987        6360 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   26988             :   {
   26989        6360 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   26990        6360 :     if (__pyx_kwds) {
   26991           0 :       Py_ssize_t kw_args;
   26992           0 :       switch (__pyx_nargs) {
   26993           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   26994           0 :         CYTHON_FALLTHROUGH;
   26995           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   26996           0 :         CYTHON_FALLTHROUGH;
   26997           0 :         case  0: break;
   26998           0 :         default: goto __pyx_L5_argtuple_error;
   26999             :       }
   27000           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   27001           0 :       switch (__pyx_nargs) {
   27002             :         case  0:
   27003           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   27004           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   27005           0 :           kw_args--;
   27006             :         }
   27007           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 244, __pyx_L3_error)
   27008           0 :         else goto __pyx_L5_argtuple_error;
   27009           0 :         CYTHON_FALLTHROUGH;
   27010             :         case  1:
   27011           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   27012           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   27013           0 :           kw_args--;
   27014             :         }
   27015           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 244, __pyx_L3_error)
   27016             :         else {
   27017           0 :           __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_float64", 1, 2, 2, 1); __PYX_ERR(0, 244, __pyx_L3_error)
   27018             :         }
   27019             :       }
   27020           0 :       if (unlikely(kw_args > 0)) {
   27021           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   27022           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_flatten_to_array_float64") < 0)) __PYX_ERR(0, 244, __pyx_L3_error)
   27023             :       }
   27024        6360 :     } else if (unlikely(__pyx_nargs != 2)) {
   27025           0 :       goto __pyx_L5_argtuple_error;
   27026             :     } else {
   27027        6360 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   27028        6360 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   27029             :     }
   27030        6360 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 246, __pyx_L3_error)
   27031        6360 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   27032             :   }
   27033        6360 :   goto __pyx_L6_skip;
   27034           0 :   __pyx_L5_argtuple_error:;
   27035           0 :   __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_float64", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 244, __pyx_L3_error)
   27036        6360 :   __pyx_L6_skip:;
   27037        6360 :   goto __pyx_L4_argument_unpacking_done;
   27038           0 :   __pyx_L3_error:;
   27039             :   {
   27040           0 :     Py_ssize_t __pyx_temp;
   27041           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   27042             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   27043             :     }
   27044             :   }
   27045           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   27046           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_float64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   27047           0 :   __Pyx_RefNannyFinishContext();
   27048           0 :   return NULL;
   27049        6360 :   __pyx_L4_argument_unpacking_done:;
   27050        6360 :   if (unlikely(((PyObject *)__pyx_v_input.memview) == Py_None)) {
   27051           0 :     PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "input"); __PYX_ERR(0, 246, __pyx_L1_error)
   27052             :   }
   27053        6360 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 0, "output", 0))) __PYX_ERR(0, 246, __pyx_L1_error)
   27054        6360 :   __pyx_r = __pyx_pf_13_csparsetools_32_lil_flatten_to_array_float64(__pyx_self, __pyx_v_input, __pyx_v_output);
   27055             : 
   27056             :   /* function exit code */
   27057        6360 :   goto __pyx_L0;
   27058             :   __pyx_L1_error:;
   27059             :   __pyx_r = NULL;
   27060        6360 :   __pyx_L0:;
   27061        6360 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   27062             :   {
   27063        6360 :     Py_ssize_t __pyx_temp;
   27064        6360 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   27065             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   27066             :     }
   27067             :   }
   27068             :   __Pyx_RefNannyFinishContext();
   27069             :   return __pyx_r;
   27070             : }
   27071             : 
   27072        6360 : static PyObject *__pyx_pf_13_csparsetools_32_lil_flatten_to_array_float64(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   27073        6360 :   PyObject *__pyx_v_row = 0;
   27074        6360 :   size_t __pyx_v_pos;
   27075        6360 :   Py_ssize_t __pyx_v_i;
   27076        6360 :   Py_ssize_t __pyx_v_j;
   27077        6360 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   27078        6360 :   __Pyx_Buffer __pyx_pybuffer_output;
   27079        6360 :   PyObject *__pyx_r = NULL;
   27080             :   __Pyx_RefNannyDeclarations
   27081        6360 :   Py_ssize_t __pyx_t_1;
   27082        6360 :   Py_ssize_t __pyx_t_2;
   27083        6360 :   Py_ssize_t __pyx_t_3;
   27084        6360 :   PyObject *__pyx_t_4 = NULL;
   27085        6360 :   Py_ssize_t __pyx_t_5;
   27086        6360 :   Py_ssize_t __pyx_t_6;
   27087        6360 :   Py_ssize_t __pyx_t_7;
   27088        6360 :   Py_ssize_t __pyx_t_8;
   27089        6360 :   npy_float64 __pyx_t_9;
   27090        6360 :   size_t __pyx_t_10;
   27091        6360 :   int __pyx_lineno = 0;
   27092        6360 :   const char *__pyx_filename = NULL;
   27093        6360 :   int __pyx_clineno = 0;
   27094        6360 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_float64", 1);
   27095        6360 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   27096        6360 :   __pyx_pybuffer_output.refcount = 0;
   27097        6360 :   __pyx_pybuffernd_output.data = NULL;
   27098        6360 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   27099             :   {
   27100        6360 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   27101        6360 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo_nn_npy_float64, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 244, __pyx_L1_error)
   27102             :   }
   27103        6360 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   27104             : 
   27105             :   /* "_csparsetools.pyx":248
   27106             :  * def _lil_flatten_to_array_float64(object[:] input not None, cnp.ndarray[cnp.npy_float64] output not None):
   27107             :  *     cdef list row
   27108             :  *     cdef size_t pos = 0             # <<<<<<<<<<<<<<
   27109             :  *     for i in range(len(input)):
   27110             :  *         row = input[i]
   27111             :  */
   27112        6360 :   __pyx_v_pos = 0;
   27113             : 
   27114             :   /* "_csparsetools.pyx":249
   27115             :  *     cdef list row
   27116             :  *     cdef size_t pos = 0
   27117             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   27118             :  *         row = input[i]
   27119             :  *         for j in range(len(row)):
   27120             :  */
   27121        6360 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   27122        6360 :   __pyx_t_2 = __pyx_t_1;
   27123      598457 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   27124      592097 :     __pyx_v_i = __pyx_t_3;
   27125             : 
   27126             :     /* "_csparsetools.pyx":250
   27127             :  *     cdef size_t pos = 0
   27128             :  *     for i in range(len(input)):
   27129             :  *         row = input[i]             # <<<<<<<<<<<<<<
   27130             :  *         for j in range(len(row)):
   27131             :  *             output[pos] = row[j]
   27132             :  */
   27133      592097 :     __pyx_t_5 = __pyx_v_i;
   27134      592097 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   27135      592097 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   27136      592097 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   27137      592097 :     if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 250, __pyx_L1_error)
   27138      592097 :     __Pyx_XDECREF_SET(__pyx_v_row, ((PyObject*)__pyx_t_4));
   27139      592097 :     __pyx_t_4 = 0;
   27140             : 
   27141             :     /* "_csparsetools.pyx":251
   27142             :  *     for i in range(len(input)):
   27143             :  *         row = input[i]
   27144             :  *         for j in range(len(row)):             # <<<<<<<<<<<<<<
   27145             :  *             output[pos] = row[j]
   27146             :  *             pos += 1
   27147             :  */
   27148      592097 :     if (unlikely(__pyx_v_row == Py_None)) {
   27149           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   27150           0 :       __PYX_ERR(0, 251, __pyx_L1_error)
   27151             :     }
   27152      592097 :     __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 251, __pyx_L1_error)
   27153             :     __pyx_t_7 = __pyx_t_6;
   27154     1428820 :     for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
   27155      836723 :       __pyx_v_j = __pyx_t_8;
   27156             : 
   27157             :       /* "_csparsetools.pyx":252
   27158             :  *         row = input[i]
   27159             :  *         for j in range(len(row)):
   27160             :  *             output[pos] = row[j]             # <<<<<<<<<<<<<<
   27161             :  *             pos += 1
   27162             :  * @cython.boundscheck(False)
   27163             :  */
   27164      836723 :       if (unlikely(__pyx_v_row == Py_None)) {
   27165             :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   27166             :         __PYX_ERR(0, 252, __pyx_L1_error)
   27167             :       }
   27168      836723 :       __pyx_t_9 = __pyx_PyFloat_AsDouble(PyList_GET_ITEM(__pyx_v_row, __pyx_v_j)); if (unlikely((__pyx_t_9 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 252, __pyx_L1_error)
   27169      836723 :       __pyx_t_10 = __pyx_v_pos;
   27170      836723 :       *__Pyx_BufPtrStrided1d(npy_float64 *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_9;
   27171             : 
   27172             :       /* "_csparsetools.pyx":253
   27173             :  *         for j in range(len(row)):
   27174             :  *             output[pos] = row[j]
   27175             :  *             pos += 1             # <<<<<<<<<<<<<<
   27176             :  * @cython.boundscheck(False)
   27177             :  * @cython.wraparound(False)
   27178             :  */
   27179      836723 :       __pyx_v_pos = (__pyx_v_pos + 1);
   27180             :     }
   27181             :   }
   27182             : 
   27183             :   /* "_csparsetools.pyx":244
   27184             :  *             output[pos] = row[j]
   27185             :  *             pos += 1
   27186             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   27187             :  * @cython.wraparound(False)
   27188             :  * def _lil_flatten_to_array_float64(object[:] input not None, cnp.ndarray[cnp.npy_float64] output not None):
   27189             :  */
   27190             : 
   27191             :   /* function exit code */
   27192        6360 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   27193        6360 :   goto __pyx_L0;
   27194           0 :   __pyx_L1_error:;
   27195           0 :   __Pyx_XDECREF(__pyx_t_4);
   27196           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   27197           0 :     __Pyx_PyThreadState_declare
   27198           0 :     __Pyx_PyThreadState_assign
   27199           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   27200           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   27201           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   27202           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_float64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   27203           0 :   __pyx_r = NULL;
   27204           0 :   goto __pyx_L2;
   27205        6360 :   __pyx_L0:;
   27206        6360 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   27207        6360 :   __pyx_L2:;
   27208        6360 :   __Pyx_XDECREF(__pyx_v_row);
   27209        6360 :   __Pyx_XGIVEREF(__pyx_r);
   27210        6360 :   __Pyx_RefNannyFinishContext();
   27211        6360 :   return __pyx_r;
   27212             : }
   27213             : 
   27214             : /* "_csparsetools.pyx":254
   27215             :  *             output[pos] = row[j]
   27216             :  *             pos += 1
   27217             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   27218             :  * @cython.wraparound(False)
   27219             :  * def _lil_flatten_to_array_longdouble(object[:] input not None, cnp.ndarray[long double] output not None):
   27220             :  */
   27221             : 
   27222             : /* Python wrapper */
   27223             : static PyObject *__pyx_pw_13_csparsetools_35_lil_flatten_to_array_longdouble(PyObject *__pyx_self, 
   27224             : #if CYTHON_METH_FASTCALL
   27225             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   27226             : #else
   27227             : PyObject *__pyx_args, PyObject *__pyx_kwds
   27228             : #endif
   27229             : ); /*proto*/
   27230             : static PyMethodDef __pyx_mdef_13_csparsetools_35_lil_flatten_to_array_longdouble = {"_lil_flatten_to_array_longdouble", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_35_lil_flatten_to_array_longdouble, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   27231        1964 : static PyObject *__pyx_pw_13_csparsetools_35_lil_flatten_to_array_longdouble(PyObject *__pyx_self, 
   27232             : #if CYTHON_METH_FASTCALL
   27233             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   27234             : #else
   27235             : PyObject *__pyx_args, PyObject *__pyx_kwds
   27236             : #endif
   27237             : ) {
   27238        1964 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   27239        1964 :   PyArrayObject *__pyx_v_output = 0;
   27240             :   #if !CYTHON_METH_FASTCALL
   27241             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   27242             :   #endif
   27243        1964 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   27244        1964 :   PyObject* values[2] = {0,0};
   27245        1964 :   int __pyx_lineno = 0;
   27246        1964 :   const char *__pyx_filename = NULL;
   27247        1964 :   int __pyx_clineno = 0;
   27248        1964 :   PyObject *__pyx_r = 0;
   27249             :   __Pyx_RefNannyDeclarations
   27250        1964 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_longdouble (wrapper)", 0);
   27251             :   #if !CYTHON_METH_FASTCALL
   27252             :   #if CYTHON_ASSUME_SAFE_MACROS
   27253             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   27254             :   #else
   27255             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   27256             :   #endif
   27257             :   #endif
   27258        1964 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   27259             :   {
   27260        1964 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   27261        1964 :     if (__pyx_kwds) {
   27262           0 :       Py_ssize_t kw_args;
   27263           0 :       switch (__pyx_nargs) {
   27264           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   27265           0 :         CYTHON_FALLTHROUGH;
   27266           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   27267           0 :         CYTHON_FALLTHROUGH;
   27268           0 :         case  0: break;
   27269           0 :         default: goto __pyx_L5_argtuple_error;
   27270             :       }
   27271           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   27272           0 :       switch (__pyx_nargs) {
   27273             :         case  0:
   27274           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   27275           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   27276           0 :           kw_args--;
   27277             :         }
   27278           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 254, __pyx_L3_error)
   27279           0 :         else goto __pyx_L5_argtuple_error;
   27280           0 :         CYTHON_FALLTHROUGH;
   27281             :         case  1:
   27282           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   27283           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   27284           0 :           kw_args--;
   27285             :         }
   27286           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 254, __pyx_L3_error)
   27287             :         else {
   27288           0 :           __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_longdouble", 1, 2, 2, 1); __PYX_ERR(0, 254, __pyx_L3_error)
   27289             :         }
   27290             :       }
   27291           0 :       if (unlikely(kw_args > 0)) {
   27292           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   27293           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_flatten_to_array_longdouble") < 0)) __PYX_ERR(0, 254, __pyx_L3_error)
   27294             :       }
   27295        1964 :     } else if (unlikely(__pyx_nargs != 2)) {
   27296           0 :       goto __pyx_L5_argtuple_error;
   27297             :     } else {
   27298        1964 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   27299        1964 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   27300             :     }
   27301        1964 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 256, __pyx_L3_error)
   27302        1964 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   27303             :   }
   27304        1964 :   goto __pyx_L6_skip;
   27305           0 :   __pyx_L5_argtuple_error:;
   27306           0 :   __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_longdouble", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 254, __pyx_L3_error)
   27307        1964 :   __pyx_L6_skip:;
   27308        1964 :   goto __pyx_L4_argument_unpacking_done;
   27309           0 :   __pyx_L3_error:;
   27310             :   {
   27311           0 :     Py_ssize_t __pyx_temp;
   27312           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   27313             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   27314             :     }
   27315             :   }
   27316           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   27317           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_longdouble", __pyx_clineno, __pyx_lineno, __pyx_filename);
   27318           0 :   __Pyx_RefNannyFinishContext();
   27319           0 :   return NULL;
   27320        1964 :   __pyx_L4_argument_unpacking_done:;
   27321        1964 :   if (unlikely(((PyObject *)__pyx_v_input.memview) == Py_None)) {
   27322           0 :     PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "input"); __PYX_ERR(0, 256, __pyx_L1_error)
   27323             :   }
   27324        1964 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 0, "output", 0))) __PYX_ERR(0, 256, __pyx_L1_error)
   27325        1964 :   __pyx_r = __pyx_pf_13_csparsetools_34_lil_flatten_to_array_longdouble(__pyx_self, __pyx_v_input, __pyx_v_output);
   27326             : 
   27327             :   /* function exit code */
   27328        1964 :   goto __pyx_L0;
   27329             :   __pyx_L1_error:;
   27330             :   __pyx_r = NULL;
   27331        1964 :   __pyx_L0:;
   27332        1964 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   27333             :   {
   27334        1964 :     Py_ssize_t __pyx_temp;
   27335        1964 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   27336             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   27337             :     }
   27338             :   }
   27339             :   __Pyx_RefNannyFinishContext();
   27340             :   return __pyx_r;
   27341             : }
   27342             : 
   27343        1964 : static PyObject *__pyx_pf_13_csparsetools_34_lil_flatten_to_array_longdouble(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   27344        1964 :   PyObject *__pyx_v_row = 0;
   27345        1964 :   size_t __pyx_v_pos;
   27346        1964 :   Py_ssize_t __pyx_v_i;
   27347        1964 :   Py_ssize_t __pyx_v_j;
   27348        1964 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   27349        1964 :   __Pyx_Buffer __pyx_pybuffer_output;
   27350        1964 :   PyObject *__pyx_r = NULL;
   27351             :   __Pyx_RefNannyDeclarations
   27352        1964 :   Py_ssize_t __pyx_t_1;
   27353        1964 :   Py_ssize_t __pyx_t_2;
   27354        1964 :   Py_ssize_t __pyx_t_3;
   27355        1964 :   PyObject *__pyx_t_4 = NULL;
   27356        1964 :   Py_ssize_t __pyx_t_5;
   27357        1964 :   Py_ssize_t __pyx_t_6;
   27358        1964 :   Py_ssize_t __pyx_t_7;
   27359        1964 :   Py_ssize_t __pyx_t_8;
   27360        1964 :   long double __pyx_t_9;
   27361        1964 :   size_t __pyx_t_10;
   27362        1964 :   int __pyx_lineno = 0;
   27363        1964 :   const char *__pyx_filename = NULL;
   27364        1964 :   int __pyx_clineno = 0;
   27365        1964 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_longdouble", 1);
   27366        1964 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   27367        1964 :   __pyx_pybuffer_output.refcount = 0;
   27368        1964 :   __pyx_pybuffernd_output.data = NULL;
   27369        1964 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   27370             :   {
   27371        1964 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   27372        1964 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo_long__double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 254, __pyx_L1_error)
   27373             :   }
   27374        1964 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   27375             : 
   27376             :   /* "_csparsetools.pyx":258
   27377             :  * def _lil_flatten_to_array_longdouble(object[:] input not None, cnp.ndarray[long double] output not None):
   27378             :  *     cdef list row
   27379             :  *     cdef size_t pos = 0             # <<<<<<<<<<<<<<
   27380             :  *     for i in range(len(input)):
   27381             :  *         row = input[i]
   27382             :  */
   27383        1964 :   __pyx_v_pos = 0;
   27384             : 
   27385             :   /* "_csparsetools.pyx":259
   27386             :  *     cdef list row
   27387             :  *     cdef size_t pos = 0
   27388             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   27389             :  *         row = input[i]
   27390             :  *         for j in range(len(row)):
   27391             :  */
   27392        1964 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   27393        1964 :   __pyx_t_2 = __pyx_t_1;
   27394       14079 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   27395       12115 :     __pyx_v_i = __pyx_t_3;
   27396             : 
   27397             :     /* "_csparsetools.pyx":260
   27398             :  *     cdef size_t pos = 0
   27399             :  *     for i in range(len(input)):
   27400             :  *         row = input[i]             # <<<<<<<<<<<<<<
   27401             :  *         for j in range(len(row)):
   27402             :  *             output[pos] = row[j]
   27403             :  */
   27404       12115 :     __pyx_t_5 = __pyx_v_i;
   27405       12115 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   27406       12115 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   27407       12115 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   27408       12115 :     if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 260, __pyx_L1_error)
   27409       12115 :     __Pyx_XDECREF_SET(__pyx_v_row, ((PyObject*)__pyx_t_4));
   27410       12115 :     __pyx_t_4 = 0;
   27411             : 
   27412             :     /* "_csparsetools.pyx":261
   27413             :  *     for i in range(len(input)):
   27414             :  *         row = input[i]
   27415             :  *         for j in range(len(row)):             # <<<<<<<<<<<<<<
   27416             :  *             output[pos] = row[j]
   27417             :  *             pos += 1
   27418             :  */
   27419       12115 :     if (unlikely(__pyx_v_row == Py_None)) {
   27420           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   27421           0 :       __PYX_ERR(0, 261, __pyx_L1_error)
   27422             :     }
   27423       12115 :     __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 261, __pyx_L1_error)
   27424             :     __pyx_t_7 = __pyx_t_6;
   27425       28039 :     for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
   27426       15924 :       __pyx_v_j = __pyx_t_8;
   27427             : 
   27428             :       /* "_csparsetools.pyx":262
   27429             :  *         row = input[i]
   27430             :  *         for j in range(len(row)):
   27431             :  *             output[pos] = row[j]             # <<<<<<<<<<<<<<
   27432             :  *             pos += 1
   27433             :  * @cython.boundscheck(False)
   27434             :  */
   27435       15924 :       if (unlikely(__pyx_v_row == Py_None)) {
   27436             :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   27437             :         __PYX_ERR(0, 262, __pyx_L1_error)
   27438             :       }
   27439       15924 :       __pyx_t_9 = __pyx_PyFloat_AsDouble(PyList_GET_ITEM(__pyx_v_row, __pyx_v_j)); if (unlikely((__pyx_t_9 == (long double)-1) && PyErr_Occurred())) __PYX_ERR(0, 262, __pyx_L1_error)
   27440       15924 :       __pyx_t_10 = __pyx_v_pos;
   27441       15924 :       *__Pyx_BufPtrStrided1d(long double *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_9;
   27442             : 
   27443             :       /* "_csparsetools.pyx":263
   27444             :  *         for j in range(len(row)):
   27445             :  *             output[pos] = row[j]
   27446             :  *             pos += 1             # <<<<<<<<<<<<<<
   27447             :  * @cython.boundscheck(False)
   27448             :  * @cython.wraparound(False)
   27449             :  */
   27450       15924 :       __pyx_v_pos = (__pyx_v_pos + 1);
   27451             :     }
   27452             :   }
   27453             : 
   27454             :   /* "_csparsetools.pyx":254
   27455             :  *             output[pos] = row[j]
   27456             :  *             pos += 1
   27457             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   27458             :  * @cython.wraparound(False)
   27459             :  * def _lil_flatten_to_array_longdouble(object[:] input not None, cnp.ndarray[long double] output not None):
   27460             :  */
   27461             : 
   27462             :   /* function exit code */
   27463        1964 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   27464        1964 :   goto __pyx_L0;
   27465           0 :   __pyx_L1_error:;
   27466           0 :   __Pyx_XDECREF(__pyx_t_4);
   27467           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   27468           0 :     __Pyx_PyThreadState_declare
   27469           0 :     __Pyx_PyThreadState_assign
   27470           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   27471           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   27472           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   27473           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_longdouble", __pyx_clineno, __pyx_lineno, __pyx_filename);
   27474           0 :   __pyx_r = NULL;
   27475           0 :   goto __pyx_L2;
   27476        1964 :   __pyx_L0:;
   27477        1964 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   27478        1964 :   __pyx_L2:;
   27479        1964 :   __Pyx_XDECREF(__pyx_v_row);
   27480        1964 :   __Pyx_XGIVEREF(__pyx_r);
   27481        1964 :   __Pyx_RefNannyFinishContext();
   27482        1964 :   return __pyx_r;
   27483             : }
   27484             : 
   27485             : /* "_csparsetools.pyx":264
   27486             :  *             output[pos] = row[j]
   27487             :  *             pos += 1
   27488             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   27489             :  * @cython.wraparound(False)
   27490             :  * def _lil_flatten_to_array_complex64(object[:] input not None, cnp.ndarray[float complex] output not None):
   27491             :  */
   27492             : 
   27493             : /* Python wrapper */
   27494             : static PyObject *__pyx_pw_13_csparsetools_37_lil_flatten_to_array_complex64(PyObject *__pyx_self, 
   27495             : #if CYTHON_METH_FASTCALL
   27496             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   27497             : #else
   27498             : PyObject *__pyx_args, PyObject *__pyx_kwds
   27499             : #endif
   27500             : ); /*proto*/
   27501             : static PyMethodDef __pyx_mdef_13_csparsetools_37_lil_flatten_to_array_complex64 = {"_lil_flatten_to_array_complex64", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_37_lil_flatten_to_array_complex64, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   27502        2020 : static PyObject *__pyx_pw_13_csparsetools_37_lil_flatten_to_array_complex64(PyObject *__pyx_self, 
   27503             : #if CYTHON_METH_FASTCALL
   27504             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   27505             : #else
   27506             : PyObject *__pyx_args, PyObject *__pyx_kwds
   27507             : #endif
   27508             : ) {
   27509        2020 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   27510        2020 :   PyArrayObject *__pyx_v_output = 0;
   27511             :   #if !CYTHON_METH_FASTCALL
   27512             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   27513             :   #endif
   27514        2020 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   27515        2020 :   PyObject* values[2] = {0,0};
   27516        2020 :   int __pyx_lineno = 0;
   27517        2020 :   const char *__pyx_filename = NULL;
   27518        2020 :   int __pyx_clineno = 0;
   27519        2020 :   PyObject *__pyx_r = 0;
   27520             :   __Pyx_RefNannyDeclarations
   27521        2020 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_complex64 (wrapper)", 0);
   27522             :   #if !CYTHON_METH_FASTCALL
   27523             :   #if CYTHON_ASSUME_SAFE_MACROS
   27524             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   27525             :   #else
   27526             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   27527             :   #endif
   27528             :   #endif
   27529        2020 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   27530             :   {
   27531        2020 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   27532        2020 :     if (__pyx_kwds) {
   27533           0 :       Py_ssize_t kw_args;
   27534           0 :       switch (__pyx_nargs) {
   27535           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   27536           0 :         CYTHON_FALLTHROUGH;
   27537           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   27538           0 :         CYTHON_FALLTHROUGH;
   27539           0 :         case  0: break;
   27540           0 :         default: goto __pyx_L5_argtuple_error;
   27541             :       }
   27542           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   27543           0 :       switch (__pyx_nargs) {
   27544             :         case  0:
   27545           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   27546           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   27547           0 :           kw_args--;
   27548             :         }
   27549           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 264, __pyx_L3_error)
   27550           0 :         else goto __pyx_L5_argtuple_error;
   27551           0 :         CYTHON_FALLTHROUGH;
   27552             :         case  1:
   27553           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   27554           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   27555           0 :           kw_args--;
   27556             :         }
   27557           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 264, __pyx_L3_error)
   27558             :         else {
   27559           0 :           __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_complex64", 1, 2, 2, 1); __PYX_ERR(0, 264, __pyx_L3_error)
   27560             :         }
   27561             :       }
   27562           0 :       if (unlikely(kw_args > 0)) {
   27563           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   27564           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_flatten_to_array_complex64") < 0)) __PYX_ERR(0, 264, __pyx_L3_error)
   27565             :       }
   27566        2020 :     } else if (unlikely(__pyx_nargs != 2)) {
   27567           0 :       goto __pyx_L5_argtuple_error;
   27568             :     } else {
   27569        2020 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   27570        2020 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   27571             :     }
   27572        2020 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 266, __pyx_L3_error)
   27573        2020 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   27574             :   }
   27575        2020 :   goto __pyx_L6_skip;
   27576           0 :   __pyx_L5_argtuple_error:;
   27577           0 :   __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_complex64", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 264, __pyx_L3_error)
   27578        2020 :   __pyx_L6_skip:;
   27579        2020 :   goto __pyx_L4_argument_unpacking_done;
   27580           0 :   __pyx_L3_error:;
   27581             :   {
   27582           0 :     Py_ssize_t __pyx_temp;
   27583           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   27584             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   27585             :     }
   27586             :   }
   27587           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   27588           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_complex64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   27589           0 :   __Pyx_RefNannyFinishContext();
   27590           0 :   return NULL;
   27591        2020 :   __pyx_L4_argument_unpacking_done:;
   27592        2020 :   if (unlikely(((PyObject *)__pyx_v_input.memview) == Py_None)) {
   27593           0 :     PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "input"); __PYX_ERR(0, 266, __pyx_L1_error)
   27594             :   }
   27595        2020 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 0, "output", 0))) __PYX_ERR(0, 266, __pyx_L1_error)
   27596        2020 :   __pyx_r = __pyx_pf_13_csparsetools_36_lil_flatten_to_array_complex64(__pyx_self, __pyx_v_input, __pyx_v_output);
   27597             : 
   27598             :   /* function exit code */
   27599        2020 :   goto __pyx_L0;
   27600             :   __pyx_L1_error:;
   27601             :   __pyx_r = NULL;
   27602        2020 :   __pyx_L0:;
   27603        2020 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   27604             :   {
   27605        2020 :     Py_ssize_t __pyx_temp;
   27606        2020 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   27607             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   27608             :     }
   27609             :   }
   27610             :   __Pyx_RefNannyFinishContext();
   27611             :   return __pyx_r;
   27612             : }
   27613             : 
   27614        2020 : static PyObject *__pyx_pf_13_csparsetools_36_lil_flatten_to_array_complex64(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   27615        2020 :   PyObject *__pyx_v_row = 0;
   27616        2020 :   size_t __pyx_v_pos;
   27617        2020 :   Py_ssize_t __pyx_v_i;
   27618        2020 :   Py_ssize_t __pyx_v_j;
   27619        2020 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   27620        2020 :   __Pyx_Buffer __pyx_pybuffer_output;
   27621        2020 :   PyObject *__pyx_r = NULL;
   27622             :   __Pyx_RefNannyDeclarations
   27623        2020 :   Py_ssize_t __pyx_t_1;
   27624        2020 :   Py_ssize_t __pyx_t_2;
   27625        2020 :   Py_ssize_t __pyx_t_3;
   27626        2020 :   PyObject *__pyx_t_4 = NULL;
   27627        2020 :   Py_ssize_t __pyx_t_5;
   27628        2020 :   Py_ssize_t __pyx_t_6;
   27629        2020 :   Py_ssize_t __pyx_t_7;
   27630        2020 :   Py_ssize_t __pyx_t_8;
   27631        2020 :   __pyx_t_float_complex __pyx_t_9;
   27632        2020 :   size_t __pyx_t_10;
   27633        2020 :   int __pyx_lineno = 0;
   27634        2020 :   const char *__pyx_filename = NULL;
   27635        2020 :   int __pyx_clineno = 0;
   27636        2020 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_complex64", 1);
   27637        2020 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   27638        2020 :   __pyx_pybuffer_output.refcount = 0;
   27639        2020 :   __pyx_pybuffernd_output.data = NULL;
   27640        2020 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   27641             :   {
   27642        2020 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   27643        2020 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo___pyx_t_float_complex, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 264, __pyx_L1_error)
   27644             :   }
   27645        2020 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   27646             : 
   27647             :   /* "_csparsetools.pyx":268
   27648             :  * def _lil_flatten_to_array_complex64(object[:] input not None, cnp.ndarray[float complex] output not None):
   27649             :  *     cdef list row
   27650             :  *     cdef size_t pos = 0             # <<<<<<<<<<<<<<
   27651             :  *     for i in range(len(input)):
   27652             :  *         row = input[i]
   27653             :  */
   27654        2020 :   __pyx_v_pos = 0;
   27655             : 
   27656             :   /* "_csparsetools.pyx":269
   27657             :  *     cdef list row
   27658             :  *     cdef size_t pos = 0
   27659             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   27660             :  *         row = input[i]
   27661             :  *         for j in range(len(row)):
   27662             :  */
   27663        2020 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   27664        2020 :   __pyx_t_2 = __pyx_t_1;
   27665       14415 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   27666       12395 :     __pyx_v_i = __pyx_t_3;
   27667             : 
   27668             :     /* "_csparsetools.pyx":270
   27669             :  *     cdef size_t pos = 0
   27670             :  *     for i in range(len(input)):
   27671             :  *         row = input[i]             # <<<<<<<<<<<<<<
   27672             :  *         for j in range(len(row)):
   27673             :  *             output[pos] = row[j]
   27674             :  */
   27675       12395 :     __pyx_t_5 = __pyx_v_i;
   27676       12395 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   27677       12395 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   27678       12395 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   27679       12395 :     if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 270, __pyx_L1_error)
   27680       12395 :     __Pyx_XDECREF_SET(__pyx_v_row, ((PyObject*)__pyx_t_4));
   27681       12395 :     __pyx_t_4 = 0;
   27682             : 
   27683             :     /* "_csparsetools.pyx":271
   27684             :  *     for i in range(len(input)):
   27685             :  *         row = input[i]
   27686             :  *         for j in range(len(row)):             # <<<<<<<<<<<<<<
   27687             :  *             output[pos] = row[j]
   27688             :  *             pos += 1
   27689             :  */
   27690       12395 :     if (unlikely(__pyx_v_row == Py_None)) {
   27691           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   27692           0 :       __PYX_ERR(0, 271, __pyx_L1_error)
   27693             :     }
   27694       12395 :     __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 271, __pyx_L1_error)
   27695             :     __pyx_t_7 = __pyx_t_6;
   27696       28907 :     for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
   27697       16512 :       __pyx_v_j = __pyx_t_8;
   27698             : 
   27699             :       /* "_csparsetools.pyx":272
   27700             :  *         row = input[i]
   27701             :  *         for j in range(len(row)):
   27702             :  *             output[pos] = row[j]             # <<<<<<<<<<<<<<
   27703             :  *             pos += 1
   27704             :  * @cython.boundscheck(False)
   27705             :  */
   27706       16512 :       if (unlikely(__pyx_v_row == Py_None)) {
   27707             :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   27708             :         __PYX_ERR(0, 272, __pyx_L1_error)
   27709             :       }
   27710       16512 :       __pyx_t_9 = __Pyx_PyComplex_As___pyx_t_float_complex(PyList_GET_ITEM(__pyx_v_row, __pyx_v_j)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 272, __pyx_L1_error)
   27711       16512 :       __pyx_t_10 = __pyx_v_pos;
   27712       16512 :       *__Pyx_BufPtrStrided1d(__pyx_t_float_complex *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_9;
   27713             : 
   27714             :       /* "_csparsetools.pyx":273
   27715             :  *         for j in range(len(row)):
   27716             :  *             output[pos] = row[j]
   27717             :  *             pos += 1             # <<<<<<<<<<<<<<
   27718             :  * @cython.boundscheck(False)
   27719             :  * @cython.wraparound(False)
   27720             :  */
   27721       16512 :       __pyx_v_pos = (__pyx_v_pos + 1);
   27722             :     }
   27723             :   }
   27724             : 
   27725             :   /* "_csparsetools.pyx":264
   27726             :  *             output[pos] = row[j]
   27727             :  *             pos += 1
   27728             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   27729             :  * @cython.wraparound(False)
   27730             :  * def _lil_flatten_to_array_complex64(object[:] input not None, cnp.ndarray[float complex] output not None):
   27731             :  */
   27732             : 
   27733             :   /* function exit code */
   27734        2020 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   27735        2020 :   goto __pyx_L0;
   27736           0 :   __pyx_L1_error:;
   27737           0 :   __Pyx_XDECREF(__pyx_t_4);
   27738           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   27739           0 :     __Pyx_PyThreadState_declare
   27740           0 :     __Pyx_PyThreadState_assign
   27741           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   27742           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   27743           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   27744           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_complex64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   27745           0 :   __pyx_r = NULL;
   27746           0 :   goto __pyx_L2;
   27747        2020 :   __pyx_L0:;
   27748        2020 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   27749        2020 :   __pyx_L2:;
   27750        2020 :   __Pyx_XDECREF(__pyx_v_row);
   27751        2020 :   __Pyx_XGIVEREF(__pyx_r);
   27752        2020 :   __Pyx_RefNannyFinishContext();
   27753        2020 :   return __pyx_r;
   27754             : }
   27755             : 
   27756             : /* "_csparsetools.pyx":274
   27757             :  *             output[pos] = row[j]
   27758             :  *             pos += 1
   27759             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   27760             :  * @cython.wraparound(False)
   27761             :  * def _lil_flatten_to_array_complex128(object[:] input not None, cnp.ndarray[double complex] output not None):
   27762             :  */
   27763             : 
   27764             : /* Python wrapper */
   27765             : static PyObject *__pyx_pw_13_csparsetools_39_lil_flatten_to_array_complex128(PyObject *__pyx_self, 
   27766             : #if CYTHON_METH_FASTCALL
   27767             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   27768             : #else
   27769             : PyObject *__pyx_args, PyObject *__pyx_kwds
   27770             : #endif
   27771             : ); /*proto*/
   27772             : static PyMethodDef __pyx_mdef_13_csparsetools_39_lil_flatten_to_array_complex128 = {"_lil_flatten_to_array_complex128", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_39_lil_flatten_to_array_complex128, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   27773        2961 : static PyObject *__pyx_pw_13_csparsetools_39_lil_flatten_to_array_complex128(PyObject *__pyx_self, 
   27774             : #if CYTHON_METH_FASTCALL
   27775             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   27776             : #else
   27777             : PyObject *__pyx_args, PyObject *__pyx_kwds
   27778             : #endif
   27779             : ) {
   27780        2961 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   27781        2961 :   PyArrayObject *__pyx_v_output = 0;
   27782             :   #if !CYTHON_METH_FASTCALL
   27783             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   27784             :   #endif
   27785        2961 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   27786        2961 :   PyObject* values[2] = {0,0};
   27787        2961 :   int __pyx_lineno = 0;
   27788        2961 :   const char *__pyx_filename = NULL;
   27789        2961 :   int __pyx_clineno = 0;
   27790        2961 :   PyObject *__pyx_r = 0;
   27791             :   __Pyx_RefNannyDeclarations
   27792        2961 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_complex128 (wrapper)", 0);
   27793             :   #if !CYTHON_METH_FASTCALL
   27794             :   #if CYTHON_ASSUME_SAFE_MACROS
   27795             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   27796             :   #else
   27797             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   27798             :   #endif
   27799             :   #endif
   27800        2961 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   27801             :   {
   27802        2961 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   27803        2961 :     if (__pyx_kwds) {
   27804           0 :       Py_ssize_t kw_args;
   27805           0 :       switch (__pyx_nargs) {
   27806           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   27807           0 :         CYTHON_FALLTHROUGH;
   27808           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   27809           0 :         CYTHON_FALLTHROUGH;
   27810           0 :         case  0: break;
   27811           0 :         default: goto __pyx_L5_argtuple_error;
   27812             :       }
   27813           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   27814           0 :       switch (__pyx_nargs) {
   27815             :         case  0:
   27816           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   27817           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   27818           0 :           kw_args--;
   27819             :         }
   27820           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 274, __pyx_L3_error)
   27821           0 :         else goto __pyx_L5_argtuple_error;
   27822           0 :         CYTHON_FALLTHROUGH;
   27823             :         case  1:
   27824           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   27825           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   27826           0 :           kw_args--;
   27827             :         }
   27828           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 274, __pyx_L3_error)
   27829             :         else {
   27830           0 :           __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_complex128", 1, 2, 2, 1); __PYX_ERR(0, 274, __pyx_L3_error)
   27831             :         }
   27832             :       }
   27833           0 :       if (unlikely(kw_args > 0)) {
   27834           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   27835           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_flatten_to_array_complex128") < 0)) __PYX_ERR(0, 274, __pyx_L3_error)
   27836             :       }
   27837        2961 :     } else if (unlikely(__pyx_nargs != 2)) {
   27838           0 :       goto __pyx_L5_argtuple_error;
   27839             :     } else {
   27840        2961 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   27841        2961 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   27842             :     }
   27843        2961 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 276, __pyx_L3_error)
   27844        2961 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   27845             :   }
   27846        2961 :   goto __pyx_L6_skip;
   27847           0 :   __pyx_L5_argtuple_error:;
   27848           0 :   __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_complex128", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 274, __pyx_L3_error)
   27849        2961 :   __pyx_L6_skip:;
   27850        2961 :   goto __pyx_L4_argument_unpacking_done;
   27851           0 :   __pyx_L3_error:;
   27852             :   {
   27853           0 :     Py_ssize_t __pyx_temp;
   27854           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   27855             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   27856             :     }
   27857             :   }
   27858           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   27859           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_complex128", __pyx_clineno, __pyx_lineno, __pyx_filename);
   27860           0 :   __Pyx_RefNannyFinishContext();
   27861           0 :   return NULL;
   27862        2961 :   __pyx_L4_argument_unpacking_done:;
   27863        2961 :   if (unlikely(((PyObject *)__pyx_v_input.memview) == Py_None)) {
   27864           0 :     PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "input"); __PYX_ERR(0, 276, __pyx_L1_error)
   27865             :   }
   27866        2961 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 0, "output", 0))) __PYX_ERR(0, 276, __pyx_L1_error)
   27867        2961 :   __pyx_r = __pyx_pf_13_csparsetools_38_lil_flatten_to_array_complex128(__pyx_self, __pyx_v_input, __pyx_v_output);
   27868             : 
   27869             :   /* function exit code */
   27870        2961 :   goto __pyx_L0;
   27871             :   __pyx_L1_error:;
   27872             :   __pyx_r = NULL;
   27873        2961 :   __pyx_L0:;
   27874        2961 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   27875             :   {
   27876        2961 :     Py_ssize_t __pyx_temp;
   27877        2961 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   27878             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   27879             :     }
   27880             :   }
   27881             :   __Pyx_RefNannyFinishContext();
   27882             :   return __pyx_r;
   27883             : }
   27884             : 
   27885        2961 : static PyObject *__pyx_pf_13_csparsetools_38_lil_flatten_to_array_complex128(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   27886        2961 :   PyObject *__pyx_v_row = 0;
   27887        2961 :   size_t __pyx_v_pos;
   27888        2961 :   Py_ssize_t __pyx_v_i;
   27889        2961 :   Py_ssize_t __pyx_v_j;
   27890        2961 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   27891        2961 :   __Pyx_Buffer __pyx_pybuffer_output;
   27892        2961 :   PyObject *__pyx_r = NULL;
   27893             :   __Pyx_RefNannyDeclarations
   27894        2961 :   Py_ssize_t __pyx_t_1;
   27895        2961 :   Py_ssize_t __pyx_t_2;
   27896        2961 :   Py_ssize_t __pyx_t_3;
   27897        2961 :   PyObject *__pyx_t_4 = NULL;
   27898        2961 :   Py_ssize_t __pyx_t_5;
   27899        2961 :   Py_ssize_t __pyx_t_6;
   27900        2961 :   Py_ssize_t __pyx_t_7;
   27901        2961 :   Py_ssize_t __pyx_t_8;
   27902        2961 :   __pyx_t_double_complex __pyx_t_9;
   27903        2961 :   size_t __pyx_t_10;
   27904        2961 :   int __pyx_lineno = 0;
   27905        2961 :   const char *__pyx_filename = NULL;
   27906        2961 :   int __pyx_clineno = 0;
   27907        2961 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_complex128", 1);
   27908        2961 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   27909        2961 :   __pyx_pybuffer_output.refcount = 0;
   27910        2961 :   __pyx_pybuffernd_output.data = NULL;
   27911        2961 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   27912             :   {
   27913        2961 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   27914        2961 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo___pyx_t_double_complex, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 274, __pyx_L1_error)
   27915             :   }
   27916        2961 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   27917             : 
   27918             :   /* "_csparsetools.pyx":278
   27919             :  * def _lil_flatten_to_array_complex128(object[:] input not None, cnp.ndarray[double complex] output not None):
   27920             :  *     cdef list row
   27921             :  *     cdef size_t pos = 0             # <<<<<<<<<<<<<<
   27922             :  *     for i in range(len(input)):
   27923             :  *         row = input[i]
   27924             :  */
   27925        2961 :   __pyx_v_pos = 0;
   27926             : 
   27927             :   /* "_csparsetools.pyx":279
   27928             :  *     cdef list row
   27929             :  *     cdef size_t pos = 0
   27930             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   27931             :  *         row = input[i]
   27932             :  *         for j in range(len(row)):
   27933             :  */
   27934        2961 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   27935        2961 :   __pyx_t_2 = __pyx_t_1;
   27936       18479 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   27937       15518 :     __pyx_v_i = __pyx_t_3;
   27938             : 
   27939             :     /* "_csparsetools.pyx":280
   27940             :  *     cdef size_t pos = 0
   27941             :  *     for i in range(len(input)):
   27942             :  *         row = input[i]             # <<<<<<<<<<<<<<
   27943             :  *         for j in range(len(row)):
   27944             :  *             output[pos] = row[j]
   27945             :  */
   27946       15518 :     __pyx_t_5 = __pyx_v_i;
   27947       15518 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   27948       15518 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   27949       15518 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   27950       15518 :     if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 280, __pyx_L1_error)
   27951       15518 :     __Pyx_XDECREF_SET(__pyx_v_row, ((PyObject*)__pyx_t_4));
   27952       15518 :     __pyx_t_4 = 0;
   27953             : 
   27954             :     /* "_csparsetools.pyx":281
   27955             :  *     for i in range(len(input)):
   27956             :  *         row = input[i]
   27957             :  *         for j in range(len(row)):             # <<<<<<<<<<<<<<
   27958             :  *             output[pos] = row[j]
   27959             :  *             pos += 1
   27960             :  */
   27961       15518 :     if (unlikely(__pyx_v_row == Py_None)) {
   27962           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   27963           0 :       __PYX_ERR(0, 281, __pyx_L1_error)
   27964             :     }
   27965       15518 :     __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 281, __pyx_L1_error)
   27966             :     __pyx_t_7 = __pyx_t_6;
   27967       37458 :     for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
   27968       21940 :       __pyx_v_j = __pyx_t_8;
   27969             : 
   27970             :       /* "_csparsetools.pyx":282
   27971             :  *         row = input[i]
   27972             :  *         for j in range(len(row)):
   27973             :  *             output[pos] = row[j]             # <<<<<<<<<<<<<<
   27974             :  *             pos += 1
   27975             :  * @cython.boundscheck(False)
   27976             :  */
   27977       21940 :       if (unlikely(__pyx_v_row == Py_None)) {
   27978             :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   27979             :         __PYX_ERR(0, 282, __pyx_L1_error)
   27980             :       }
   27981       21940 :       __pyx_t_9 = __Pyx_PyComplex_As___pyx_t_double_complex(PyList_GET_ITEM(__pyx_v_row, __pyx_v_j)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 282, __pyx_L1_error)
   27982       21940 :       __pyx_t_10 = __pyx_v_pos;
   27983       21940 :       *__Pyx_BufPtrStrided1d(__pyx_t_double_complex *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_9;
   27984             : 
   27985             :       /* "_csparsetools.pyx":283
   27986             :  *         for j in range(len(row)):
   27987             :  *             output[pos] = row[j]
   27988             :  *             pos += 1             # <<<<<<<<<<<<<<
   27989             :  * @cython.boundscheck(False)
   27990             :  * @cython.wraparound(False)
   27991             :  */
   27992       21940 :       __pyx_v_pos = (__pyx_v_pos + 1);
   27993             :     }
   27994             :   }
   27995             : 
   27996             :   /* "_csparsetools.pyx":274
   27997             :  *             output[pos] = row[j]
   27998             :  *             pos += 1
   27999             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   28000             :  * @cython.wraparound(False)
   28001             :  * def _lil_flatten_to_array_complex128(object[:] input not None, cnp.ndarray[double complex] output not None):
   28002             :  */
   28003             : 
   28004             :   /* function exit code */
   28005        2961 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   28006        2961 :   goto __pyx_L0;
   28007           0 :   __pyx_L1_error:;
   28008           0 :   __Pyx_XDECREF(__pyx_t_4);
   28009           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   28010           0 :     __Pyx_PyThreadState_declare
   28011           0 :     __Pyx_PyThreadState_assign
   28012           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   28013           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   28014           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   28015           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_complex128", __pyx_clineno, __pyx_lineno, __pyx_filename);
   28016           0 :   __pyx_r = NULL;
   28017           0 :   goto __pyx_L2;
   28018        2961 :   __pyx_L0:;
   28019        2961 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   28020        2961 :   __pyx_L2:;
   28021        2961 :   __Pyx_XDECREF(__pyx_v_row);
   28022        2961 :   __Pyx_XGIVEREF(__pyx_r);
   28023        2961 :   __Pyx_RefNannyFinishContext();
   28024        2961 :   return __pyx_r;
   28025             : }
   28026             : 
   28027             : /* "_csparsetools.pyx":284
   28028             :  *             output[pos] = row[j]
   28029             :  *             pos += 1
   28030             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   28031             :  * @cython.wraparound(False)
   28032             :  * def _lil_flatten_to_array_clongdouble(object[:] input not None, cnp.ndarray[long double complex] output not None):
   28033             :  */
   28034             : 
   28035             : /* Python wrapper */
   28036             : static PyObject *__pyx_pw_13_csparsetools_41_lil_flatten_to_array_clongdouble(PyObject *__pyx_self, 
   28037             : #if CYTHON_METH_FASTCALL
   28038             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   28039             : #else
   28040             : PyObject *__pyx_args, PyObject *__pyx_kwds
   28041             : #endif
   28042             : ); /*proto*/
   28043             : static PyMethodDef __pyx_mdef_13_csparsetools_41_lil_flatten_to_array_clongdouble = {"_lil_flatten_to_array_clongdouble", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_41_lil_flatten_to_array_clongdouble, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   28044        1964 : static PyObject *__pyx_pw_13_csparsetools_41_lil_flatten_to_array_clongdouble(PyObject *__pyx_self, 
   28045             : #if CYTHON_METH_FASTCALL
   28046             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   28047             : #else
   28048             : PyObject *__pyx_args, PyObject *__pyx_kwds
   28049             : #endif
   28050             : ) {
   28051        1964 :   __Pyx_memviewslice __pyx_v_input = { 0, 0, { 0 }, { 0 }, { 0 } };
   28052        1964 :   PyArrayObject *__pyx_v_output = 0;
   28053             :   #if !CYTHON_METH_FASTCALL
   28054             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   28055             :   #endif
   28056        1964 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   28057        1964 :   PyObject* values[2] = {0,0};
   28058        1964 :   int __pyx_lineno = 0;
   28059        1964 :   const char *__pyx_filename = NULL;
   28060        1964 :   int __pyx_clineno = 0;
   28061        1964 :   PyObject *__pyx_r = 0;
   28062             :   __Pyx_RefNannyDeclarations
   28063        1964 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_clongdouble (wrapper)", 0);
   28064             :   #if !CYTHON_METH_FASTCALL
   28065             :   #if CYTHON_ASSUME_SAFE_MACROS
   28066             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   28067             :   #else
   28068             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   28069             :   #endif
   28070             :   #endif
   28071        1964 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   28072             :   {
   28073        1964 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_output,0};
   28074        1964 :     if (__pyx_kwds) {
   28075           0 :       Py_ssize_t kw_args;
   28076           0 :       switch (__pyx_nargs) {
   28077           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   28078           0 :         CYTHON_FALLTHROUGH;
   28079           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   28080           0 :         CYTHON_FALLTHROUGH;
   28081           0 :         case  0: break;
   28082           0 :         default: goto __pyx_L5_argtuple_error;
   28083             :       }
   28084           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   28085           0 :       switch (__pyx_nargs) {
   28086             :         case  0:
   28087           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) {
   28088           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   28089           0 :           kw_args--;
   28090             :         }
   28091           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 284, __pyx_L3_error)
   28092           0 :         else goto __pyx_L5_argtuple_error;
   28093           0 :         CYTHON_FALLTHROUGH;
   28094             :         case  1:
   28095           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_output)) != 0)) {
   28096           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   28097           0 :           kw_args--;
   28098             :         }
   28099           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 284, __pyx_L3_error)
   28100             :         else {
   28101           0 :           __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_clongdouble", 1, 2, 2, 1); __PYX_ERR(0, 284, __pyx_L3_error)
   28102             :         }
   28103             :       }
   28104           0 :       if (unlikely(kw_args > 0)) {
   28105           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   28106           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_flatten_to_array_clongdouble") < 0)) __PYX_ERR(0, 284, __pyx_L3_error)
   28107             :       }
   28108        1964 :     } else if (unlikely(__pyx_nargs != 2)) {
   28109           0 :       goto __pyx_L5_argtuple_error;
   28110             :     } else {
   28111        1964 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   28112        1964 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   28113             :     }
   28114        1964 :     __pyx_v_input = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_input.memview)) __PYX_ERR(0, 286, __pyx_L3_error)
   28115        1964 :     __pyx_v_output = ((PyArrayObject *)values[1]);
   28116             :   }
   28117        1964 :   goto __pyx_L6_skip;
   28118           0 :   __pyx_L5_argtuple_error:;
   28119           0 :   __Pyx_RaiseArgtupleInvalid("_lil_flatten_to_array_clongdouble", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 284, __pyx_L3_error)
   28120        1964 :   __pyx_L6_skip:;
   28121        1964 :   goto __pyx_L4_argument_unpacking_done;
   28122           0 :   __pyx_L3_error:;
   28123             :   {
   28124           0 :     Py_ssize_t __pyx_temp;
   28125           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   28126             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   28127             :     }
   28128             :   }
   28129           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   28130           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_clongdouble", __pyx_clineno, __pyx_lineno, __pyx_filename);
   28131           0 :   __Pyx_RefNannyFinishContext();
   28132           0 :   return NULL;
   28133        1964 :   __pyx_L4_argument_unpacking_done:;
   28134        1964 :   if (unlikely(((PyObject *)__pyx_v_input.memview) == Py_None)) {
   28135           0 :     PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "input"); __PYX_ERR(0, 286, __pyx_L1_error)
   28136             :   }
   28137        1964 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output), __pyx_ptype_5numpy_ndarray, 0, "output", 0))) __PYX_ERR(0, 286, __pyx_L1_error)
   28138        1964 :   __pyx_r = __pyx_pf_13_csparsetools_40_lil_flatten_to_array_clongdouble(__pyx_self, __pyx_v_input, __pyx_v_output);
   28139             : 
   28140             :   /* function exit code */
   28141        1964 :   goto __pyx_L0;
   28142             :   __pyx_L1_error:;
   28143             :   __pyx_r = NULL;
   28144        1964 :   __pyx_L0:;
   28145        1964 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_input, 1);
   28146             :   {
   28147        1964 :     Py_ssize_t __pyx_temp;
   28148        1964 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   28149             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   28150             :     }
   28151             :   }
   28152             :   __Pyx_RefNannyFinishContext();
   28153             :   return __pyx_r;
   28154             : }
   28155             : 
   28156        1964 : static PyObject *__pyx_pf_13_csparsetools_40_lil_flatten_to_array_clongdouble(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_input, PyArrayObject *__pyx_v_output) {
   28157        1964 :   PyObject *__pyx_v_row = 0;
   28158        1964 :   size_t __pyx_v_pos;
   28159        1964 :   Py_ssize_t __pyx_v_i;
   28160        1964 :   Py_ssize_t __pyx_v_j;
   28161        1964 :   __Pyx_LocalBuf_ND __pyx_pybuffernd_output;
   28162        1964 :   __Pyx_Buffer __pyx_pybuffer_output;
   28163        1964 :   PyObject *__pyx_r = NULL;
   28164             :   __Pyx_RefNannyDeclarations
   28165        1964 :   Py_ssize_t __pyx_t_1;
   28166        1964 :   Py_ssize_t __pyx_t_2;
   28167        1964 :   Py_ssize_t __pyx_t_3;
   28168        1964 :   PyObject *__pyx_t_4 = NULL;
   28169        1964 :   Py_ssize_t __pyx_t_5;
   28170        1964 :   Py_ssize_t __pyx_t_6;
   28171        1964 :   Py_ssize_t __pyx_t_7;
   28172        1964 :   Py_ssize_t __pyx_t_8;
   28173        1964 :   __pyx_t_long_double_complex __pyx_t_9;
   28174        1964 :   size_t __pyx_t_10;
   28175        1964 :   int __pyx_lineno = 0;
   28176        1964 :   const char *__pyx_filename = NULL;
   28177        1964 :   int __pyx_clineno = 0;
   28178        1964 :   __Pyx_RefNannySetupContext("_lil_flatten_to_array_clongdouble", 1);
   28179        1964 :   __pyx_pybuffer_output.pybuffer.buf = NULL;
   28180        1964 :   __pyx_pybuffer_output.refcount = 0;
   28181        1964 :   __pyx_pybuffernd_output.data = NULL;
   28182        1964 :   __pyx_pybuffernd_output.rcbuffer = &__pyx_pybuffer_output;
   28183             :   {
   28184        1964 :     __Pyx_BufFmt_StackElem __pyx_stack[1];
   28185        1964 :     if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_output.rcbuffer->pybuffer, (PyObject*)__pyx_v_output, &__Pyx_TypeInfo___pyx_t_long_double_complex, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 284, __pyx_L1_error)
   28186             :   }
   28187        1964 :   __pyx_pybuffernd_output.diminfo[0].strides = __pyx_pybuffernd_output.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_output.diminfo[0].shape = __pyx_pybuffernd_output.rcbuffer->pybuffer.shape[0];
   28188             : 
   28189             :   /* "_csparsetools.pyx":288
   28190             :  * def _lil_flatten_to_array_clongdouble(object[:] input not None, cnp.ndarray[long double complex] output not None):
   28191             :  *     cdef list row
   28192             :  *     cdef size_t pos = 0             # <<<<<<<<<<<<<<
   28193             :  *     for i in range(len(input)):
   28194             :  *         row = input[i]
   28195             :  */
   28196        1964 :   __pyx_v_pos = 0;
   28197             : 
   28198             :   /* "_csparsetools.pyx":289
   28199             :  *     cdef list row
   28200             :  *     cdef size_t pos = 0
   28201             :  *     for i in range(len(input)):             # <<<<<<<<<<<<<<
   28202             :  *         row = input[i]
   28203             :  *         for j in range(len(row)):
   28204             :  */
   28205        1964 :   __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_input); 
   28206        1964 :   __pyx_t_2 = __pyx_t_1;
   28207       14079 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   28208       12115 :     __pyx_v_i = __pyx_t_3;
   28209             : 
   28210             :     /* "_csparsetools.pyx":290
   28211             :  *     cdef size_t pos = 0
   28212             :  *     for i in range(len(input)):
   28213             :  *         row = input[i]             # <<<<<<<<<<<<<<
   28214             :  *         for j in range(len(row)):
   28215             :  *             output[pos] = row[j]
   28216             :  */
   28217       12115 :     __pyx_t_5 = __pyx_v_i;
   28218       12115 :     __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_input.data + __pyx_t_5 * __pyx_v_input.strides[0]) ));
   28219       12115 :     if (unlikely(__pyx_t_4 == NULL)) __pyx_t_4 = Py_None;
   28220       12115 :     __Pyx_INCREF((PyObject*)__pyx_t_4);
   28221       12115 :     if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 290, __pyx_L1_error)
   28222       12115 :     __Pyx_XDECREF_SET(__pyx_v_row, ((PyObject*)__pyx_t_4));
   28223       12115 :     __pyx_t_4 = 0;
   28224             : 
   28225             :     /* "_csparsetools.pyx":291
   28226             :  *     for i in range(len(input)):
   28227             :  *         row = input[i]
   28228             :  *         for j in range(len(row)):             # <<<<<<<<<<<<<<
   28229             :  *             output[pos] = row[j]
   28230             :  *             pos += 1
   28231             :  */
   28232       12115 :     if (unlikely(__pyx_v_row == Py_None)) {
   28233           0 :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   28234           0 :       __PYX_ERR(0, 291, __pyx_L1_error)
   28235             :     }
   28236       12115 :     __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_row); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 291, __pyx_L1_error)
   28237             :     __pyx_t_7 = __pyx_t_6;
   28238       28627 :     for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
   28239       16512 :       __pyx_v_j = __pyx_t_8;
   28240             : 
   28241             :       /* "_csparsetools.pyx":292
   28242             :  *         row = input[i]
   28243             :  *         for j in range(len(row)):
   28244             :  *             output[pos] = row[j]             # <<<<<<<<<<<<<<
   28245             :  *             pos += 1
   28246             :  * 
   28247             :  */
   28248       16512 :       if (unlikely(__pyx_v_row == Py_None)) {
   28249             :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   28250             :         __PYX_ERR(0, 292, __pyx_L1_error)
   28251             :       }
   28252       16512 :       __pyx_t_9 = __Pyx_PyComplex_As___pyx_t_long_double_complex(PyList_GET_ITEM(__pyx_v_row, __pyx_v_j)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 292, __pyx_L1_error)
   28253       16512 :       __pyx_t_10 = __pyx_v_pos;
   28254       16512 :       *__Pyx_BufPtrStrided1d(__pyx_t_long_double_complex *, __pyx_pybuffernd_output.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_output.diminfo[0].strides) = __pyx_t_9;
   28255             : 
   28256             :       /* "_csparsetools.pyx":293
   28257             :  *         for j in range(len(row)):
   28258             :  *             output[pos] = row[j]
   28259             :  *             pos += 1             # <<<<<<<<<<<<<<
   28260             :  * 
   28261             :  * cdef dict _LIL_FLATTEN_TO_ARRAY_DISPATCH = {
   28262             :  */
   28263       16512 :       __pyx_v_pos = (__pyx_v_pos + 1);
   28264             :     }
   28265             :   }
   28266             : 
   28267             :   /* "_csparsetools.pyx":284
   28268             :  *             output[pos] = row[j]
   28269             :  *             pos += 1
   28270             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   28271             :  * @cython.wraparound(False)
   28272             :  * def _lil_flatten_to_array_clongdouble(object[:] input not None, cnp.ndarray[long double complex] output not None):
   28273             :  */
   28274             : 
   28275             :   /* function exit code */
   28276        1964 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   28277        1964 :   goto __pyx_L0;
   28278           0 :   __pyx_L1_error:;
   28279           0 :   __Pyx_XDECREF(__pyx_t_4);
   28280           0 :   { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
   28281           0 :     __Pyx_PyThreadState_declare
   28282           0 :     __Pyx_PyThreadState_assign
   28283           0 :     __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
   28284           0 :     __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   28285           0 :   __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
   28286           0 :   __Pyx_AddTraceback("_csparsetools._lil_flatten_to_array_clongdouble", __pyx_clineno, __pyx_lineno, __pyx_filename);
   28287           0 :   __pyx_r = NULL;
   28288           0 :   goto __pyx_L2;
   28289        1964 :   __pyx_L0:;
   28290        1964 :   __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_output.rcbuffer->pybuffer);
   28291        1964 :   __pyx_L2:;
   28292        1964 :   __Pyx_XDECREF(__pyx_v_row);
   28293        1964 :   __Pyx_XGIVEREF(__pyx_r);
   28294        1964 :   __Pyx_RefNannyFinishContext();
   28295        1964 :   return __pyx_r;
   28296             : }
   28297             : 
   28298             : /* "_csparsetools.pyx":316
   28299             :  * 
   28300             :  * 
   28301             :  * def lil_fancy_get(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   28302             :  *                   object[:] rows,
   28303             :  *                   object[:] datas,
   28304             :  */
   28305             : 
   28306             : /* Python wrapper */
   28307             : static PyObject *__pyx_pw_13_csparsetools_43lil_fancy_get(PyObject *__pyx_self, 
   28308             : #if CYTHON_METH_FASTCALL
   28309             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   28310             : #else
   28311             : PyObject *__pyx_args, PyObject *__pyx_kwds
   28312             : #endif
   28313             : ); /*proto*/
   28314             : PyDoc_STRVAR(__pyx_doc_13_csparsetools_42lil_fancy_get, "\n    Get multiple items at given indices in LIL matrix and store to\n    another LIL.\n\n    Parameters\n    ----------\n    M, N, rows, data\n        LIL matrix data, initially empty\n    new_rows, new_idx\n        Data for LIL matrix to insert to.\n        Must be preallocated to shape `i_idx.shape`!\n    i_idx, j_idx\n        Indices of elements to insert to the new LIL matrix.\n\n    ");
   28315             : static PyMethodDef __pyx_mdef_13_csparsetools_43lil_fancy_get = {"lil_fancy_get", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_43lil_fancy_get, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_13_csparsetools_42lil_fancy_get};
   28316         535 : static PyObject *__pyx_pw_13_csparsetools_43lil_fancy_get(PyObject *__pyx_self, 
   28317             : #if CYTHON_METH_FASTCALL
   28318             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   28319             : #else
   28320             : PyObject *__pyx_args, PyObject *__pyx_kwds
   28321             : #endif
   28322             : ) {
   28323         535 :   npy_intp __pyx_v_M;
   28324         535 :   npy_intp __pyx_v_N;
   28325         535 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   28326         535 :   __Pyx_memviewslice __pyx_v_datas = { 0, 0, { 0 }, { 0 }, { 0 } };
   28327         535 :   __Pyx_memviewslice __pyx_v_new_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   28328         535 :   __Pyx_memviewslice __pyx_v_new_datas = { 0, 0, { 0 }, { 0 }, { 0 } };
   28329         535 :   PyArrayObject *__pyx_v_i_idx = 0;
   28330         535 :   PyArrayObject *__pyx_v_j_idx = 0;
   28331             :   #if !CYTHON_METH_FASTCALL
   28332             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   28333             :   #endif
   28334         535 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   28335         535 :   PyObject* values[8] = {0,0,0,0,0,0,0,0};
   28336         535 :   int __pyx_lineno = 0;
   28337         535 :   const char *__pyx_filename = NULL;
   28338         535 :   int __pyx_clineno = 0;
   28339         535 :   PyObject *__pyx_r = 0;
   28340             :   __Pyx_RefNannyDeclarations
   28341         535 :   __Pyx_RefNannySetupContext("lil_fancy_get (wrapper)", 0);
   28342             :   #if !CYTHON_METH_FASTCALL
   28343             :   #if CYTHON_ASSUME_SAFE_MACROS
   28344             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   28345             :   #else
   28346             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   28347             :   #endif
   28348             :   #endif
   28349         535 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   28350             :   {
   28351         535 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_datas,&__pyx_n_s_new_rows,&__pyx_n_s_new_datas,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,0};
   28352         535 :     if (__pyx_kwds) {
   28353           0 :       Py_ssize_t kw_args;
   28354           0 :       switch (__pyx_nargs) {
   28355           0 :         case  8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
   28356           0 :         CYTHON_FALLTHROUGH;
   28357           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   28358           0 :         CYTHON_FALLTHROUGH;
   28359           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   28360           0 :         CYTHON_FALLTHROUGH;
   28361           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   28362           0 :         CYTHON_FALLTHROUGH;
   28363           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   28364           0 :         CYTHON_FALLTHROUGH;
   28365           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   28366           0 :         CYTHON_FALLTHROUGH;
   28367           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   28368           0 :         CYTHON_FALLTHROUGH;
   28369           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   28370           0 :         CYTHON_FALLTHROUGH;
   28371           0 :         case  0: break;
   28372           0 :         default: goto __pyx_L5_argtuple_error;
   28373             :       }
   28374           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   28375           0 :       switch (__pyx_nargs) {
   28376           0 :         case  0:
   28377           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   28378           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   28379           0 :           kw_args--;
   28380             :         }
   28381           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 316, __pyx_L3_error)
   28382           0 :         else goto __pyx_L5_argtuple_error;
   28383           0 :         CYTHON_FALLTHROUGH;
   28384             :         case  1:
   28385           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   28386           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   28387           0 :           kw_args--;
   28388             :         }
   28389           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 316, __pyx_L3_error)
   28390             :         else {
   28391           0 :           __Pyx_RaiseArgtupleInvalid("lil_fancy_get", 1, 8, 8, 1); __PYX_ERR(0, 316, __pyx_L3_error)
   28392             :         }
   28393           0 :         CYTHON_FALLTHROUGH;
   28394             :         case  2:
   28395           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   28396           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   28397           0 :           kw_args--;
   28398             :         }
   28399           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 316, __pyx_L3_error)
   28400             :         else {
   28401           0 :           __Pyx_RaiseArgtupleInvalid("lil_fancy_get", 1, 8, 8, 2); __PYX_ERR(0, 316, __pyx_L3_error)
   28402             :         }
   28403           0 :         CYTHON_FALLTHROUGH;
   28404             :         case  3:
   28405           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_datas)) != 0)) {
   28406           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   28407           0 :           kw_args--;
   28408             :         }
   28409           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 316, __pyx_L3_error)
   28410             :         else {
   28411           0 :           __Pyx_RaiseArgtupleInvalid("lil_fancy_get", 1, 8, 8, 3); __PYX_ERR(0, 316, __pyx_L3_error)
   28412             :         }
   28413           0 :         CYTHON_FALLTHROUGH;
   28414             :         case  4:
   28415           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_new_rows)) != 0)) {
   28416           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   28417           0 :           kw_args--;
   28418             :         }
   28419           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 316, __pyx_L3_error)
   28420             :         else {
   28421           0 :           __Pyx_RaiseArgtupleInvalid("lil_fancy_get", 1, 8, 8, 4); __PYX_ERR(0, 316, __pyx_L3_error)
   28422             :         }
   28423           0 :         CYTHON_FALLTHROUGH;
   28424             :         case  5:
   28425           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_new_datas)) != 0)) {
   28426           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   28427           0 :           kw_args--;
   28428             :         }
   28429           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 316, __pyx_L3_error)
   28430             :         else {
   28431           0 :           __Pyx_RaiseArgtupleInvalid("lil_fancy_get", 1, 8, 8, 5); __PYX_ERR(0, 316, __pyx_L3_error)
   28432             :         }
   28433           0 :         CYTHON_FALLTHROUGH;
   28434             :         case  6:
   28435           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   28436           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   28437           0 :           kw_args--;
   28438             :         }
   28439           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 316, __pyx_L3_error)
   28440             :         else {
   28441           0 :           __Pyx_RaiseArgtupleInvalid("lil_fancy_get", 1, 8, 8, 6); __PYX_ERR(0, 316, __pyx_L3_error)
   28442             :         }
   28443           0 :         CYTHON_FALLTHROUGH;
   28444             :         case  7:
   28445           0 :         if (likely((values[7] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   28446           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[7]);
   28447           0 :           kw_args--;
   28448             :         }
   28449           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 316, __pyx_L3_error)
   28450             :         else {
   28451           0 :           __Pyx_RaiseArgtupleInvalid("lil_fancy_get", 1, 8, 8, 7); __PYX_ERR(0, 316, __pyx_L3_error)
   28452             :         }
   28453             :       }
   28454           0 :       if (unlikely(kw_args > 0)) {
   28455           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   28456           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "lil_fancy_get") < 0)) __PYX_ERR(0, 316, __pyx_L3_error)
   28457             :       }
   28458         535 :     } else if (unlikely(__pyx_nargs != 8)) {
   28459           0 :       goto __pyx_L5_argtuple_error;
   28460             :     } else {
   28461         535 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   28462         535 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   28463         535 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   28464         535 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   28465         535 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   28466         535 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   28467         535 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   28468         535 :       values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
   28469             :     }
   28470         535 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 316, __pyx_L3_error)
   28471         535 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 316, __pyx_L3_error)
   28472         535 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 317, __pyx_L3_error)
   28473         535 :     __pyx_v_datas = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_datas.memview)) __PYX_ERR(0, 318, __pyx_L3_error)
   28474         535 :     __pyx_v_new_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_new_rows.memview)) __PYX_ERR(0, 319, __pyx_L3_error)
   28475         535 :     __pyx_v_new_datas = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_new_datas.memview)) __PYX_ERR(0, 320, __pyx_L3_error)
   28476         535 :     __pyx_v_i_idx = ((PyArrayObject *)values[6]);
   28477         535 :     __pyx_v_j_idx = ((PyArrayObject *)values[7]);
   28478             :   }
   28479         535 :   goto __pyx_L6_skip;
   28480           0 :   __pyx_L5_argtuple_error:;
   28481           0 :   __Pyx_RaiseArgtupleInvalid("lil_fancy_get", 1, 8, 8, __pyx_nargs); __PYX_ERR(0, 316, __pyx_L3_error)
   28482         535 :   __pyx_L6_skip:;
   28483         535 :   goto __pyx_L4_argument_unpacking_done;
   28484           0 :   __pyx_L3_error:;
   28485             :   {
   28486           0 :     Py_ssize_t __pyx_temp;
   28487           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   28488             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   28489             :     }
   28490             :   }
   28491           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   28492           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_datas, 1);
   28493           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_rows, 1);
   28494           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_datas, 1);
   28495           0 :   __Pyx_AddTraceback("_csparsetools.lil_fancy_get", __pyx_clineno, __pyx_lineno, __pyx_filename);
   28496           0 :   __Pyx_RefNannyFinishContext();
   28497           0 :   return NULL;
   28498         535 :   __pyx_L4_argument_unpacking_done:;
   28499         535 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_i_idx), __pyx_ptype_5numpy_ndarray, 1, "i_idx", 0))) __PYX_ERR(0, 321, __pyx_L1_error)
   28500         535 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_j_idx), __pyx_ptype_5numpy_ndarray, 1, "j_idx", 0))) __PYX_ERR(0, 322, __pyx_L1_error)
   28501         535 :   __pyx_r = __pyx_pf_13_csparsetools_42lil_fancy_get(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_datas, __pyx_v_new_rows, __pyx_v_new_datas, __pyx_v_i_idx, __pyx_v_j_idx);
   28502             : 
   28503             :   /* function exit code */
   28504         535 :   goto __pyx_L0;
   28505             :   __pyx_L1_error:;
   28506             :   __pyx_r = NULL;
   28507         535 :   __pyx_L0:;
   28508         535 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   28509         535 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_datas, 1);
   28510         535 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_rows, 1);
   28511         535 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_datas, 1);
   28512             :   {
   28513         535 :     Py_ssize_t __pyx_temp;
   28514         535 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   28515             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   28516             :     }
   28517             :   }
   28518             :   __Pyx_RefNannyFinishContext();
   28519             :   return __pyx_r;
   28520             : }
   28521             : 
   28522         535 : static PyObject *__pyx_pf_13_csparsetools_42lil_fancy_get(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_datas, __Pyx_memviewslice __pyx_v_new_rows, __Pyx_memviewslice __pyx_v_new_datas, PyArrayObject *__pyx_v_i_idx, PyArrayObject *__pyx_v_j_idx) {
   28523         535 :   PyObject *__pyx_r = NULL;
   28524             :   __Pyx_RefNannyDeclarations
   28525         535 :   PyObject *__pyx_t_1 = NULL;
   28526         535 :   PyObject *__pyx_t_2 = NULL;
   28527         535 :   PyObject *__pyx_t_3 = NULL;
   28528         535 :   PyObject *__pyx_t_4 = NULL;
   28529         535 :   PyObject *__pyx_t_5 = NULL;
   28530         535 :   PyObject *__pyx_t_6 = NULL;
   28531         535 :   PyObject *__pyx_t_7 = NULL;
   28532         535 :   PyObject *__pyx_t_8 = NULL;
   28533         535 :   PyObject *__pyx_t_9 = NULL;
   28534         535 :   unsigned int __pyx_t_10;
   28535         535 :   int __pyx_lineno = 0;
   28536         535 :   const char *__pyx_filename = NULL;
   28537         535 :   int __pyx_clineno = 0;
   28538         535 :   __Pyx_RefNannySetupContext("lil_fancy_get", 1);
   28539             : 
   28540             :   /* "_csparsetools.pyx":338
   28541             :  * 
   28542             :  *     """
   28543             :  *     return _LIL_FANCY_GET_DISPATCH[i_idx.dtype](M, N, rows, datas, new_rows, new_datas, i_idx, j_idx)             # <<<<<<<<<<<<<<
   28544             :  * 
   28545             :  * def _lil_fancy_get_int32(cnp.npy_intp M, cnp.npy_intp N,
   28546             :  */
   28547         535 :   __Pyx_XDECREF(__pyx_r);
   28548         535 :   if (unlikely(__pyx_v_13_csparsetools__LIL_FANCY_GET_DISPATCH == Py_None)) {
   28549           0 :     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   28550           0 :     __PYX_ERR(0, 338, __pyx_L1_error)
   28551             :   }
   28552         535 :   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i_idx), __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 338, __pyx_L1_error)
   28553         535 :   __Pyx_GOTREF(__pyx_t_2);
   28554         535 :   __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_13_csparsetools__LIL_FANCY_GET_DISPATCH, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 338, __pyx_L1_error)
   28555         535 :   __Pyx_GOTREF(__pyx_t_3);
   28556         535 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   28557         535 :   __pyx_t_2 = __Pyx_PyInt_From_npy_intp(__pyx_v_M); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 338, __pyx_L1_error)
   28558         535 :   __Pyx_GOTREF(__pyx_t_2);
   28559         535 :   __pyx_t_4 = __Pyx_PyInt_From_npy_intp(__pyx_v_N); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 338, __pyx_L1_error)
   28560         535 :   __Pyx_GOTREF(__pyx_t_4);
   28561         535 :   __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_rows, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 338, __pyx_L1_error)
   28562         535 :   __Pyx_GOTREF(__pyx_t_5);
   28563         535 :   __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_datas, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 338, __pyx_L1_error)
   28564         535 :   __Pyx_GOTREF(__pyx_t_6);
   28565         535 :   __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_v_new_rows, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 338, __pyx_L1_error)
   28566         535 :   __Pyx_GOTREF(__pyx_t_7);
   28567         535 :   __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_new_datas, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 338, __pyx_L1_error)
   28568         535 :   __Pyx_GOTREF(__pyx_t_8);
   28569         535 :   __pyx_t_9 = NULL;
   28570         535 :   __pyx_t_10 = 0;
   28571             :   #if CYTHON_UNPACK_METHODS
   28572         535 :   if (unlikely(PyMethod_Check(__pyx_t_3))) {
   28573           0 :     __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
   28574           0 :     if (likely(__pyx_t_9)) {
   28575           0 :       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
   28576           0 :       __Pyx_INCREF(__pyx_t_9);
   28577           0 :       __Pyx_INCREF(function);
   28578           0 :       __Pyx_DECREF_SET(__pyx_t_3, function);
   28579             :       __pyx_t_10 = 1;
   28580             :     }
   28581             :   }
   28582             :   #endif
   28583             :   {
   28584         535 :     PyObject *__pyx_callargs[9] = {__pyx_t_9, __pyx_t_2, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8, ((PyObject *)__pyx_v_i_idx), ((PyObject *)__pyx_v_j_idx)};
   28585         535 :     __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_10, 8+__pyx_t_10);
   28586         535 :     __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
   28587         535 :     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   28588         535 :     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   28589         535 :     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   28590         535 :     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   28591         535 :     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   28592         535 :     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
   28593         535 :     if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 338, __pyx_L1_error)
   28594         451 :     __Pyx_GOTREF(__pyx_t_1);
   28595         451 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   28596             :   }
   28597         451 :   __pyx_r = __pyx_t_1;
   28598         451 :   __pyx_t_1 = 0;
   28599         451 :   goto __pyx_L0;
   28600             : 
   28601             :   /* "_csparsetools.pyx":316
   28602             :  * 
   28603             :  * 
   28604             :  * def lil_fancy_get(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   28605             :  *                   object[:] rows,
   28606             :  *                   object[:] datas,
   28607             :  */
   28608             : 
   28609             :   /* function exit code */
   28610          84 :   __pyx_L1_error:;
   28611          84 :   __Pyx_XDECREF(__pyx_t_1);
   28612          84 :   __Pyx_XDECREF(__pyx_t_2);
   28613          84 :   __Pyx_XDECREF(__pyx_t_3);
   28614          84 :   __Pyx_XDECREF(__pyx_t_4);
   28615          84 :   __Pyx_XDECREF(__pyx_t_5);
   28616          84 :   __Pyx_XDECREF(__pyx_t_6);
   28617          84 :   __Pyx_XDECREF(__pyx_t_7);
   28618          84 :   __Pyx_XDECREF(__pyx_t_8);
   28619          84 :   __Pyx_XDECREF(__pyx_t_9);
   28620          84 :   __Pyx_AddTraceback("_csparsetools.lil_fancy_get", __pyx_clineno, __pyx_lineno, __pyx_filename);
   28621          84 :   __pyx_r = NULL;
   28622         535 :   __pyx_L0:;
   28623         535 :   __Pyx_XGIVEREF(__pyx_r);
   28624         535 :   __Pyx_RefNannyFinishContext();
   28625         535 :   return __pyx_r;
   28626             : }
   28627             : 
   28628             : /* "_csparsetools.pyx":340
   28629             :  *     return _LIL_FANCY_GET_DISPATCH[i_idx.dtype](M, N, rows, datas, new_rows, new_datas, i_idx, j_idx)
   28630             :  * 
   28631             :  * def _lil_fancy_get_int32(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   28632             :  *                             object[:] rows,
   28633             :  *                             object[:] datas,
   28634             :  */
   28635             : 
   28636             : /* Python wrapper */
   28637             : static PyObject *__pyx_pw_13_csparsetools_45_lil_fancy_get_int32(PyObject *__pyx_self, 
   28638             : #if CYTHON_METH_FASTCALL
   28639             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   28640             : #else
   28641             : PyObject *__pyx_args, PyObject *__pyx_kwds
   28642             : #endif
   28643             : ); /*proto*/
   28644             : static PyMethodDef __pyx_mdef_13_csparsetools_45_lil_fancy_get_int32 = {"_lil_fancy_get_int32", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_45_lil_fancy_get_int32, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   28645          10 : static PyObject *__pyx_pw_13_csparsetools_45_lil_fancy_get_int32(PyObject *__pyx_self, 
   28646             : #if CYTHON_METH_FASTCALL
   28647             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   28648             : #else
   28649             : PyObject *__pyx_args, PyObject *__pyx_kwds
   28650             : #endif
   28651             : ) {
   28652          10 :   npy_intp __pyx_v_M;
   28653          10 :   npy_intp __pyx_v_N;
   28654          10 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   28655          10 :   __Pyx_memviewslice __pyx_v_datas = { 0, 0, { 0 }, { 0 }, { 0 } };
   28656          10 :   __Pyx_memviewslice __pyx_v_new_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   28657          10 :   __Pyx_memviewslice __pyx_v_new_datas = { 0, 0, { 0 }, { 0 }, { 0 } };
   28658          10 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   28659          10 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   28660             :   #if !CYTHON_METH_FASTCALL
   28661             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   28662             :   #endif
   28663          10 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   28664          10 :   PyObject* values[8] = {0,0,0,0,0,0,0,0};
   28665          10 :   int __pyx_lineno = 0;
   28666          10 :   const char *__pyx_filename = NULL;
   28667          10 :   int __pyx_clineno = 0;
   28668          10 :   PyObject *__pyx_r = 0;
   28669             :   __Pyx_RefNannyDeclarations
   28670          10 :   __Pyx_RefNannySetupContext("_lil_fancy_get_int32 (wrapper)", 0);
   28671             :   #if !CYTHON_METH_FASTCALL
   28672             :   #if CYTHON_ASSUME_SAFE_MACROS
   28673             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   28674             :   #else
   28675             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   28676             :   #endif
   28677             :   #endif
   28678          10 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   28679             :   {
   28680          10 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_datas,&__pyx_n_s_new_rows,&__pyx_n_s_new_datas,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,0};
   28681          10 :     if (__pyx_kwds) {
   28682           0 :       Py_ssize_t kw_args;
   28683           0 :       switch (__pyx_nargs) {
   28684           0 :         case  8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
   28685           0 :         CYTHON_FALLTHROUGH;
   28686           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   28687           0 :         CYTHON_FALLTHROUGH;
   28688           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   28689           0 :         CYTHON_FALLTHROUGH;
   28690           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   28691           0 :         CYTHON_FALLTHROUGH;
   28692           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   28693           0 :         CYTHON_FALLTHROUGH;
   28694           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   28695           0 :         CYTHON_FALLTHROUGH;
   28696           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   28697           0 :         CYTHON_FALLTHROUGH;
   28698           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   28699           0 :         CYTHON_FALLTHROUGH;
   28700           0 :         case  0: break;
   28701           0 :         default: goto __pyx_L5_argtuple_error;
   28702             :       }
   28703           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   28704           0 :       switch (__pyx_nargs) {
   28705           0 :         case  0:
   28706           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   28707           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   28708           0 :           kw_args--;
   28709             :         }
   28710           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 340, __pyx_L3_error)
   28711           0 :         else goto __pyx_L5_argtuple_error;
   28712           0 :         CYTHON_FALLTHROUGH;
   28713             :         case  1:
   28714           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   28715           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   28716           0 :           kw_args--;
   28717             :         }
   28718           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 340, __pyx_L3_error)
   28719             :         else {
   28720           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_get_int32", 1, 8, 8, 1); __PYX_ERR(0, 340, __pyx_L3_error)
   28721             :         }
   28722           0 :         CYTHON_FALLTHROUGH;
   28723             :         case  2:
   28724           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   28725           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   28726           0 :           kw_args--;
   28727             :         }
   28728           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 340, __pyx_L3_error)
   28729             :         else {
   28730           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_get_int32", 1, 8, 8, 2); __PYX_ERR(0, 340, __pyx_L3_error)
   28731             :         }
   28732           0 :         CYTHON_FALLTHROUGH;
   28733             :         case  3:
   28734           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_datas)) != 0)) {
   28735           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   28736           0 :           kw_args--;
   28737             :         }
   28738           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 340, __pyx_L3_error)
   28739             :         else {
   28740           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_get_int32", 1, 8, 8, 3); __PYX_ERR(0, 340, __pyx_L3_error)
   28741             :         }
   28742           0 :         CYTHON_FALLTHROUGH;
   28743             :         case  4:
   28744           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_new_rows)) != 0)) {
   28745           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   28746           0 :           kw_args--;
   28747             :         }
   28748           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 340, __pyx_L3_error)
   28749             :         else {
   28750           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_get_int32", 1, 8, 8, 4); __PYX_ERR(0, 340, __pyx_L3_error)
   28751             :         }
   28752           0 :         CYTHON_FALLTHROUGH;
   28753             :         case  5:
   28754           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_new_datas)) != 0)) {
   28755           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   28756           0 :           kw_args--;
   28757             :         }
   28758           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 340, __pyx_L3_error)
   28759             :         else {
   28760           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_get_int32", 1, 8, 8, 5); __PYX_ERR(0, 340, __pyx_L3_error)
   28761             :         }
   28762           0 :         CYTHON_FALLTHROUGH;
   28763             :         case  6:
   28764           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   28765           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   28766           0 :           kw_args--;
   28767             :         }
   28768           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 340, __pyx_L3_error)
   28769             :         else {
   28770           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_get_int32", 1, 8, 8, 6); __PYX_ERR(0, 340, __pyx_L3_error)
   28771             :         }
   28772           0 :         CYTHON_FALLTHROUGH;
   28773             :         case  7:
   28774           0 :         if (likely((values[7] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   28775           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[7]);
   28776           0 :           kw_args--;
   28777             :         }
   28778           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 340, __pyx_L3_error)
   28779             :         else {
   28780           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_get_int32", 1, 8, 8, 7); __PYX_ERR(0, 340, __pyx_L3_error)
   28781             :         }
   28782             :       }
   28783           0 :       if (unlikely(kw_args > 0)) {
   28784           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   28785           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_get_int32") < 0)) __PYX_ERR(0, 340, __pyx_L3_error)
   28786             :       }
   28787          10 :     } else if (unlikely(__pyx_nargs != 8)) {
   28788           0 :       goto __pyx_L5_argtuple_error;
   28789             :     } else {
   28790          10 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   28791          10 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   28792          10 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   28793          10 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   28794          10 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   28795          10 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   28796          10 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   28797          10 :       values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
   28798             :     }
   28799          10 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 340, __pyx_L3_error)
   28800          10 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 340, __pyx_L3_error)
   28801          10 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 341, __pyx_L3_error)
   28802          10 :     __pyx_v_datas = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_datas.memview)) __PYX_ERR(0, 342, __pyx_L3_error)
   28803          10 :     __pyx_v_new_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_new_rows.memview)) __PYX_ERR(0, 343, __pyx_L3_error)
   28804          10 :     __pyx_v_new_datas = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_new_datas.memview)) __PYX_ERR(0, 344, __pyx_L3_error)
   28805          10 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 345, __pyx_L3_error)
   28806          10 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[7], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 346, __pyx_L3_error)
   28807             :   }
   28808          10 :   goto __pyx_L6_skip;
   28809           0 :   __pyx_L5_argtuple_error:;
   28810           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_get_int32", 1, 8, 8, __pyx_nargs); __PYX_ERR(0, 340, __pyx_L3_error)
   28811          10 :   __pyx_L6_skip:;
   28812          10 :   goto __pyx_L4_argument_unpacking_done;
   28813           0 :   __pyx_L3_error:;
   28814             :   {
   28815           0 :     Py_ssize_t __pyx_temp;
   28816           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   28817             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   28818             :     }
   28819             :   }
   28820           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   28821           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_datas, 1);
   28822           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_rows, 1);
   28823           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_datas, 1);
   28824           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   28825           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   28826           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_get_int32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   28827           0 :   __Pyx_RefNannyFinishContext();
   28828           0 :   return NULL;
   28829          10 :   __pyx_L4_argument_unpacking_done:;
   28830          10 :   __pyx_r = __pyx_pf_13_csparsetools_44_lil_fancy_get_int32(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_datas, __pyx_v_new_rows, __pyx_v_new_datas, __pyx_v_i_idx, __pyx_v_j_idx);
   28831             : 
   28832             :   /* function exit code */
   28833          10 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   28834          10 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_datas, 1);
   28835          10 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_rows, 1);
   28836          10 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_datas, 1);
   28837          10 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   28838          10 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   28839             :   {
   28840          10 :     Py_ssize_t __pyx_temp;
   28841          10 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   28842             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   28843             :     }
   28844             :   }
   28845             :   __Pyx_RefNannyFinishContext();
   28846             :   return __pyx_r;
   28847             : }
   28848             : 
   28849          10 : static PyObject *__pyx_pf_13_csparsetools_44_lil_fancy_get_int32(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_datas, __Pyx_memviewslice __pyx_v_new_rows, __Pyx_memviewslice __pyx_v_new_datas, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx) {
   28850          10 :   npy_intp __pyx_v_x;
   28851          10 :   npy_intp __pyx_v_y;
   28852          10 :   npy_intp __pyx_v_i;
   28853          10 :   npy_intp __pyx_v_j;
   28854          10 :   PyObject *__pyx_v_value = 0;
   28855          10 :   PyObject *__pyx_v_new_row = 0;
   28856          10 :   PyObject *__pyx_v_new_data = 0;
   28857          10 :   PyObject *__pyx_r = NULL;
   28858             :   __Pyx_RefNannyDeclarations
   28859          10 :   Py_ssize_t __pyx_t_1;
   28860          10 :   Py_ssize_t __pyx_t_2;
   28861          10 :   npy_intp __pyx_t_3;
   28862          10 :   PyObject *__pyx_t_4 = NULL;
   28863          10 :   Py_ssize_t __pyx_t_5;
   28864          10 :   Py_ssize_t __pyx_t_6;
   28865          10 :   npy_intp __pyx_t_7;
   28866          10 :   Py_ssize_t __pyx_t_8;
   28867          10 :   Py_ssize_t __pyx_t_9;
   28868          10 :   int __pyx_t_10;
   28869          10 :   int __pyx_t_11;
   28870          10 :   int __pyx_t_12;
   28871          10 :   PyObject **__pyx_t_13;
   28872          10 :   int __pyx_lineno = 0;
   28873          10 :   const char *__pyx_filename = NULL;
   28874          10 :   int __pyx_clineno = 0;
   28875          10 :   __Pyx_RefNannySetupContext("_lil_fancy_get_int32", 1);
   28876             : 
   28877             :   /* "_csparsetools.pyx":353
   28878             :  *     cdef list new_data
   28879             :  * 
   28880             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   28881             :  *         new_row = []
   28882             :  *         new_data = []
   28883             :  */
   28884          10 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   28885          10 :   __pyx_t_2 = __pyx_t_1;
   28886          20 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   28887          10 :     __pyx_v_x = __pyx_t_3;
   28888             : 
   28889             :     /* "_csparsetools.pyx":354
   28890             :  * 
   28891             :  *     for x in range(i_idx.shape[0]):
   28892             :  *         new_row = []             # <<<<<<<<<<<<<<
   28893             :  *         new_data = []
   28894             :  * 
   28895             :  */
   28896          10 :     __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 354, __pyx_L1_error)
   28897          10 :     __Pyx_GOTREF(__pyx_t_4);
   28898          10 :     __Pyx_XDECREF_SET(__pyx_v_new_row, ((PyObject*)__pyx_t_4));
   28899          10 :     __pyx_t_4 = 0;
   28900             : 
   28901             :     /* "_csparsetools.pyx":355
   28902             :  *     for x in range(i_idx.shape[0]):
   28903             :  *         new_row = []
   28904             :  *         new_data = []             # <<<<<<<<<<<<<<
   28905             :  * 
   28906             :  *         for y in range(i_idx.shape[1]):
   28907             :  */
   28908          10 :     __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 355, __pyx_L1_error)
   28909          10 :     __Pyx_GOTREF(__pyx_t_4);
   28910          10 :     __Pyx_XDECREF_SET(__pyx_v_new_data, ((PyObject*)__pyx_t_4));
   28911          10 :     __pyx_t_4 = 0;
   28912             : 
   28913             :     /* "_csparsetools.pyx":357
   28914             :  *         new_data = []
   28915             :  * 
   28916             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   28917             :  *             i = i_idx[x,y]
   28918             :  *             j = j_idx[x,y]
   28919             :  */
   28920          10 :     __pyx_t_5 = (__pyx_v_i_idx.shape[1]);
   28921          10 :     __pyx_t_6 = __pyx_t_5;
   28922         330 :     for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
   28923         310 :       __pyx_v_y = __pyx_t_7;
   28924             : 
   28925             :       /* "_csparsetools.pyx":358
   28926             :  * 
   28927             :  *         for y in range(i_idx.shape[1]):
   28928             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   28929             :  *             j = j_idx[x,y]
   28930             :  * 
   28931             :  */
   28932         310 :       __pyx_t_8 = __pyx_v_x;
   28933         310 :       __pyx_t_9 = __pyx_v_y;
   28934         310 :       __pyx_t_10 = -1;
   28935         310 :       if (__pyx_t_8 < 0) {
   28936             :         __pyx_t_8 += __pyx_v_i_idx.shape[0];
   28937             :         if (unlikely(__pyx_t_8 < 0)) __pyx_t_10 = 0;
   28938             :       } else if (unlikely(__pyx_t_8 >= __pyx_v_i_idx.shape[0])) __pyx_t_10 = 0;
   28939         310 :       if (__pyx_t_9 < 0) {
   28940             :         __pyx_t_9 += __pyx_v_i_idx.shape[1];
   28941             :         if (unlikely(__pyx_t_9 < 0)) __pyx_t_10 = 1;
   28942             :       } else if (unlikely(__pyx_t_9 >= __pyx_v_i_idx.shape[1])) __pyx_t_10 = 1;
   28943         310 :       if (unlikely(__pyx_t_10 != -1)) {
   28944             :         __Pyx_RaiseBufferIndexError(__pyx_t_10);
   28945             :         __PYX_ERR(0, 358, __pyx_L1_error)
   28946             :       }
   28947         310 :       __pyx_v_i = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_8 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_9 * __pyx_v_i_idx.strides[1]) )));
   28948             : 
   28949             :       /* "_csparsetools.pyx":359
   28950             :  *         for y in range(i_idx.shape[1]):
   28951             :  *             i = i_idx[x,y]
   28952             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   28953             :  * 
   28954             :  *             value = lil_get1(M, N, rows, datas, i, j)
   28955             :  */
   28956         310 :       __pyx_t_9 = __pyx_v_x;
   28957         310 :       __pyx_t_8 = __pyx_v_y;
   28958         310 :       __pyx_t_10 = -1;
   28959         310 :       if (__pyx_t_9 < 0) {
   28960             :         __pyx_t_9 += __pyx_v_j_idx.shape[0];
   28961             :         if (unlikely(__pyx_t_9 < 0)) __pyx_t_10 = 0;
   28962         310 :       } else if (unlikely(__pyx_t_9 >= __pyx_v_j_idx.shape[0])) __pyx_t_10 = 0;
   28963         310 :       if (__pyx_t_8 < 0) {
   28964             :         __pyx_t_8 += __pyx_v_j_idx.shape[1];
   28965             :         if (unlikely(__pyx_t_8 < 0)) __pyx_t_10 = 1;
   28966         310 :       } else if (unlikely(__pyx_t_8 >= __pyx_v_j_idx.shape[1])) __pyx_t_10 = 1;
   28967         310 :       if (unlikely(__pyx_t_10 != -1)) {
   28968           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_10);
   28969           0 :         __PYX_ERR(0, 359, __pyx_L1_error)
   28970             :       }
   28971         310 :       __pyx_v_j = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_9 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_j_idx.strides[1]) )));
   28972             : 
   28973             :       /* "_csparsetools.pyx":361
   28974             :  *             j = j_idx[x,y]
   28975             :  * 
   28976             :  *             value = lil_get1(M, N, rows, datas, i, j)             # <<<<<<<<<<<<<<
   28977             :  * 
   28978             :  *             if value is not 0:
   28979             :  */
   28980         310 :       __pyx_t_4 = __pyx_f_13_csparsetools_lil_get1(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_datas, __pyx_v_i, __pyx_v_j, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 361, __pyx_L1_error)
   28981         310 :       __Pyx_GOTREF(__pyx_t_4);
   28982         310 :       __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_4);
   28983         310 :       __pyx_t_4 = 0;
   28984             : 
   28985             :       /* "_csparsetools.pyx":363
   28986             :  *             value = lil_get1(M, N, rows, datas, i, j)
   28987             :  * 
   28988             :  *             if value is not 0:             # <<<<<<<<<<<<<<
   28989             :  *                 # Object identity as shortcut
   28990             :  *                 new_row.append(y)
   28991             :  */
   28992         310 :       __pyx_t_11 = (__pyx_v_value != __pyx_int_0);
   28993         310 :       if (__pyx_t_11) {
   28994             : 
   28995             :         /* "_csparsetools.pyx":365
   28996             :  *             if value is not 0:
   28997             :  *                 # Object identity as shortcut
   28998             :  *                 new_row.append(y)             # <<<<<<<<<<<<<<
   28999             :  *                 new_data.append(value)
   29000             :  * 
   29001             :  */
   29002         305 :         __pyx_t_4 = __Pyx_PyInt_From_npy_intp(__pyx_v_y); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 365, __pyx_L1_error)
   29003         305 :         __Pyx_GOTREF(__pyx_t_4);
   29004         305 :         __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_new_row, __pyx_t_4); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 365, __pyx_L1_error)
   29005         305 :         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   29006             : 
   29007             :         /* "_csparsetools.pyx":366
   29008             :  *                 # Object identity as shortcut
   29009             :  *                 new_row.append(y)
   29010             :  *                 new_data.append(value)             # <<<<<<<<<<<<<<
   29011             :  * 
   29012             :  *         new_rows[x] = new_row
   29013             :  */
   29014         305 :         __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_new_data, __pyx_v_value); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 366, __pyx_L1_error)
   29015             : 
   29016             :         /* "_csparsetools.pyx":363
   29017             :  *             value = lil_get1(M, N, rows, datas, i, j)
   29018             :  * 
   29019             :  *             if value is not 0:             # <<<<<<<<<<<<<<
   29020             :  *                 # Object identity as shortcut
   29021             :  *                 new_row.append(y)
   29022             :  */
   29023             :       }
   29024             :     }
   29025             : 
   29026             :     /* "_csparsetools.pyx":368
   29027             :  *                 new_data.append(value)
   29028             :  * 
   29029             :  *         new_rows[x] = new_row             # <<<<<<<<<<<<<<
   29030             :  *         new_datas[x] = new_data
   29031             :  * def _lil_fancy_get_int64(cnp.npy_intp M, cnp.npy_intp N,
   29032             :  */
   29033          10 :     __pyx_t_8 = __pyx_v_x;
   29034          10 :     __pyx_t_10 = -1;
   29035          10 :     if (__pyx_t_8 < 0) {
   29036             :       __pyx_t_8 += __pyx_v_new_rows.shape[0];
   29037             :       if (unlikely(__pyx_t_8 < 0)) __pyx_t_10 = 0;
   29038          10 :     } else if (unlikely(__pyx_t_8 >= __pyx_v_new_rows.shape[0])) __pyx_t_10 = 0;
   29039          10 :     if (unlikely(__pyx_t_10 != -1)) {
   29040           0 :       __Pyx_RaiseBufferIndexError(__pyx_t_10);
   29041           0 :       __PYX_ERR(0, 368, __pyx_L1_error)
   29042             :     }
   29043          10 :     __pyx_t_13 = ((PyObject * *) ( /* dim=0 */ (__pyx_v_new_rows.data + __pyx_t_8 * __pyx_v_new_rows.strides[0]) ));
   29044          10 :     __Pyx_XGOTREF(*__pyx_t_13);
   29045          20 :     __Pyx_INCREF(__pyx_v_new_row); __Pyx_XDECREF(*__pyx_t_13);
   29046          10 :     *__pyx_t_13 = __pyx_v_new_row;
   29047          10 :     __Pyx_XGIVEREF(*__pyx_t_13);
   29048             : 
   29049             :     /* "_csparsetools.pyx":369
   29050             :  * 
   29051             :  *         new_rows[x] = new_row
   29052             :  *         new_datas[x] = new_data             # <<<<<<<<<<<<<<
   29053             :  * def _lil_fancy_get_int64(cnp.npy_intp M, cnp.npy_intp N,
   29054             :  *                             object[:] rows,
   29055             :  */
   29056          10 :     __pyx_t_8 = __pyx_v_x;
   29057          10 :     __pyx_t_10 = -1;
   29058          10 :     if (__pyx_t_8 < 0) {
   29059             :       __pyx_t_8 += __pyx_v_new_datas.shape[0];
   29060             :       if (unlikely(__pyx_t_8 < 0)) __pyx_t_10 = 0;
   29061          10 :     } else if (unlikely(__pyx_t_8 >= __pyx_v_new_datas.shape[0])) __pyx_t_10 = 0;
   29062          10 :     if (unlikely(__pyx_t_10 != -1)) {
   29063           0 :       __Pyx_RaiseBufferIndexError(__pyx_t_10);
   29064           0 :       __PYX_ERR(0, 369, __pyx_L1_error)
   29065             :     }
   29066          10 :     __pyx_t_13 = ((PyObject * *) ( /* dim=0 */ (__pyx_v_new_datas.data + __pyx_t_8 * __pyx_v_new_datas.strides[0]) ));
   29067          10 :     __Pyx_XGOTREF(*__pyx_t_13);
   29068          20 :     __Pyx_INCREF(__pyx_v_new_data); __Pyx_XDECREF(*__pyx_t_13);
   29069          10 :     *__pyx_t_13 = __pyx_v_new_data;
   29070          10 :     __Pyx_XGIVEREF(*__pyx_t_13);
   29071             :   }
   29072             : 
   29073             :   /* "_csparsetools.pyx":340
   29074             :  *     return _LIL_FANCY_GET_DISPATCH[i_idx.dtype](M, N, rows, datas, new_rows, new_datas, i_idx, j_idx)
   29075             :  * 
   29076             :  * def _lil_fancy_get_int32(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   29077             :  *                             object[:] rows,
   29078             :  *                             object[:] datas,
   29079             :  */
   29080             : 
   29081             :   /* function exit code */
   29082          10 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   29083          10 :   goto __pyx_L0;
   29084           0 :   __pyx_L1_error:;
   29085           0 :   __Pyx_XDECREF(__pyx_t_4);
   29086           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_get_int32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   29087           0 :   __pyx_r = NULL;
   29088          10 :   __pyx_L0:;
   29089          10 :   __Pyx_XDECREF(__pyx_v_value);
   29090          10 :   __Pyx_XDECREF(__pyx_v_new_row);
   29091          10 :   __Pyx_XDECREF(__pyx_v_new_data);
   29092          10 :   __Pyx_XGIVEREF(__pyx_r);
   29093          10 :   __Pyx_RefNannyFinishContext();
   29094          10 :   return __pyx_r;
   29095             : }
   29096             : 
   29097             : /* "_csparsetools.pyx":370
   29098             :  *         new_rows[x] = new_row
   29099             :  *         new_datas[x] = new_data
   29100             :  * def _lil_fancy_get_int64(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   29101             :  *                             object[:] rows,
   29102             :  *                             object[:] datas,
   29103             :  */
   29104             : 
   29105             : /* Python wrapper */
   29106             : static PyObject *__pyx_pw_13_csparsetools_47_lil_fancy_get_int64(PyObject *__pyx_self, 
   29107             : #if CYTHON_METH_FASTCALL
   29108             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   29109             : #else
   29110             : PyObject *__pyx_args, PyObject *__pyx_kwds
   29111             : #endif
   29112             : ); /*proto*/
   29113             : static PyMethodDef __pyx_mdef_13_csparsetools_47_lil_fancy_get_int64 = {"_lil_fancy_get_int64", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_47_lil_fancy_get_int64, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   29114         525 : static PyObject *__pyx_pw_13_csparsetools_47_lil_fancy_get_int64(PyObject *__pyx_self, 
   29115             : #if CYTHON_METH_FASTCALL
   29116             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   29117             : #else
   29118             : PyObject *__pyx_args, PyObject *__pyx_kwds
   29119             : #endif
   29120             : ) {
   29121         525 :   npy_intp __pyx_v_M;
   29122         525 :   npy_intp __pyx_v_N;
   29123         525 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   29124         525 :   __Pyx_memviewslice __pyx_v_datas = { 0, 0, { 0 }, { 0 }, { 0 } };
   29125         525 :   __Pyx_memviewslice __pyx_v_new_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   29126         525 :   __Pyx_memviewslice __pyx_v_new_datas = { 0, 0, { 0 }, { 0 }, { 0 } };
   29127         525 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   29128         525 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   29129             :   #if !CYTHON_METH_FASTCALL
   29130             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   29131             :   #endif
   29132         525 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   29133         525 :   PyObject* values[8] = {0,0,0,0,0,0,0,0};
   29134         525 :   int __pyx_lineno = 0;
   29135         525 :   const char *__pyx_filename = NULL;
   29136         525 :   int __pyx_clineno = 0;
   29137         525 :   PyObject *__pyx_r = 0;
   29138             :   __Pyx_RefNannyDeclarations
   29139         525 :   __Pyx_RefNannySetupContext("_lil_fancy_get_int64 (wrapper)", 0);
   29140             :   #if !CYTHON_METH_FASTCALL
   29141             :   #if CYTHON_ASSUME_SAFE_MACROS
   29142             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   29143             :   #else
   29144             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   29145             :   #endif
   29146             :   #endif
   29147         525 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   29148             :   {
   29149         525 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_datas,&__pyx_n_s_new_rows,&__pyx_n_s_new_datas,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,0};
   29150         525 :     if (__pyx_kwds) {
   29151           0 :       Py_ssize_t kw_args;
   29152           0 :       switch (__pyx_nargs) {
   29153           0 :         case  8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
   29154           0 :         CYTHON_FALLTHROUGH;
   29155           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   29156           0 :         CYTHON_FALLTHROUGH;
   29157           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   29158           0 :         CYTHON_FALLTHROUGH;
   29159           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   29160           0 :         CYTHON_FALLTHROUGH;
   29161           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   29162           0 :         CYTHON_FALLTHROUGH;
   29163           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   29164           0 :         CYTHON_FALLTHROUGH;
   29165           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   29166           0 :         CYTHON_FALLTHROUGH;
   29167           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   29168           0 :         CYTHON_FALLTHROUGH;
   29169           0 :         case  0: break;
   29170           0 :         default: goto __pyx_L5_argtuple_error;
   29171             :       }
   29172           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   29173           0 :       switch (__pyx_nargs) {
   29174           0 :         case  0:
   29175           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   29176           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   29177           0 :           kw_args--;
   29178             :         }
   29179           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 370, __pyx_L3_error)
   29180           0 :         else goto __pyx_L5_argtuple_error;
   29181           0 :         CYTHON_FALLTHROUGH;
   29182             :         case  1:
   29183           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   29184           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   29185           0 :           kw_args--;
   29186             :         }
   29187           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 370, __pyx_L3_error)
   29188             :         else {
   29189           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_get_int64", 1, 8, 8, 1); __PYX_ERR(0, 370, __pyx_L3_error)
   29190             :         }
   29191           0 :         CYTHON_FALLTHROUGH;
   29192             :         case  2:
   29193           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   29194           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   29195           0 :           kw_args--;
   29196             :         }
   29197           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 370, __pyx_L3_error)
   29198             :         else {
   29199           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_get_int64", 1, 8, 8, 2); __PYX_ERR(0, 370, __pyx_L3_error)
   29200             :         }
   29201           0 :         CYTHON_FALLTHROUGH;
   29202             :         case  3:
   29203           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_datas)) != 0)) {
   29204           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   29205           0 :           kw_args--;
   29206             :         }
   29207           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 370, __pyx_L3_error)
   29208             :         else {
   29209           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_get_int64", 1, 8, 8, 3); __PYX_ERR(0, 370, __pyx_L3_error)
   29210             :         }
   29211           0 :         CYTHON_FALLTHROUGH;
   29212             :         case  4:
   29213           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_new_rows)) != 0)) {
   29214           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   29215           0 :           kw_args--;
   29216             :         }
   29217           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 370, __pyx_L3_error)
   29218             :         else {
   29219           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_get_int64", 1, 8, 8, 4); __PYX_ERR(0, 370, __pyx_L3_error)
   29220             :         }
   29221           0 :         CYTHON_FALLTHROUGH;
   29222             :         case  5:
   29223           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_new_datas)) != 0)) {
   29224           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   29225           0 :           kw_args--;
   29226             :         }
   29227           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 370, __pyx_L3_error)
   29228             :         else {
   29229           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_get_int64", 1, 8, 8, 5); __PYX_ERR(0, 370, __pyx_L3_error)
   29230             :         }
   29231           0 :         CYTHON_FALLTHROUGH;
   29232             :         case  6:
   29233           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   29234           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   29235           0 :           kw_args--;
   29236             :         }
   29237           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 370, __pyx_L3_error)
   29238             :         else {
   29239           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_get_int64", 1, 8, 8, 6); __PYX_ERR(0, 370, __pyx_L3_error)
   29240             :         }
   29241           0 :         CYTHON_FALLTHROUGH;
   29242             :         case  7:
   29243           0 :         if (likely((values[7] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   29244           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[7]);
   29245           0 :           kw_args--;
   29246             :         }
   29247           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 370, __pyx_L3_error)
   29248             :         else {
   29249           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_get_int64", 1, 8, 8, 7); __PYX_ERR(0, 370, __pyx_L3_error)
   29250             :         }
   29251             :       }
   29252           0 :       if (unlikely(kw_args > 0)) {
   29253           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   29254           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_get_int64") < 0)) __PYX_ERR(0, 370, __pyx_L3_error)
   29255             :       }
   29256         525 :     } else if (unlikely(__pyx_nargs != 8)) {
   29257           0 :       goto __pyx_L5_argtuple_error;
   29258             :     } else {
   29259         525 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   29260         525 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   29261         525 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   29262         525 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   29263         525 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   29264         525 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   29265         525 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   29266         525 :       values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7);
   29267             :     }
   29268         525 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 370, __pyx_L3_error)
   29269         525 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 370, __pyx_L3_error)
   29270         525 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 371, __pyx_L3_error)
   29271         525 :     __pyx_v_datas = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_datas.memview)) __PYX_ERR(0, 372, __pyx_L3_error)
   29272         525 :     __pyx_v_new_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_new_rows.memview)) __PYX_ERR(0, 373, __pyx_L3_error)
   29273         525 :     __pyx_v_new_datas = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_new_datas.memview)) __PYX_ERR(0, 374, __pyx_L3_error)
   29274         525 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 375, __pyx_L3_error)
   29275         525 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[7], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 376, __pyx_L3_error)
   29276             :   }
   29277         525 :   goto __pyx_L6_skip;
   29278           0 :   __pyx_L5_argtuple_error:;
   29279           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_get_int64", 1, 8, 8, __pyx_nargs); __PYX_ERR(0, 370, __pyx_L3_error)
   29280         525 :   __pyx_L6_skip:;
   29281         525 :   goto __pyx_L4_argument_unpacking_done;
   29282           0 :   __pyx_L3_error:;
   29283             :   {
   29284           0 :     Py_ssize_t __pyx_temp;
   29285           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   29286             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   29287             :     }
   29288             :   }
   29289           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   29290           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_datas, 1);
   29291           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_rows, 1);
   29292           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_datas, 1);
   29293           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   29294           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   29295           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_get_int64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   29296           0 :   __Pyx_RefNannyFinishContext();
   29297           0 :   return NULL;
   29298         525 :   __pyx_L4_argument_unpacking_done:;
   29299         525 :   __pyx_r = __pyx_pf_13_csparsetools_46_lil_fancy_get_int64(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_datas, __pyx_v_new_rows, __pyx_v_new_datas, __pyx_v_i_idx, __pyx_v_j_idx);
   29300             : 
   29301             :   /* function exit code */
   29302         525 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   29303         525 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_datas, 1);
   29304         525 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_rows, 1);
   29305         525 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_datas, 1);
   29306         525 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   29307         525 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   29308             :   {
   29309         525 :     Py_ssize_t __pyx_temp;
   29310         525 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   29311             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   29312             :     }
   29313             :   }
   29314             :   __Pyx_RefNannyFinishContext();
   29315             :   return __pyx_r;
   29316             : }
   29317             : 
   29318         525 : static PyObject *__pyx_pf_13_csparsetools_46_lil_fancy_get_int64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_datas, __Pyx_memviewslice __pyx_v_new_rows, __Pyx_memviewslice __pyx_v_new_datas, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx) {
   29319         525 :   npy_intp __pyx_v_x;
   29320         525 :   npy_intp __pyx_v_y;
   29321         525 :   npy_intp __pyx_v_i;
   29322         525 :   npy_intp __pyx_v_j;
   29323         525 :   PyObject *__pyx_v_value = 0;
   29324         525 :   PyObject *__pyx_v_new_row = 0;
   29325         525 :   PyObject *__pyx_v_new_data = 0;
   29326         525 :   PyObject *__pyx_r = NULL;
   29327             :   __Pyx_RefNannyDeclarations
   29328         525 :   Py_ssize_t __pyx_t_1;
   29329         525 :   Py_ssize_t __pyx_t_2;
   29330         525 :   npy_intp __pyx_t_3;
   29331         525 :   PyObject *__pyx_t_4 = NULL;
   29332         525 :   Py_ssize_t __pyx_t_5;
   29333         525 :   Py_ssize_t __pyx_t_6;
   29334         525 :   npy_intp __pyx_t_7;
   29335         525 :   Py_ssize_t __pyx_t_8;
   29336         525 :   Py_ssize_t __pyx_t_9;
   29337         525 :   int __pyx_t_10;
   29338         525 :   int __pyx_t_11;
   29339         525 :   int __pyx_t_12;
   29340         525 :   PyObject **__pyx_t_13;
   29341         525 :   int __pyx_lineno = 0;
   29342         525 :   const char *__pyx_filename = NULL;
   29343         525 :   int __pyx_clineno = 0;
   29344         525 :   __Pyx_RefNannySetupContext("_lil_fancy_get_int64", 1);
   29345             : 
   29346             :   /* "_csparsetools.pyx":383
   29347             :  *     cdef list new_data
   29348             :  * 
   29349             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   29350             :  *         new_row = []
   29351             :  *         new_data = []
   29352             :  */
   29353         525 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   29354         525 :   __pyx_t_2 = __pyx_t_1;
   29355        1521 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   29356        1080 :     __pyx_v_x = __pyx_t_3;
   29357             : 
   29358             :     /* "_csparsetools.pyx":384
   29359             :  * 
   29360             :  *     for x in range(i_idx.shape[0]):
   29361             :  *         new_row = []             # <<<<<<<<<<<<<<
   29362             :  *         new_data = []
   29363             :  * 
   29364             :  */
   29365        1080 :     __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 384, __pyx_L1_error)
   29366        1080 :     __Pyx_GOTREF(__pyx_t_4);
   29367        1080 :     __Pyx_XDECREF_SET(__pyx_v_new_row, ((PyObject*)__pyx_t_4));
   29368        1080 :     __pyx_t_4 = 0;
   29369             : 
   29370             :     /* "_csparsetools.pyx":385
   29371             :  *     for x in range(i_idx.shape[0]):
   29372             :  *         new_row = []
   29373             :  *         new_data = []             # <<<<<<<<<<<<<<
   29374             :  * 
   29375             :  *         for y in range(i_idx.shape[1]):
   29376             :  */
   29377        1080 :     __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 385, __pyx_L1_error)
   29378        1080 :     __Pyx_GOTREF(__pyx_t_4);
   29379        1080 :     __Pyx_XDECREF_SET(__pyx_v_new_data, ((PyObject*)__pyx_t_4));
   29380        1080 :     __pyx_t_4 = 0;
   29381             : 
   29382             :     /* "_csparsetools.pyx":387
   29383             :  *         new_data = []
   29384             :  * 
   29385             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   29386             :  *             i = i_idx[x,y]
   29387             :  *             j = j_idx[x,y]
   29388             :  */
   29389        1080 :     __pyx_t_5 = (__pyx_v_i_idx.shape[1]);
   29390        1080 :     __pyx_t_6 = __pyx_t_5;
   29391        5122 :     for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
   29392        3046 :       __pyx_v_y = __pyx_t_7;
   29393             : 
   29394             :       /* "_csparsetools.pyx":388
   29395             :  * 
   29396             :  *         for y in range(i_idx.shape[1]):
   29397             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   29398             :  *             j = j_idx[x,y]
   29399             :  * 
   29400             :  */
   29401        3046 :       __pyx_t_8 = __pyx_v_x;
   29402        3046 :       __pyx_t_9 = __pyx_v_y;
   29403        3046 :       __pyx_t_10 = -1;
   29404        3046 :       if (__pyx_t_8 < 0) {
   29405             :         __pyx_t_8 += __pyx_v_i_idx.shape[0];
   29406             :         if (unlikely(__pyx_t_8 < 0)) __pyx_t_10 = 0;
   29407             :       } else if (unlikely(__pyx_t_8 >= __pyx_v_i_idx.shape[0])) __pyx_t_10 = 0;
   29408        3046 :       if (__pyx_t_9 < 0) {
   29409             :         __pyx_t_9 += __pyx_v_i_idx.shape[1];
   29410             :         if (unlikely(__pyx_t_9 < 0)) __pyx_t_10 = 1;
   29411             :       } else if (unlikely(__pyx_t_9 >= __pyx_v_i_idx.shape[1])) __pyx_t_10 = 1;
   29412        3046 :       if (unlikely(__pyx_t_10 != -1)) {
   29413             :         __Pyx_RaiseBufferIndexError(__pyx_t_10);
   29414             :         __PYX_ERR(0, 388, __pyx_L1_error)
   29415             :       }
   29416        3046 :       __pyx_v_i = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_8 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_9 * __pyx_v_i_idx.strides[1]) )));
   29417             : 
   29418             :       /* "_csparsetools.pyx":389
   29419             :  *         for y in range(i_idx.shape[1]):
   29420             :  *             i = i_idx[x,y]
   29421             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   29422             :  * 
   29423             :  *             value = lil_get1(M, N, rows, datas, i, j)
   29424             :  */
   29425        3046 :       __pyx_t_9 = __pyx_v_x;
   29426        3046 :       __pyx_t_8 = __pyx_v_y;
   29427        3046 :       __pyx_t_10 = -1;
   29428        3046 :       if (__pyx_t_9 < 0) {
   29429             :         __pyx_t_9 += __pyx_v_j_idx.shape[0];
   29430             :         if (unlikely(__pyx_t_9 < 0)) __pyx_t_10 = 0;
   29431        3046 :       } else if (unlikely(__pyx_t_9 >= __pyx_v_j_idx.shape[0])) __pyx_t_10 = 0;
   29432        3046 :       if (__pyx_t_8 < 0) {
   29433             :         __pyx_t_8 += __pyx_v_j_idx.shape[1];
   29434             :         if (unlikely(__pyx_t_8 < 0)) __pyx_t_10 = 1;
   29435        3046 :       } else if (unlikely(__pyx_t_8 >= __pyx_v_j_idx.shape[1])) __pyx_t_10 = 1;
   29436        3046 :       if (unlikely(__pyx_t_10 != -1)) {
   29437           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_10);
   29438           0 :         __PYX_ERR(0, 389, __pyx_L1_error)
   29439             :       }
   29440        3046 :       __pyx_v_j = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_9 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_j_idx.strides[1]) )));
   29441             : 
   29442             :       /* "_csparsetools.pyx":391
   29443             :  *             j = j_idx[x,y]
   29444             :  * 
   29445             :  *             value = lil_get1(M, N, rows, datas, i, j)             # <<<<<<<<<<<<<<
   29446             :  * 
   29447             :  *             if value is not 0:
   29448             :  */
   29449        3046 :       __pyx_t_4 = __pyx_f_13_csparsetools_lil_get1(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_datas, __pyx_v_i, __pyx_v_j, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 391, __pyx_L1_error)
   29450        2962 :       __Pyx_GOTREF(__pyx_t_4);
   29451        2962 :       __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_4);
   29452        2962 :       __pyx_t_4 = 0;
   29453             : 
   29454             :       /* "_csparsetools.pyx":393
   29455             :  *             value = lil_get1(M, N, rows, datas, i, j)
   29456             :  * 
   29457             :  *             if value is not 0:             # <<<<<<<<<<<<<<
   29458             :  *                 # Object identity as shortcut
   29459             :  *                 new_row.append(y)
   29460             :  */
   29461        2962 :       __pyx_t_11 = (__pyx_v_value != __pyx_int_0);
   29462        2962 :       if (__pyx_t_11) {
   29463             : 
   29464             :         /* "_csparsetools.pyx":395
   29465             :  *             if value is not 0:
   29466             :  *                 # Object identity as shortcut
   29467             :  *                 new_row.append(y)             # <<<<<<<<<<<<<<
   29468             :  *                 new_data.append(value)
   29469             :  * 
   29470             :  */
   29471        2757 :         __pyx_t_4 = __Pyx_PyInt_From_npy_intp(__pyx_v_y); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 395, __pyx_L1_error)
   29472        2757 :         __Pyx_GOTREF(__pyx_t_4);
   29473        2757 :         __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_new_row, __pyx_t_4); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 395, __pyx_L1_error)
   29474        2757 :         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   29475             : 
   29476             :         /* "_csparsetools.pyx":396
   29477             :  *                 # Object identity as shortcut
   29478             :  *                 new_row.append(y)
   29479             :  *                 new_data.append(value)             # <<<<<<<<<<<<<<
   29480             :  * 
   29481             :  *         new_rows[x] = new_row
   29482             :  */
   29483        2757 :         __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_new_data, __pyx_v_value); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 396, __pyx_L1_error)
   29484             : 
   29485             :         /* "_csparsetools.pyx":393
   29486             :  *             value = lil_get1(M, N, rows, datas, i, j)
   29487             :  * 
   29488             :  *             if value is not 0:             # <<<<<<<<<<<<<<
   29489             :  *                 # Object identity as shortcut
   29490             :  *                 new_row.append(y)
   29491             :  */
   29492             :       }
   29493             :     }
   29494             : 
   29495             :     /* "_csparsetools.pyx":398
   29496             :  *                 new_data.append(value)
   29497             :  * 
   29498             :  *         new_rows[x] = new_row             # <<<<<<<<<<<<<<
   29499             :  *         new_datas[x] = new_data
   29500             :  * 
   29501             :  */
   29502         996 :     __pyx_t_8 = __pyx_v_x;
   29503         996 :     __pyx_t_10 = -1;
   29504         996 :     if (__pyx_t_8 < 0) {
   29505             :       __pyx_t_8 += __pyx_v_new_rows.shape[0];
   29506             :       if (unlikely(__pyx_t_8 < 0)) __pyx_t_10 = 0;
   29507         996 :     } else if (unlikely(__pyx_t_8 >= __pyx_v_new_rows.shape[0])) __pyx_t_10 = 0;
   29508         996 :     if (unlikely(__pyx_t_10 != -1)) {
   29509           0 :       __Pyx_RaiseBufferIndexError(__pyx_t_10);
   29510           0 :       __PYX_ERR(0, 398, __pyx_L1_error)
   29511             :     }
   29512         996 :     __pyx_t_13 = ((PyObject * *) ( /* dim=0 */ (__pyx_v_new_rows.data + __pyx_t_8 * __pyx_v_new_rows.strides[0]) ));
   29513         996 :     __Pyx_XGOTREF(*__pyx_t_13);
   29514        1992 :     __Pyx_INCREF(__pyx_v_new_row); __Pyx_XDECREF(*__pyx_t_13);
   29515         996 :     *__pyx_t_13 = __pyx_v_new_row;
   29516         996 :     __Pyx_XGIVEREF(*__pyx_t_13);
   29517             : 
   29518             :     /* "_csparsetools.pyx":399
   29519             :  * 
   29520             :  *         new_rows[x] = new_row
   29521             :  *         new_datas[x] = new_data             # <<<<<<<<<<<<<<
   29522             :  * 
   29523             :  * 
   29524             :  */
   29525         996 :     __pyx_t_8 = __pyx_v_x;
   29526         996 :     __pyx_t_10 = -1;
   29527         996 :     if (__pyx_t_8 < 0) {
   29528             :       __pyx_t_8 += __pyx_v_new_datas.shape[0];
   29529             :       if (unlikely(__pyx_t_8 < 0)) __pyx_t_10 = 0;
   29530         996 :     } else if (unlikely(__pyx_t_8 >= __pyx_v_new_datas.shape[0])) __pyx_t_10 = 0;
   29531         996 :     if (unlikely(__pyx_t_10 != -1)) {
   29532           0 :       __Pyx_RaiseBufferIndexError(__pyx_t_10);
   29533           0 :       __PYX_ERR(0, 399, __pyx_L1_error)
   29534             :     }
   29535         996 :     __pyx_t_13 = ((PyObject * *) ( /* dim=0 */ (__pyx_v_new_datas.data + __pyx_t_8 * __pyx_v_new_datas.strides[0]) ));
   29536         996 :     __Pyx_XGOTREF(*__pyx_t_13);
   29537        1992 :     __Pyx_INCREF(__pyx_v_new_data); __Pyx_XDECREF(*__pyx_t_13);
   29538         996 :     *__pyx_t_13 = __pyx_v_new_data;
   29539         996 :     __Pyx_XGIVEREF(*__pyx_t_13);
   29540             :   }
   29541             : 
   29542             :   /* "_csparsetools.pyx":370
   29543             :  *         new_rows[x] = new_row
   29544             :  *         new_datas[x] = new_data
   29545             :  * def _lil_fancy_get_int64(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   29546             :  *                             object[:] rows,
   29547             :  *                             object[:] datas,
   29548             :  */
   29549             : 
   29550             :   /* function exit code */
   29551         441 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   29552         441 :   goto __pyx_L0;
   29553          84 :   __pyx_L1_error:;
   29554          84 :   __Pyx_XDECREF(__pyx_t_4);
   29555          84 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_get_int64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   29556          84 :   __pyx_r = NULL;
   29557         525 :   __pyx_L0:;
   29558         525 :   __Pyx_XDECREF(__pyx_v_value);
   29559         525 :   __Pyx_XDECREF(__pyx_v_new_row);
   29560         525 :   __Pyx_XDECREF(__pyx_v_new_data);
   29561         525 :   __Pyx_XGIVEREF(__pyx_r);
   29562         525 :   __Pyx_RefNannyFinishContext();
   29563         525 :   return __pyx_r;
   29564             : }
   29565             : 
   29566             : /* "_csparsetools.pyx":411
   29567             :  * 
   29568             :  * 
   29569             :  * def lil_fancy_set(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   29570             :  *                   object[:] rows,
   29571             :  *                   object[:] data,
   29572             :  */
   29573             : 
   29574             : /* Python wrapper */
   29575             : static PyObject *__pyx_pw_13_csparsetools_49lil_fancy_set(PyObject *__pyx_self, 
   29576             : #if CYTHON_METH_FASTCALL
   29577             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   29578             : #else
   29579             : PyObject *__pyx_args, PyObject *__pyx_kwds
   29580             : #endif
   29581             : ); /*proto*/
   29582             : PyDoc_STRVAR(__pyx_doc_13_csparsetools_48lil_fancy_set, "\n    Set multiple items to a LIL matrix.\n\n    Checks for zero elements and deletes them.\n\n    Parameters\n    ----------\n    M, N, rows, data\n        LIL matrix data\n    i_idx, j_idx\n        Indices of elements to insert to the new LIL matrix.\n    values\n        Values of items to set.\n\n    ");
   29583             : static PyMethodDef __pyx_mdef_13_csparsetools_49lil_fancy_set = {"lil_fancy_set", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_49lil_fancy_set, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_13_csparsetools_48lil_fancy_set};
   29584        2762 : static PyObject *__pyx_pw_13_csparsetools_49lil_fancy_set(PyObject *__pyx_self, 
   29585             : #if CYTHON_METH_FASTCALL
   29586             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   29587             : #else
   29588             : PyObject *__pyx_args, PyObject *__pyx_kwds
   29589             : #endif
   29590             : ) {
   29591        2762 :   npy_intp __pyx_v_M;
   29592        2762 :   npy_intp __pyx_v_N;
   29593        2762 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   29594        2762 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   29595        2762 :   PyArrayObject *__pyx_v_i_idx = 0;
   29596        2762 :   PyArrayObject *__pyx_v_j_idx = 0;
   29597        2762 :   PyArrayObject *__pyx_v_values = 0;
   29598             :   #if !CYTHON_METH_FASTCALL
   29599             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   29600             :   #endif
   29601        2762 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   29602        2762 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   29603        2762 :   int __pyx_lineno = 0;
   29604        2762 :   const char *__pyx_filename = NULL;
   29605        2762 :   int __pyx_clineno = 0;
   29606        2762 :   PyObject *__pyx_r = 0;
   29607             :   __Pyx_RefNannyDeclarations
   29608        2762 :   __Pyx_RefNannySetupContext("lil_fancy_set (wrapper)", 0);
   29609             :   #if !CYTHON_METH_FASTCALL
   29610             :   #if CYTHON_ASSUME_SAFE_MACROS
   29611             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   29612             :   #else
   29613             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   29614             :   #endif
   29615             :   #endif
   29616        2762 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   29617             :   {
   29618        2762 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   29619        2762 :     if (__pyx_kwds) {
   29620           0 :       Py_ssize_t kw_args;
   29621           0 :       switch (__pyx_nargs) {
   29622           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   29623           0 :         CYTHON_FALLTHROUGH;
   29624           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   29625           0 :         CYTHON_FALLTHROUGH;
   29626           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   29627           0 :         CYTHON_FALLTHROUGH;
   29628           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   29629           0 :         CYTHON_FALLTHROUGH;
   29630           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   29631           0 :         CYTHON_FALLTHROUGH;
   29632           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   29633           0 :         CYTHON_FALLTHROUGH;
   29634           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   29635           0 :         CYTHON_FALLTHROUGH;
   29636           0 :         case  0: break;
   29637           0 :         default: goto __pyx_L5_argtuple_error;
   29638             :       }
   29639           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   29640           0 :       switch (__pyx_nargs) {
   29641           0 :         case  0:
   29642           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   29643           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   29644           0 :           kw_args--;
   29645             :         }
   29646           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 411, __pyx_L3_error)
   29647           0 :         else goto __pyx_L5_argtuple_error;
   29648           0 :         CYTHON_FALLTHROUGH;
   29649             :         case  1:
   29650           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   29651           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   29652           0 :           kw_args--;
   29653             :         }
   29654           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 411, __pyx_L3_error)
   29655             :         else {
   29656           0 :           __Pyx_RaiseArgtupleInvalid("lil_fancy_set", 1, 7, 7, 1); __PYX_ERR(0, 411, __pyx_L3_error)
   29657             :         }
   29658           0 :         CYTHON_FALLTHROUGH;
   29659             :         case  2:
   29660           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   29661           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   29662           0 :           kw_args--;
   29663             :         }
   29664           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 411, __pyx_L3_error)
   29665             :         else {
   29666           0 :           __Pyx_RaiseArgtupleInvalid("lil_fancy_set", 1, 7, 7, 2); __PYX_ERR(0, 411, __pyx_L3_error)
   29667             :         }
   29668           0 :         CYTHON_FALLTHROUGH;
   29669             :         case  3:
   29670           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   29671           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   29672           0 :           kw_args--;
   29673             :         }
   29674           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 411, __pyx_L3_error)
   29675             :         else {
   29676           0 :           __Pyx_RaiseArgtupleInvalid("lil_fancy_set", 1, 7, 7, 3); __PYX_ERR(0, 411, __pyx_L3_error)
   29677             :         }
   29678           0 :         CYTHON_FALLTHROUGH;
   29679             :         case  4:
   29680           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   29681           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   29682           0 :           kw_args--;
   29683             :         }
   29684           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 411, __pyx_L3_error)
   29685             :         else {
   29686           0 :           __Pyx_RaiseArgtupleInvalid("lil_fancy_set", 1, 7, 7, 4); __PYX_ERR(0, 411, __pyx_L3_error)
   29687             :         }
   29688           0 :         CYTHON_FALLTHROUGH;
   29689             :         case  5:
   29690           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   29691           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   29692           0 :           kw_args--;
   29693             :         }
   29694           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 411, __pyx_L3_error)
   29695             :         else {
   29696           0 :           __Pyx_RaiseArgtupleInvalid("lil_fancy_set", 1, 7, 7, 5); __PYX_ERR(0, 411, __pyx_L3_error)
   29697             :         }
   29698           0 :         CYTHON_FALLTHROUGH;
   29699             :         case  6:
   29700           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   29701           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   29702           0 :           kw_args--;
   29703             :         }
   29704           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 411, __pyx_L3_error)
   29705             :         else {
   29706           0 :           __Pyx_RaiseArgtupleInvalid("lil_fancy_set", 1, 7, 7, 6); __PYX_ERR(0, 411, __pyx_L3_error)
   29707             :         }
   29708             :       }
   29709           0 :       if (unlikely(kw_args > 0)) {
   29710           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   29711           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "lil_fancy_set") < 0)) __PYX_ERR(0, 411, __pyx_L3_error)
   29712             :       }
   29713        2762 :     } else if (unlikely(__pyx_nargs != 7)) {
   29714           0 :       goto __pyx_L5_argtuple_error;
   29715             :     } else {
   29716        2762 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   29717        2762 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   29718        2762 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   29719        2762 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   29720        2762 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   29721        2762 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   29722        2762 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   29723             :     }
   29724        2762 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 411, __pyx_L3_error)
   29725        2762 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 411, __pyx_L3_error)
   29726        2762 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 412, __pyx_L3_error)
   29727        2762 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 413, __pyx_L3_error)
   29728        2762 :     __pyx_v_i_idx = ((PyArrayObject *)values[4]);
   29729        2762 :     __pyx_v_j_idx = ((PyArrayObject *)values[5]);
   29730        2762 :     __pyx_v_values = ((PyArrayObject *)values[6]);
   29731             :   }
   29732        2762 :   goto __pyx_L6_skip;
   29733           0 :   __pyx_L5_argtuple_error:;
   29734           0 :   __Pyx_RaiseArgtupleInvalid("lil_fancy_set", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 411, __pyx_L3_error)
   29735        2762 :   __pyx_L6_skip:;
   29736        2762 :   goto __pyx_L4_argument_unpacking_done;
   29737           0 :   __pyx_L3_error:;
   29738             :   {
   29739           0 :     Py_ssize_t __pyx_temp;
   29740           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   29741             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   29742             :     }
   29743             :   }
   29744           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   29745           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   29746           0 :   __Pyx_AddTraceback("_csparsetools.lil_fancy_set", __pyx_clineno, __pyx_lineno, __pyx_filename);
   29747           0 :   __Pyx_RefNannyFinishContext();
   29748           0 :   return NULL;
   29749        2762 :   __pyx_L4_argument_unpacking_done:;
   29750        2762 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_i_idx), __pyx_ptype_5numpy_ndarray, 1, "i_idx", 0))) __PYX_ERR(0, 414, __pyx_L1_error)
   29751        2762 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_j_idx), __pyx_ptype_5numpy_ndarray, 1, "j_idx", 0))) __PYX_ERR(0, 415, __pyx_L1_error)
   29752        2762 :   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_values), __pyx_ptype_5numpy_ndarray, 1, "values", 0))) __PYX_ERR(0, 416, __pyx_L1_error)
   29753        2762 :   __pyx_r = __pyx_pf_13_csparsetools_48lil_fancy_set(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   29754             : 
   29755             :   /* function exit code */
   29756        2762 :   goto __pyx_L0;
   29757             :   __pyx_L1_error:;
   29758             :   __pyx_r = NULL;
   29759        2762 :   __pyx_L0:;
   29760        2762 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   29761        2762 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   29762             :   {
   29763        2762 :     Py_ssize_t __pyx_temp;
   29764        2762 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   29765             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   29766             :     }
   29767             :   }
   29768             :   __Pyx_RefNannyFinishContext();
   29769             :   return __pyx_r;
   29770             : }
   29771             : 
   29772        2762 : static PyObject *__pyx_pf_13_csparsetools_48lil_fancy_set(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, PyArrayObject *__pyx_v_i_idx, PyArrayObject *__pyx_v_j_idx, PyArrayObject *__pyx_v_values) {
   29773        2762 :   PyObject *__pyx_r = NULL;
   29774             :   __Pyx_RefNannyDeclarations
   29775        2762 :   PyObject *__pyx_t_1 = NULL;
   29776        2762 :   PyObject *__pyx_t_2 = NULL;
   29777        2762 :   PyObject *__pyx_t_3 = NULL;
   29778        2762 :   int __pyx_t_4;
   29779        2762 :   PyObject *__pyx_t_5 = NULL;
   29780        2762 :   int __pyx_t_6;
   29781        2762 :   PyObject *__pyx_t_7 = NULL;
   29782        2762 :   PyObject *__pyx_t_8 = NULL;
   29783        2762 :   PyObject *__pyx_t_9 = NULL;
   29784        2762 :   unsigned int __pyx_t_10;
   29785        2762 :   int __pyx_lineno = 0;
   29786        2762 :   const char *__pyx_filename = NULL;
   29787        2762 :   int __pyx_clineno = 0;
   29788        2762 :   __Pyx_RefNannySetupContext("lil_fancy_set", 0);
   29789        2762 :   __Pyx_INCREF((PyObject *)__pyx_v_values);
   29790             : 
   29791             :   /* "_csparsetools.pyx":432
   29792             :  * 
   29793             :  *     """
   29794             :  *     if values.dtype == np.bool_:             # <<<<<<<<<<<<<<
   29795             :  *         # Cython doesn't support np.bool_ as a memoryview type
   29796             :  *         values = values.view(dtype=np.uint8)
   29797             :  */
   29798        2762 :   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_values), __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 432, __pyx_L1_error)
   29799        2762 :   __Pyx_GOTREF(__pyx_t_1);
   29800        2762 :   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 432, __pyx_L1_error)
   29801        2762 :   __Pyx_GOTREF(__pyx_t_2);
   29802        2762 :   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_bool); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 432, __pyx_L1_error)
   29803        2762 :   __Pyx_GOTREF(__pyx_t_3);
   29804        2762 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   29805        2762 :   __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 432, __pyx_L1_error)
   29806        2762 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   29807        2762 :   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   29808        2762 :   __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 432, __pyx_L1_error)
   29809        2762 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   29810        2762 :   if (__pyx_t_4) {
   29811             : 
   29812             :     /* "_csparsetools.pyx":434
   29813             :  *     if values.dtype == np.bool_:
   29814             :  *         # Cython doesn't support np.bool_ as a memoryview type
   29815             :  *         values = values.view(dtype=np.uint8)             # <<<<<<<<<<<<<<
   29816             :  * 
   29817             :  *     assert i_idx.shape[0] == j_idx.shape[0] and i_idx.shape[1] == j_idx.shape[1]
   29818             :  */
   29819          14 :     __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_values), __pyx_n_s_view); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error)
   29820          14 :     __Pyx_GOTREF(__pyx_t_2);
   29821          14 :     __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 434, __pyx_L1_error)
   29822          14 :     __Pyx_GOTREF(__pyx_t_3);
   29823          14 :     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 434, __pyx_L1_error)
   29824          14 :     __Pyx_GOTREF(__pyx_t_1);
   29825          14 :     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_uint8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 434, __pyx_L1_error)
   29826          14 :     __Pyx_GOTREF(__pyx_t_5);
   29827          14 :     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   29828          14 :     if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 434, __pyx_L1_error)
   29829          14 :     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   29830          14 :     __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 434, __pyx_L1_error)
   29831          14 :     __Pyx_GOTREF(__pyx_t_5);
   29832          14 :     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   29833          14 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   29834          14 :     if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 434, __pyx_L1_error)
   29835          14 :     __Pyx_DECREF_SET(__pyx_v_values, ((PyArrayObject *)__pyx_t_5));
   29836             :     __pyx_t_5 = 0;
   29837             : 
   29838             :     /* "_csparsetools.pyx":432
   29839             :  * 
   29840             :  *     """
   29841             :  *     if values.dtype == np.bool_:             # <<<<<<<<<<<<<<
   29842             :  *         # Cython doesn't support np.bool_ as a memoryview type
   29843             :  *         values = values.view(dtype=np.uint8)
   29844             :  */
   29845             :   }
   29846             : 
   29847             :   /* "_csparsetools.pyx":436
   29848             :  *         values = values.view(dtype=np.uint8)
   29849             :  * 
   29850             :  *     assert i_idx.shape[0] == j_idx.shape[0] and i_idx.shape[1] == j_idx.shape[1]             # <<<<<<<<<<<<<<
   29851             :  *     return _LIL_FANCY_SET_DISPATCH[i_idx.dtype, values.dtype](M, N, rows, data, i_idx, j_idx, values)
   29852             :  * 
   29853             :  */
   29854             :   #ifndef CYTHON_WITHOUT_ASSERTIONS
   29855        2762 :   if (unlikely(__pyx_assertions_enabled())) {
   29856        2762 :     __pyx_t_6 = ((__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_i_idx)[0]) == (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_j_idx)[0]));
   29857        2762 :     if (__pyx_t_6) {
   29858        2762 :     } else {
   29859           0 :       __pyx_t_4 = __pyx_t_6;
   29860           0 :       goto __pyx_L4_bool_binop_done;
   29861             :     }
   29862        2762 :     __pyx_t_6 = ((__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_i_idx)[1]) == (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_j_idx)[1]));
   29863        2762 :     __pyx_t_4 = __pyx_t_6;
   29864        2762 :     __pyx_L4_bool_binop_done:;
   29865        2762 :     if (unlikely(!__pyx_t_4)) {
   29866           0 :       __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
   29867           0 :       __PYX_ERR(0, 436, __pyx_L1_error)
   29868             :     }
   29869             :   }
   29870             :   #else
   29871             :   if ((1)); else __PYX_ERR(0, 436, __pyx_L1_error)
   29872             :   #endif
   29873             : 
   29874             :   /* "_csparsetools.pyx":437
   29875             :  * 
   29876             :  *     assert i_idx.shape[0] == j_idx.shape[0] and i_idx.shape[1] == j_idx.shape[1]
   29877             :  *     return _LIL_FANCY_SET_DISPATCH[i_idx.dtype, values.dtype](M, N, rows, data, i_idx, j_idx, values)             # <<<<<<<<<<<<<<
   29878             :  * 
   29879             :  * @cython.boundscheck(False)
   29880             :  */
   29881        2762 :   __Pyx_XDECREF(__pyx_r);
   29882        2762 :   if (unlikely(__pyx_v_13_csparsetools__LIL_FANCY_SET_DISPATCH == Py_None)) {
   29883           0 :     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   29884           0 :     __PYX_ERR(0, 437, __pyx_L1_error)
   29885             :   }
   29886        2762 :   __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_i_idx), __pyx_n_s_dtype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 437, __pyx_L1_error)
   29887        2762 :   __Pyx_GOTREF(__pyx_t_3);
   29888        2762 :   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_values), __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 437, __pyx_L1_error)
   29889        2762 :   __Pyx_GOTREF(__pyx_t_2);
   29890        2762 :   __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 437, __pyx_L1_error)
   29891        2762 :   __Pyx_GOTREF(__pyx_t_1);
   29892        2762 :   __Pyx_GIVEREF(__pyx_t_3);
   29893        2762 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3)) __PYX_ERR(0, 437, __pyx_L1_error);
   29894        2762 :   __Pyx_GIVEREF(__pyx_t_2);
   29895        2762 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2)) __PYX_ERR(0, 437, __pyx_L1_error);
   29896        2762 :   __pyx_t_3 = 0;
   29897        2762 :   __pyx_t_2 = 0;
   29898        2762 :   __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_13_csparsetools__LIL_FANCY_SET_DISPATCH, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 437, __pyx_L1_error)
   29899        2762 :   __Pyx_GOTREF(__pyx_t_2);
   29900        2762 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   29901        2762 :   __pyx_t_1 = __Pyx_PyInt_From_npy_intp(__pyx_v_M); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 437, __pyx_L1_error)
   29902        2762 :   __Pyx_GOTREF(__pyx_t_1);
   29903        2762 :   __pyx_t_3 = __Pyx_PyInt_From_npy_intp(__pyx_v_N); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 437, __pyx_L1_error)
   29904        2762 :   __Pyx_GOTREF(__pyx_t_3);
   29905        2762 :   __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_v_rows, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 437, __pyx_L1_error)
   29906        2762 :   __Pyx_GOTREF(__pyx_t_7);
   29907        2762 :   __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 437, __pyx_L1_error)
   29908        2762 :   __Pyx_GOTREF(__pyx_t_8);
   29909        2762 :   __pyx_t_9 = NULL;
   29910        2762 :   __pyx_t_10 = 0;
   29911             :   #if CYTHON_UNPACK_METHODS
   29912        2762 :   if (unlikely(PyMethod_Check(__pyx_t_2))) {
   29913           0 :     __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2);
   29914           0 :     if (likely(__pyx_t_9)) {
   29915           0 :       PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
   29916           0 :       __Pyx_INCREF(__pyx_t_9);
   29917           0 :       __Pyx_INCREF(function);
   29918           0 :       __Pyx_DECREF_SET(__pyx_t_2, function);
   29919             :       __pyx_t_10 = 1;
   29920             :     }
   29921             :   }
   29922             :   #endif
   29923             :   {
   29924        2762 :     PyObject *__pyx_callargs[8] = {__pyx_t_9, __pyx_t_1, __pyx_t_3, __pyx_t_7, __pyx_t_8, ((PyObject *)__pyx_v_i_idx), ((PyObject *)__pyx_v_j_idx), ((PyObject *)__pyx_v_values)};
   29925        2762 :     __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_10, 7+__pyx_t_10);
   29926        2762 :     __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
   29927        2762 :     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   29928        2762 :     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   29929        2762 :     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   29930        2762 :     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
   29931        2762 :     if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 437, __pyx_L1_error)
   29932        2720 :     __Pyx_GOTREF(__pyx_t_5);
   29933        2720 :     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   29934             :   }
   29935        2720 :   __pyx_r = __pyx_t_5;
   29936        2720 :   __pyx_t_5 = 0;
   29937        2720 :   goto __pyx_L0;
   29938             : 
   29939             :   /* "_csparsetools.pyx":411
   29940             :  * 
   29941             :  * 
   29942             :  * def lil_fancy_set(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   29943             :  *                   object[:] rows,
   29944             :  *                   object[:] data,
   29945             :  */
   29946             : 
   29947             :   /* function exit code */
   29948          42 :   __pyx_L1_error:;
   29949          42 :   __Pyx_XDECREF(__pyx_t_1);
   29950          42 :   __Pyx_XDECREF(__pyx_t_2);
   29951          42 :   __Pyx_XDECREF(__pyx_t_3);
   29952          42 :   __Pyx_XDECREF(__pyx_t_5);
   29953          42 :   __Pyx_XDECREF(__pyx_t_7);
   29954          42 :   __Pyx_XDECREF(__pyx_t_8);
   29955          42 :   __Pyx_XDECREF(__pyx_t_9);
   29956          42 :   __Pyx_AddTraceback("_csparsetools.lil_fancy_set", __pyx_clineno, __pyx_lineno, __pyx_filename);
   29957          42 :   __pyx_r = NULL;
   29958        2762 :   __pyx_L0:;
   29959        2762 :   __Pyx_XDECREF((PyObject *)__pyx_v_values);
   29960        2762 :   __Pyx_XGIVEREF(__pyx_r);
   29961        2762 :   __Pyx_RefNannyFinishContext();
   29962        2762 :   return __pyx_r;
   29963             : }
   29964             : 
   29965             : /* "_csparsetools.pyx":439
   29966             :  *     return _LIL_FANCY_SET_DISPATCH[i_idx.dtype, values.dtype](M, N, rows, data, i_idx, j_idx, values)
   29967             :  * 
   29968             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   29969             :  * @cython.wraparound(False)
   29970             :  * def _lil_fancy_set_int32_bool_(cnp.npy_intp M, cnp.npy_intp N,
   29971             :  */
   29972             : 
   29973             : /* Python wrapper */
   29974             : static PyObject *__pyx_pw_13_csparsetools_51_lil_fancy_set_int32_bool_(PyObject *__pyx_self, 
   29975             : #if CYTHON_METH_FASTCALL
   29976             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   29977             : #else
   29978             : PyObject *__pyx_args, PyObject *__pyx_kwds
   29979             : #endif
   29980             : ); /*proto*/
   29981             : static PyMethodDef __pyx_mdef_13_csparsetools_51_lil_fancy_set_int32_bool_ = {"_lil_fancy_set_int32_bool_", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_51_lil_fancy_set_int32_bool_, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   29982           0 : static PyObject *__pyx_pw_13_csparsetools_51_lil_fancy_set_int32_bool_(PyObject *__pyx_self, 
   29983             : #if CYTHON_METH_FASTCALL
   29984             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   29985             : #else
   29986             : PyObject *__pyx_args, PyObject *__pyx_kwds
   29987             : #endif
   29988             : ) {
   29989           0 :   npy_intp __pyx_v_M;
   29990           0 :   npy_intp __pyx_v_N;
   29991           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   29992           0 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   29993           0 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   29994           0 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   29995           0 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   29996             :   #if !CYTHON_METH_FASTCALL
   29997             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   29998             :   #endif
   29999           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   30000           0 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   30001           0 :   int __pyx_lineno = 0;
   30002           0 :   const char *__pyx_filename = NULL;
   30003           0 :   int __pyx_clineno = 0;
   30004           0 :   PyObject *__pyx_r = 0;
   30005             :   __Pyx_RefNannyDeclarations
   30006           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_bool_ (wrapper)", 0);
   30007             :   #if !CYTHON_METH_FASTCALL
   30008             :   #if CYTHON_ASSUME_SAFE_MACROS
   30009             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   30010             :   #else
   30011             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   30012             :   #endif
   30013             :   #endif
   30014           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   30015             :   {
   30016           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   30017           0 :     if (__pyx_kwds) {
   30018           0 :       Py_ssize_t kw_args;
   30019           0 :       switch (__pyx_nargs) {
   30020           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   30021           0 :         CYTHON_FALLTHROUGH;
   30022           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   30023           0 :         CYTHON_FALLTHROUGH;
   30024           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   30025           0 :         CYTHON_FALLTHROUGH;
   30026           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   30027           0 :         CYTHON_FALLTHROUGH;
   30028           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   30029           0 :         CYTHON_FALLTHROUGH;
   30030           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   30031           0 :         CYTHON_FALLTHROUGH;
   30032           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   30033           0 :         CYTHON_FALLTHROUGH;
   30034           0 :         case  0: break;
   30035           0 :         default: goto __pyx_L5_argtuple_error;
   30036             :       }
   30037           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   30038           0 :       switch (__pyx_nargs) {
   30039           0 :         case  0:
   30040           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   30041           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   30042           0 :           kw_args--;
   30043             :         }
   30044           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 439, __pyx_L3_error)
   30045           0 :         else goto __pyx_L5_argtuple_error;
   30046           0 :         CYTHON_FALLTHROUGH;
   30047             :         case  1:
   30048           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   30049           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   30050           0 :           kw_args--;
   30051             :         }
   30052           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 439, __pyx_L3_error)
   30053             :         else {
   30054           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_bool_", 1, 7, 7, 1); __PYX_ERR(0, 439, __pyx_L3_error)
   30055             :         }
   30056           0 :         CYTHON_FALLTHROUGH;
   30057             :         case  2:
   30058           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   30059           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   30060           0 :           kw_args--;
   30061             :         }
   30062           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 439, __pyx_L3_error)
   30063             :         else {
   30064           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_bool_", 1, 7, 7, 2); __PYX_ERR(0, 439, __pyx_L3_error)
   30065             :         }
   30066           0 :         CYTHON_FALLTHROUGH;
   30067             :         case  3:
   30068           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   30069           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   30070           0 :           kw_args--;
   30071             :         }
   30072           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 439, __pyx_L3_error)
   30073             :         else {
   30074           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_bool_", 1, 7, 7, 3); __PYX_ERR(0, 439, __pyx_L3_error)
   30075             :         }
   30076           0 :         CYTHON_FALLTHROUGH;
   30077             :         case  4:
   30078           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   30079           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   30080           0 :           kw_args--;
   30081             :         }
   30082           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 439, __pyx_L3_error)
   30083             :         else {
   30084           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_bool_", 1, 7, 7, 4); __PYX_ERR(0, 439, __pyx_L3_error)
   30085             :         }
   30086           0 :         CYTHON_FALLTHROUGH;
   30087             :         case  5:
   30088           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   30089           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   30090           0 :           kw_args--;
   30091             :         }
   30092           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 439, __pyx_L3_error)
   30093             :         else {
   30094           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_bool_", 1, 7, 7, 5); __PYX_ERR(0, 439, __pyx_L3_error)
   30095             :         }
   30096           0 :         CYTHON_FALLTHROUGH;
   30097             :         case  6:
   30098           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   30099           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   30100           0 :           kw_args--;
   30101             :         }
   30102           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 439, __pyx_L3_error)
   30103             :         else {
   30104           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_bool_", 1, 7, 7, 6); __PYX_ERR(0, 439, __pyx_L3_error)
   30105             :         }
   30106             :       }
   30107           0 :       if (unlikely(kw_args > 0)) {
   30108           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   30109           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int32_bool_") < 0)) __PYX_ERR(0, 439, __pyx_L3_error)
   30110             :       }
   30111           0 :     } else if (unlikely(__pyx_nargs != 7)) {
   30112           0 :       goto __pyx_L5_argtuple_error;
   30113             :     } else {
   30114           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   30115           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   30116           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   30117           0 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   30118           0 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   30119           0 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   30120           0 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   30121             :     }
   30122           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 441, __pyx_L3_error)
   30123           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 441, __pyx_L3_error)
   30124           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 442, __pyx_L3_error)
   30125           0 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 443, __pyx_L3_error)
   30126           0 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 444, __pyx_L3_error)
   30127           0 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 445, __pyx_L3_error)
   30128           0 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_bool(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 446, __pyx_L3_error)
   30129             :   }
   30130           0 :   goto __pyx_L6_skip;
   30131           0 :   __pyx_L5_argtuple_error:;
   30132           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_bool_", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 439, __pyx_L3_error)
   30133           0 :   __pyx_L6_skip:;
   30134           0 :   goto __pyx_L4_argument_unpacking_done;
   30135           0 :   __pyx_L3_error:;
   30136             :   {
   30137           0 :     Py_ssize_t __pyx_temp;
   30138           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   30139             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   30140             :     }
   30141             :   }
   30142           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   30143           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   30144           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   30145           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   30146           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   30147           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_bool_", __pyx_clineno, __pyx_lineno, __pyx_filename);
   30148           0 :   __Pyx_RefNannyFinishContext();
   30149           0 :   return NULL;
   30150           0 :   __pyx_L4_argument_unpacking_done:;
   30151           0 :   __pyx_r = __pyx_pf_13_csparsetools_50_lil_fancy_set_int32_bool_(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   30152             : 
   30153             :   /* function exit code */
   30154           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   30155           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   30156           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   30157           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   30158           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   30159             :   {
   30160           0 :     Py_ssize_t __pyx_temp;
   30161           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   30162             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   30163             :     }
   30164             :   }
   30165             :   __Pyx_RefNannyFinishContext();
   30166             :   return __pyx_r;
   30167             : }
   30168             : 
   30169           0 : static PyObject *__pyx_pf_13_csparsetools_50_lil_fancy_set_int32_bool_(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   30170           0 :   npy_intp __pyx_v_x;
   30171           0 :   npy_intp __pyx_v_y;
   30172           0 :   npy_intp __pyx_v_i;
   30173           0 :   npy_intp __pyx_v_j;
   30174           0 :   PyObject *__pyx_r = NULL;
   30175             :   __Pyx_RefNannyDeclarations
   30176           0 :   Py_ssize_t __pyx_t_1;
   30177           0 :   Py_ssize_t __pyx_t_2;
   30178           0 :   npy_intp __pyx_t_3;
   30179           0 :   Py_ssize_t __pyx_t_4;
   30180           0 :   Py_ssize_t __pyx_t_5;
   30181           0 :   npy_intp __pyx_t_6;
   30182           0 :   Py_ssize_t __pyx_t_7;
   30183           0 :   Py_ssize_t __pyx_t_8;
   30184           0 :   PyObject *__pyx_t_9 = NULL;
   30185           0 :   int __pyx_t_10;
   30186           0 :   int __pyx_lineno = 0;
   30187           0 :   const char *__pyx_filename = NULL;
   30188           0 :   int __pyx_clineno = 0;
   30189           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_bool_", 1);
   30190             : 
   30191             :   /* "_csparsetools.pyx":450
   30192             :  *     cdef cnp.npy_intp i, j
   30193             :  * 
   30194             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   30195             :  *         for y in range(i_idx.shape[1]):
   30196             :  *             i = i_idx[x,y]
   30197             :  */
   30198           0 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   30199           0 :   __pyx_t_2 = __pyx_t_1;
   30200           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   30201           0 :     __pyx_v_x = __pyx_t_3;
   30202             : 
   30203             :     /* "_csparsetools.pyx":451
   30204             :  * 
   30205             :  *     for x in range(i_idx.shape[0]):
   30206             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   30207             :  *             i = i_idx[x,y]
   30208             :  *             j = j_idx[x,y]
   30209             :  */
   30210           0 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   30211           0 :     __pyx_t_5 = __pyx_t_4;
   30212           0 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   30213           0 :       __pyx_v_y = __pyx_t_6;
   30214             : 
   30215             :       /* "_csparsetools.pyx":452
   30216             :  *     for x in range(i_idx.shape[0]):
   30217             :  *         for y in range(i_idx.shape[1]):
   30218             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   30219             :  *             j = j_idx[x,y]
   30220             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   30221             :  */
   30222           0 :       __pyx_t_7 = __pyx_v_x;
   30223           0 :       __pyx_t_8 = __pyx_v_y;
   30224           0 :       __pyx_v_i = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   30225             : 
   30226             :       /* "_csparsetools.pyx":453
   30227             :  *         for y in range(i_idx.shape[1]):
   30228             :  *             i = i_idx[x,y]
   30229             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   30230             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   30231             :  * @cython.boundscheck(False)
   30232             :  */
   30233           0 :       __pyx_t_8 = __pyx_v_x;
   30234           0 :       __pyx_t_7 = __pyx_v_y;
   30235           0 :       __pyx_v_j = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   30236             : 
   30237             :       /* "_csparsetools.pyx":454
   30238             :  *             i = i_idx[x,y]
   30239             :  *             j = j_idx[x,y]
   30240             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   30241             :  * @cython.boundscheck(False)
   30242             :  * @cython.wraparound(False)
   30243             :  */
   30244           0 :       __pyx_t_7 = __pyx_v_x;
   30245           0 :       __pyx_t_8 = __pyx_v_y;
   30246           0 :       __pyx_t_9 = __Pyx_PyInt_From_npy_bool((*((npy_bool *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 454, __pyx_L1_error)
   30247           0 :       __Pyx_GOTREF(__pyx_t_9);
   30248           0 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 454, __pyx_L1_error)
   30249           0 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   30250             :     }
   30251             :   }
   30252             : 
   30253             :   /* "_csparsetools.pyx":439
   30254             :  *     return _LIL_FANCY_SET_DISPATCH[i_idx.dtype, values.dtype](M, N, rows, data, i_idx, j_idx, values)
   30255             :  * 
   30256             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   30257             :  * @cython.wraparound(False)
   30258             :  * def _lil_fancy_set_int32_bool_(cnp.npy_intp M, cnp.npy_intp N,
   30259             :  */
   30260             : 
   30261             :   /* function exit code */
   30262           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   30263           0 :   goto __pyx_L0;
   30264           0 :   __pyx_L1_error:;
   30265           0 :   __Pyx_XDECREF(__pyx_t_9);
   30266           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_bool_", __pyx_clineno, __pyx_lineno, __pyx_filename);
   30267           0 :   __pyx_r = NULL;
   30268           0 :   __pyx_L0:;
   30269           0 :   __Pyx_XGIVEREF(__pyx_r);
   30270           0 :   __Pyx_RefNannyFinishContext();
   30271           0 :   return __pyx_r;
   30272             : }
   30273             : 
   30274             : /* "_csparsetools.pyx":455
   30275             :  *             j = j_idx[x,y]
   30276             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   30277             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   30278             :  * @cython.wraparound(False)
   30279             :  * def _lil_fancy_set_int32_int8(cnp.npy_intp M, cnp.npy_intp N,
   30280             :  */
   30281             : 
   30282             : /* Python wrapper */
   30283             : static PyObject *__pyx_pw_13_csparsetools_53_lil_fancy_set_int32_int8(PyObject *__pyx_self, 
   30284             : #if CYTHON_METH_FASTCALL
   30285             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   30286             : #else
   30287             : PyObject *__pyx_args, PyObject *__pyx_kwds
   30288             : #endif
   30289             : ); /*proto*/
   30290             : static PyMethodDef __pyx_mdef_13_csparsetools_53_lil_fancy_set_int32_int8 = {"_lil_fancy_set_int32_int8", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_53_lil_fancy_set_int32_int8, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   30291           0 : static PyObject *__pyx_pw_13_csparsetools_53_lil_fancy_set_int32_int8(PyObject *__pyx_self, 
   30292             : #if CYTHON_METH_FASTCALL
   30293             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   30294             : #else
   30295             : PyObject *__pyx_args, PyObject *__pyx_kwds
   30296             : #endif
   30297             : ) {
   30298           0 :   npy_intp __pyx_v_M;
   30299           0 :   npy_intp __pyx_v_N;
   30300           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   30301           0 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   30302           0 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   30303           0 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   30304           0 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   30305             :   #if !CYTHON_METH_FASTCALL
   30306             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   30307             :   #endif
   30308           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   30309           0 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   30310           0 :   int __pyx_lineno = 0;
   30311           0 :   const char *__pyx_filename = NULL;
   30312           0 :   int __pyx_clineno = 0;
   30313           0 :   PyObject *__pyx_r = 0;
   30314             :   __Pyx_RefNannyDeclarations
   30315           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_int8 (wrapper)", 0);
   30316             :   #if !CYTHON_METH_FASTCALL
   30317             :   #if CYTHON_ASSUME_SAFE_MACROS
   30318             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   30319             :   #else
   30320             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   30321             :   #endif
   30322             :   #endif
   30323           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   30324             :   {
   30325           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   30326           0 :     if (__pyx_kwds) {
   30327           0 :       Py_ssize_t kw_args;
   30328           0 :       switch (__pyx_nargs) {
   30329           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   30330           0 :         CYTHON_FALLTHROUGH;
   30331           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   30332           0 :         CYTHON_FALLTHROUGH;
   30333           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   30334           0 :         CYTHON_FALLTHROUGH;
   30335           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   30336           0 :         CYTHON_FALLTHROUGH;
   30337           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   30338           0 :         CYTHON_FALLTHROUGH;
   30339           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   30340           0 :         CYTHON_FALLTHROUGH;
   30341           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   30342           0 :         CYTHON_FALLTHROUGH;
   30343           0 :         case  0: break;
   30344           0 :         default: goto __pyx_L5_argtuple_error;
   30345             :       }
   30346           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   30347           0 :       switch (__pyx_nargs) {
   30348           0 :         case  0:
   30349           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   30350           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   30351           0 :           kw_args--;
   30352             :         }
   30353           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 455, __pyx_L3_error)
   30354           0 :         else goto __pyx_L5_argtuple_error;
   30355           0 :         CYTHON_FALLTHROUGH;
   30356             :         case  1:
   30357           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   30358           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   30359           0 :           kw_args--;
   30360             :         }
   30361           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 455, __pyx_L3_error)
   30362             :         else {
   30363           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int8", 1, 7, 7, 1); __PYX_ERR(0, 455, __pyx_L3_error)
   30364             :         }
   30365           0 :         CYTHON_FALLTHROUGH;
   30366             :         case  2:
   30367           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   30368           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   30369           0 :           kw_args--;
   30370             :         }
   30371           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 455, __pyx_L3_error)
   30372             :         else {
   30373           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int8", 1, 7, 7, 2); __PYX_ERR(0, 455, __pyx_L3_error)
   30374             :         }
   30375           0 :         CYTHON_FALLTHROUGH;
   30376             :         case  3:
   30377           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   30378           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   30379           0 :           kw_args--;
   30380             :         }
   30381           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 455, __pyx_L3_error)
   30382             :         else {
   30383           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int8", 1, 7, 7, 3); __PYX_ERR(0, 455, __pyx_L3_error)
   30384             :         }
   30385           0 :         CYTHON_FALLTHROUGH;
   30386             :         case  4:
   30387           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   30388           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   30389           0 :           kw_args--;
   30390             :         }
   30391           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 455, __pyx_L3_error)
   30392             :         else {
   30393           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int8", 1, 7, 7, 4); __PYX_ERR(0, 455, __pyx_L3_error)
   30394             :         }
   30395           0 :         CYTHON_FALLTHROUGH;
   30396             :         case  5:
   30397           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   30398           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   30399           0 :           kw_args--;
   30400             :         }
   30401           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 455, __pyx_L3_error)
   30402             :         else {
   30403           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int8", 1, 7, 7, 5); __PYX_ERR(0, 455, __pyx_L3_error)
   30404             :         }
   30405           0 :         CYTHON_FALLTHROUGH;
   30406             :         case  6:
   30407           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   30408           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   30409           0 :           kw_args--;
   30410             :         }
   30411           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 455, __pyx_L3_error)
   30412             :         else {
   30413           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int8", 1, 7, 7, 6); __PYX_ERR(0, 455, __pyx_L3_error)
   30414             :         }
   30415             :       }
   30416           0 :       if (unlikely(kw_args > 0)) {
   30417           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   30418           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int32_int8") < 0)) __PYX_ERR(0, 455, __pyx_L3_error)
   30419             :       }
   30420           0 :     } else if (unlikely(__pyx_nargs != 7)) {
   30421           0 :       goto __pyx_L5_argtuple_error;
   30422             :     } else {
   30423           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   30424           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   30425           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   30426           0 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   30427           0 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   30428           0 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   30429           0 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   30430             :     }
   30431           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 457, __pyx_L3_error)
   30432           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 457, __pyx_L3_error)
   30433           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 458, __pyx_L3_error)
   30434           0 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 459, __pyx_L3_error)
   30435           0 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 460, __pyx_L3_error)
   30436           0 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 461, __pyx_L3_error)
   30437           0 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int8(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 462, __pyx_L3_error)
   30438             :   }
   30439           0 :   goto __pyx_L6_skip;
   30440           0 :   __pyx_L5_argtuple_error:;
   30441           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int8", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 455, __pyx_L3_error)
   30442           0 :   __pyx_L6_skip:;
   30443           0 :   goto __pyx_L4_argument_unpacking_done;
   30444           0 :   __pyx_L3_error:;
   30445             :   {
   30446           0 :     Py_ssize_t __pyx_temp;
   30447           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   30448             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   30449             :     }
   30450             :   }
   30451           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   30452           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   30453           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   30454           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   30455           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   30456           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_int8", __pyx_clineno, __pyx_lineno, __pyx_filename);
   30457           0 :   __Pyx_RefNannyFinishContext();
   30458           0 :   return NULL;
   30459           0 :   __pyx_L4_argument_unpacking_done:;
   30460           0 :   __pyx_r = __pyx_pf_13_csparsetools_52_lil_fancy_set_int32_int8(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   30461             : 
   30462             :   /* function exit code */
   30463           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   30464           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   30465           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   30466           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   30467           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   30468             :   {
   30469           0 :     Py_ssize_t __pyx_temp;
   30470           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   30471             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   30472             :     }
   30473             :   }
   30474             :   __Pyx_RefNannyFinishContext();
   30475             :   return __pyx_r;
   30476             : }
   30477             : 
   30478           0 : static PyObject *__pyx_pf_13_csparsetools_52_lil_fancy_set_int32_int8(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   30479           0 :   npy_intp __pyx_v_x;
   30480           0 :   npy_intp __pyx_v_y;
   30481           0 :   npy_intp __pyx_v_i;
   30482           0 :   npy_intp __pyx_v_j;
   30483           0 :   PyObject *__pyx_r = NULL;
   30484             :   __Pyx_RefNannyDeclarations
   30485           0 :   Py_ssize_t __pyx_t_1;
   30486           0 :   Py_ssize_t __pyx_t_2;
   30487           0 :   npy_intp __pyx_t_3;
   30488           0 :   Py_ssize_t __pyx_t_4;
   30489           0 :   Py_ssize_t __pyx_t_5;
   30490           0 :   npy_intp __pyx_t_6;
   30491           0 :   Py_ssize_t __pyx_t_7;
   30492           0 :   Py_ssize_t __pyx_t_8;
   30493           0 :   PyObject *__pyx_t_9 = NULL;
   30494           0 :   int __pyx_t_10;
   30495           0 :   int __pyx_lineno = 0;
   30496           0 :   const char *__pyx_filename = NULL;
   30497           0 :   int __pyx_clineno = 0;
   30498           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_int8", 1);
   30499             : 
   30500             :   /* "_csparsetools.pyx":466
   30501             :  *     cdef cnp.npy_intp i, j
   30502             :  * 
   30503             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   30504             :  *         for y in range(i_idx.shape[1]):
   30505             :  *             i = i_idx[x,y]
   30506             :  */
   30507           0 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   30508           0 :   __pyx_t_2 = __pyx_t_1;
   30509           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   30510           0 :     __pyx_v_x = __pyx_t_3;
   30511             : 
   30512             :     /* "_csparsetools.pyx":467
   30513             :  * 
   30514             :  *     for x in range(i_idx.shape[0]):
   30515             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   30516             :  *             i = i_idx[x,y]
   30517             :  *             j = j_idx[x,y]
   30518             :  */
   30519           0 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   30520           0 :     __pyx_t_5 = __pyx_t_4;
   30521           0 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   30522           0 :       __pyx_v_y = __pyx_t_6;
   30523             : 
   30524             :       /* "_csparsetools.pyx":468
   30525             :  *     for x in range(i_idx.shape[0]):
   30526             :  *         for y in range(i_idx.shape[1]):
   30527             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   30528             :  *             j = j_idx[x,y]
   30529             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   30530             :  */
   30531           0 :       __pyx_t_7 = __pyx_v_x;
   30532           0 :       __pyx_t_8 = __pyx_v_y;
   30533           0 :       __pyx_v_i = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   30534             : 
   30535             :       /* "_csparsetools.pyx":469
   30536             :  *         for y in range(i_idx.shape[1]):
   30537             :  *             i = i_idx[x,y]
   30538             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   30539             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   30540             :  * @cython.boundscheck(False)
   30541             :  */
   30542           0 :       __pyx_t_8 = __pyx_v_x;
   30543           0 :       __pyx_t_7 = __pyx_v_y;
   30544           0 :       __pyx_v_j = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   30545             : 
   30546             :       /* "_csparsetools.pyx":470
   30547             :  *             i = i_idx[x,y]
   30548             :  *             j = j_idx[x,y]
   30549             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   30550             :  * @cython.boundscheck(False)
   30551             :  * @cython.wraparound(False)
   30552             :  */
   30553           0 :       __pyx_t_7 = __pyx_v_x;
   30554           0 :       __pyx_t_8 = __pyx_v_y;
   30555           0 :       __pyx_t_9 = __Pyx_PyInt_From_npy_int8((*((npy_int8 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 470, __pyx_L1_error)
   30556           0 :       __Pyx_GOTREF(__pyx_t_9);
   30557           0 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 470, __pyx_L1_error)
   30558           0 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   30559             :     }
   30560             :   }
   30561             : 
   30562             :   /* "_csparsetools.pyx":455
   30563             :  *             j = j_idx[x,y]
   30564             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   30565             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   30566             :  * @cython.wraparound(False)
   30567             :  * def _lil_fancy_set_int32_int8(cnp.npy_intp M, cnp.npy_intp N,
   30568             :  */
   30569             : 
   30570             :   /* function exit code */
   30571           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   30572           0 :   goto __pyx_L0;
   30573           0 :   __pyx_L1_error:;
   30574           0 :   __Pyx_XDECREF(__pyx_t_9);
   30575           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_int8", __pyx_clineno, __pyx_lineno, __pyx_filename);
   30576           0 :   __pyx_r = NULL;
   30577           0 :   __pyx_L0:;
   30578           0 :   __Pyx_XGIVEREF(__pyx_r);
   30579           0 :   __Pyx_RefNannyFinishContext();
   30580           0 :   return __pyx_r;
   30581             : }
   30582             : 
   30583             : /* "_csparsetools.pyx":471
   30584             :  *             j = j_idx[x,y]
   30585             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   30586             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   30587             :  * @cython.wraparound(False)
   30588             :  * def _lil_fancy_set_int32_uint8(cnp.npy_intp M, cnp.npy_intp N,
   30589             :  */
   30590             : 
   30591             : /* Python wrapper */
   30592             : static PyObject *__pyx_pw_13_csparsetools_55_lil_fancy_set_int32_uint8(PyObject *__pyx_self, 
   30593             : #if CYTHON_METH_FASTCALL
   30594             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   30595             : #else
   30596             : PyObject *__pyx_args, PyObject *__pyx_kwds
   30597             : #endif
   30598             : ); /*proto*/
   30599             : static PyMethodDef __pyx_mdef_13_csparsetools_55_lil_fancy_set_int32_uint8 = {"_lil_fancy_set_int32_uint8", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_55_lil_fancy_set_int32_uint8, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   30600           0 : static PyObject *__pyx_pw_13_csparsetools_55_lil_fancy_set_int32_uint8(PyObject *__pyx_self, 
   30601             : #if CYTHON_METH_FASTCALL
   30602             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   30603             : #else
   30604             : PyObject *__pyx_args, PyObject *__pyx_kwds
   30605             : #endif
   30606             : ) {
   30607           0 :   npy_intp __pyx_v_M;
   30608           0 :   npy_intp __pyx_v_N;
   30609           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   30610           0 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   30611           0 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   30612           0 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   30613           0 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   30614             :   #if !CYTHON_METH_FASTCALL
   30615             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   30616             :   #endif
   30617           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   30618           0 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   30619           0 :   int __pyx_lineno = 0;
   30620           0 :   const char *__pyx_filename = NULL;
   30621           0 :   int __pyx_clineno = 0;
   30622           0 :   PyObject *__pyx_r = 0;
   30623             :   __Pyx_RefNannyDeclarations
   30624           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_uint8 (wrapper)", 0);
   30625             :   #if !CYTHON_METH_FASTCALL
   30626             :   #if CYTHON_ASSUME_SAFE_MACROS
   30627             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   30628             :   #else
   30629             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   30630             :   #endif
   30631             :   #endif
   30632           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   30633             :   {
   30634           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   30635           0 :     if (__pyx_kwds) {
   30636           0 :       Py_ssize_t kw_args;
   30637           0 :       switch (__pyx_nargs) {
   30638           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   30639           0 :         CYTHON_FALLTHROUGH;
   30640           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   30641           0 :         CYTHON_FALLTHROUGH;
   30642           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   30643           0 :         CYTHON_FALLTHROUGH;
   30644           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   30645           0 :         CYTHON_FALLTHROUGH;
   30646           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   30647           0 :         CYTHON_FALLTHROUGH;
   30648           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   30649           0 :         CYTHON_FALLTHROUGH;
   30650           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   30651           0 :         CYTHON_FALLTHROUGH;
   30652           0 :         case  0: break;
   30653           0 :         default: goto __pyx_L5_argtuple_error;
   30654             :       }
   30655           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   30656           0 :       switch (__pyx_nargs) {
   30657           0 :         case  0:
   30658           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   30659           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   30660           0 :           kw_args--;
   30661             :         }
   30662           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 471, __pyx_L3_error)
   30663           0 :         else goto __pyx_L5_argtuple_error;
   30664           0 :         CYTHON_FALLTHROUGH;
   30665             :         case  1:
   30666           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   30667           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   30668           0 :           kw_args--;
   30669             :         }
   30670           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 471, __pyx_L3_error)
   30671             :         else {
   30672           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint8", 1, 7, 7, 1); __PYX_ERR(0, 471, __pyx_L3_error)
   30673             :         }
   30674           0 :         CYTHON_FALLTHROUGH;
   30675             :         case  2:
   30676           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   30677           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   30678           0 :           kw_args--;
   30679             :         }
   30680           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 471, __pyx_L3_error)
   30681             :         else {
   30682           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint8", 1, 7, 7, 2); __PYX_ERR(0, 471, __pyx_L3_error)
   30683             :         }
   30684           0 :         CYTHON_FALLTHROUGH;
   30685             :         case  3:
   30686           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   30687           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   30688           0 :           kw_args--;
   30689             :         }
   30690           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 471, __pyx_L3_error)
   30691             :         else {
   30692           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint8", 1, 7, 7, 3); __PYX_ERR(0, 471, __pyx_L3_error)
   30693             :         }
   30694           0 :         CYTHON_FALLTHROUGH;
   30695             :         case  4:
   30696           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   30697           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   30698           0 :           kw_args--;
   30699             :         }
   30700           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 471, __pyx_L3_error)
   30701             :         else {
   30702           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint8", 1, 7, 7, 4); __PYX_ERR(0, 471, __pyx_L3_error)
   30703             :         }
   30704           0 :         CYTHON_FALLTHROUGH;
   30705             :         case  5:
   30706           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   30707           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   30708           0 :           kw_args--;
   30709             :         }
   30710           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 471, __pyx_L3_error)
   30711             :         else {
   30712           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint8", 1, 7, 7, 5); __PYX_ERR(0, 471, __pyx_L3_error)
   30713             :         }
   30714           0 :         CYTHON_FALLTHROUGH;
   30715             :         case  6:
   30716           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   30717           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   30718           0 :           kw_args--;
   30719             :         }
   30720           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 471, __pyx_L3_error)
   30721             :         else {
   30722           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint8", 1, 7, 7, 6); __PYX_ERR(0, 471, __pyx_L3_error)
   30723             :         }
   30724             :       }
   30725           0 :       if (unlikely(kw_args > 0)) {
   30726           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   30727           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int32_uint8") < 0)) __PYX_ERR(0, 471, __pyx_L3_error)
   30728             :       }
   30729           0 :     } else if (unlikely(__pyx_nargs != 7)) {
   30730           0 :       goto __pyx_L5_argtuple_error;
   30731             :     } else {
   30732           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   30733           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   30734           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   30735           0 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   30736           0 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   30737           0 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   30738           0 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   30739             :     }
   30740           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 473, __pyx_L3_error)
   30741           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 473, __pyx_L3_error)
   30742           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 474, __pyx_L3_error)
   30743           0 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 475, __pyx_L3_error)
   30744           0 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 476, __pyx_L3_error)
   30745           0 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 477, __pyx_L3_error)
   30746           0 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_uint8(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 478, __pyx_L3_error)
   30747             :   }
   30748           0 :   goto __pyx_L6_skip;
   30749           0 :   __pyx_L5_argtuple_error:;
   30750           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint8", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 471, __pyx_L3_error)
   30751           0 :   __pyx_L6_skip:;
   30752           0 :   goto __pyx_L4_argument_unpacking_done;
   30753           0 :   __pyx_L3_error:;
   30754             :   {
   30755           0 :     Py_ssize_t __pyx_temp;
   30756           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   30757             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   30758             :     }
   30759             :   }
   30760           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   30761           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   30762           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   30763           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   30764           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   30765           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_uint8", __pyx_clineno, __pyx_lineno, __pyx_filename);
   30766           0 :   __Pyx_RefNannyFinishContext();
   30767           0 :   return NULL;
   30768           0 :   __pyx_L4_argument_unpacking_done:;
   30769           0 :   __pyx_r = __pyx_pf_13_csparsetools_54_lil_fancy_set_int32_uint8(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   30770             : 
   30771             :   /* function exit code */
   30772           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   30773           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   30774           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   30775           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   30776           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   30777             :   {
   30778           0 :     Py_ssize_t __pyx_temp;
   30779           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   30780             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   30781             :     }
   30782             :   }
   30783             :   __Pyx_RefNannyFinishContext();
   30784             :   return __pyx_r;
   30785             : }
   30786             : 
   30787           0 : static PyObject *__pyx_pf_13_csparsetools_54_lil_fancy_set_int32_uint8(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   30788           0 :   npy_intp __pyx_v_x;
   30789           0 :   npy_intp __pyx_v_y;
   30790           0 :   npy_intp __pyx_v_i;
   30791           0 :   npy_intp __pyx_v_j;
   30792           0 :   PyObject *__pyx_r = NULL;
   30793             :   __Pyx_RefNannyDeclarations
   30794           0 :   Py_ssize_t __pyx_t_1;
   30795           0 :   Py_ssize_t __pyx_t_2;
   30796           0 :   npy_intp __pyx_t_3;
   30797           0 :   Py_ssize_t __pyx_t_4;
   30798           0 :   Py_ssize_t __pyx_t_5;
   30799           0 :   npy_intp __pyx_t_6;
   30800           0 :   Py_ssize_t __pyx_t_7;
   30801           0 :   Py_ssize_t __pyx_t_8;
   30802           0 :   PyObject *__pyx_t_9 = NULL;
   30803           0 :   int __pyx_t_10;
   30804           0 :   int __pyx_lineno = 0;
   30805           0 :   const char *__pyx_filename = NULL;
   30806           0 :   int __pyx_clineno = 0;
   30807           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_uint8", 1);
   30808             : 
   30809             :   /* "_csparsetools.pyx":482
   30810             :  *     cdef cnp.npy_intp i, j
   30811             :  * 
   30812             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   30813             :  *         for y in range(i_idx.shape[1]):
   30814             :  *             i = i_idx[x,y]
   30815             :  */
   30816           0 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   30817           0 :   __pyx_t_2 = __pyx_t_1;
   30818           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   30819           0 :     __pyx_v_x = __pyx_t_3;
   30820             : 
   30821             :     /* "_csparsetools.pyx":483
   30822             :  * 
   30823             :  *     for x in range(i_idx.shape[0]):
   30824             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   30825             :  *             i = i_idx[x,y]
   30826             :  *             j = j_idx[x,y]
   30827             :  */
   30828           0 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   30829           0 :     __pyx_t_5 = __pyx_t_4;
   30830           0 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   30831           0 :       __pyx_v_y = __pyx_t_6;
   30832             : 
   30833             :       /* "_csparsetools.pyx":484
   30834             :  *     for x in range(i_idx.shape[0]):
   30835             :  *         for y in range(i_idx.shape[1]):
   30836             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   30837             :  *             j = j_idx[x,y]
   30838             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   30839             :  */
   30840           0 :       __pyx_t_7 = __pyx_v_x;
   30841           0 :       __pyx_t_8 = __pyx_v_y;
   30842           0 :       __pyx_v_i = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   30843             : 
   30844             :       /* "_csparsetools.pyx":485
   30845             :  *         for y in range(i_idx.shape[1]):
   30846             :  *             i = i_idx[x,y]
   30847             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   30848             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   30849             :  * @cython.boundscheck(False)
   30850             :  */
   30851           0 :       __pyx_t_8 = __pyx_v_x;
   30852           0 :       __pyx_t_7 = __pyx_v_y;
   30853           0 :       __pyx_v_j = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   30854             : 
   30855             :       /* "_csparsetools.pyx":486
   30856             :  *             i = i_idx[x,y]
   30857             :  *             j = j_idx[x,y]
   30858             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   30859             :  * @cython.boundscheck(False)
   30860             :  * @cython.wraparound(False)
   30861             :  */
   30862           0 :       __pyx_t_7 = __pyx_v_x;
   30863           0 :       __pyx_t_8 = __pyx_v_y;
   30864           0 :       __pyx_t_9 = __Pyx_PyInt_From_npy_uint8((*((npy_uint8 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 486, __pyx_L1_error)
   30865           0 :       __Pyx_GOTREF(__pyx_t_9);
   30866           0 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 486, __pyx_L1_error)
   30867           0 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   30868             :     }
   30869             :   }
   30870             : 
   30871             :   /* "_csparsetools.pyx":471
   30872             :  *             j = j_idx[x,y]
   30873             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   30874             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   30875             :  * @cython.wraparound(False)
   30876             :  * def _lil_fancy_set_int32_uint8(cnp.npy_intp M, cnp.npy_intp N,
   30877             :  */
   30878             : 
   30879             :   /* function exit code */
   30880           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   30881           0 :   goto __pyx_L0;
   30882           0 :   __pyx_L1_error:;
   30883           0 :   __Pyx_XDECREF(__pyx_t_9);
   30884           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_uint8", __pyx_clineno, __pyx_lineno, __pyx_filename);
   30885           0 :   __pyx_r = NULL;
   30886           0 :   __pyx_L0:;
   30887           0 :   __Pyx_XGIVEREF(__pyx_r);
   30888           0 :   __Pyx_RefNannyFinishContext();
   30889           0 :   return __pyx_r;
   30890             : }
   30891             : 
   30892             : /* "_csparsetools.pyx":487
   30893             :  *             j = j_idx[x,y]
   30894             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   30895             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   30896             :  * @cython.wraparound(False)
   30897             :  * def _lil_fancy_set_int32_int16(cnp.npy_intp M, cnp.npy_intp N,
   30898             :  */
   30899             : 
   30900             : /* Python wrapper */
   30901             : static PyObject *__pyx_pw_13_csparsetools_57_lil_fancy_set_int32_int16(PyObject *__pyx_self, 
   30902             : #if CYTHON_METH_FASTCALL
   30903             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   30904             : #else
   30905             : PyObject *__pyx_args, PyObject *__pyx_kwds
   30906             : #endif
   30907             : ); /*proto*/
   30908             : static PyMethodDef __pyx_mdef_13_csparsetools_57_lil_fancy_set_int32_int16 = {"_lil_fancy_set_int32_int16", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_57_lil_fancy_set_int32_int16, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   30909           0 : static PyObject *__pyx_pw_13_csparsetools_57_lil_fancy_set_int32_int16(PyObject *__pyx_self, 
   30910             : #if CYTHON_METH_FASTCALL
   30911             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   30912             : #else
   30913             : PyObject *__pyx_args, PyObject *__pyx_kwds
   30914             : #endif
   30915             : ) {
   30916           0 :   npy_intp __pyx_v_M;
   30917           0 :   npy_intp __pyx_v_N;
   30918           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   30919           0 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   30920           0 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   30921           0 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   30922           0 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   30923             :   #if !CYTHON_METH_FASTCALL
   30924             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   30925             :   #endif
   30926           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   30927           0 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   30928           0 :   int __pyx_lineno = 0;
   30929           0 :   const char *__pyx_filename = NULL;
   30930           0 :   int __pyx_clineno = 0;
   30931           0 :   PyObject *__pyx_r = 0;
   30932             :   __Pyx_RefNannyDeclarations
   30933           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_int16 (wrapper)", 0);
   30934             :   #if !CYTHON_METH_FASTCALL
   30935             :   #if CYTHON_ASSUME_SAFE_MACROS
   30936             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   30937             :   #else
   30938             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   30939             :   #endif
   30940             :   #endif
   30941           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   30942             :   {
   30943           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   30944           0 :     if (__pyx_kwds) {
   30945           0 :       Py_ssize_t kw_args;
   30946           0 :       switch (__pyx_nargs) {
   30947           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   30948           0 :         CYTHON_FALLTHROUGH;
   30949           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   30950           0 :         CYTHON_FALLTHROUGH;
   30951           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   30952           0 :         CYTHON_FALLTHROUGH;
   30953           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   30954           0 :         CYTHON_FALLTHROUGH;
   30955           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   30956           0 :         CYTHON_FALLTHROUGH;
   30957           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   30958           0 :         CYTHON_FALLTHROUGH;
   30959           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   30960           0 :         CYTHON_FALLTHROUGH;
   30961           0 :         case  0: break;
   30962           0 :         default: goto __pyx_L5_argtuple_error;
   30963             :       }
   30964           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   30965           0 :       switch (__pyx_nargs) {
   30966           0 :         case  0:
   30967           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   30968           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   30969           0 :           kw_args--;
   30970             :         }
   30971           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 487, __pyx_L3_error)
   30972           0 :         else goto __pyx_L5_argtuple_error;
   30973           0 :         CYTHON_FALLTHROUGH;
   30974             :         case  1:
   30975           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   30976           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   30977           0 :           kw_args--;
   30978             :         }
   30979           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 487, __pyx_L3_error)
   30980             :         else {
   30981           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int16", 1, 7, 7, 1); __PYX_ERR(0, 487, __pyx_L3_error)
   30982             :         }
   30983           0 :         CYTHON_FALLTHROUGH;
   30984             :         case  2:
   30985           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   30986           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   30987           0 :           kw_args--;
   30988             :         }
   30989           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 487, __pyx_L3_error)
   30990             :         else {
   30991           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int16", 1, 7, 7, 2); __PYX_ERR(0, 487, __pyx_L3_error)
   30992             :         }
   30993           0 :         CYTHON_FALLTHROUGH;
   30994             :         case  3:
   30995           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   30996           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   30997           0 :           kw_args--;
   30998             :         }
   30999           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 487, __pyx_L3_error)
   31000             :         else {
   31001           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int16", 1, 7, 7, 3); __PYX_ERR(0, 487, __pyx_L3_error)
   31002             :         }
   31003           0 :         CYTHON_FALLTHROUGH;
   31004             :         case  4:
   31005           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   31006           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   31007           0 :           kw_args--;
   31008             :         }
   31009           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 487, __pyx_L3_error)
   31010             :         else {
   31011           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int16", 1, 7, 7, 4); __PYX_ERR(0, 487, __pyx_L3_error)
   31012             :         }
   31013           0 :         CYTHON_FALLTHROUGH;
   31014             :         case  5:
   31015           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   31016           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   31017           0 :           kw_args--;
   31018             :         }
   31019           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 487, __pyx_L3_error)
   31020             :         else {
   31021           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int16", 1, 7, 7, 5); __PYX_ERR(0, 487, __pyx_L3_error)
   31022             :         }
   31023           0 :         CYTHON_FALLTHROUGH;
   31024             :         case  6:
   31025           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   31026           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   31027           0 :           kw_args--;
   31028             :         }
   31029           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 487, __pyx_L3_error)
   31030             :         else {
   31031           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int16", 1, 7, 7, 6); __PYX_ERR(0, 487, __pyx_L3_error)
   31032             :         }
   31033             :       }
   31034           0 :       if (unlikely(kw_args > 0)) {
   31035           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   31036           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int32_int16") < 0)) __PYX_ERR(0, 487, __pyx_L3_error)
   31037             :       }
   31038           0 :     } else if (unlikely(__pyx_nargs != 7)) {
   31039           0 :       goto __pyx_L5_argtuple_error;
   31040             :     } else {
   31041           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   31042           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   31043           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   31044           0 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   31045           0 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   31046           0 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   31047           0 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   31048             :     }
   31049           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L3_error)
   31050           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L3_error)
   31051           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 490, __pyx_L3_error)
   31052           0 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 491, __pyx_L3_error)
   31053           0 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 492, __pyx_L3_error)
   31054           0 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 493, __pyx_L3_error)
   31055           0 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int16(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 494, __pyx_L3_error)
   31056             :   }
   31057           0 :   goto __pyx_L6_skip;
   31058           0 :   __pyx_L5_argtuple_error:;
   31059           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int16", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 487, __pyx_L3_error)
   31060           0 :   __pyx_L6_skip:;
   31061           0 :   goto __pyx_L4_argument_unpacking_done;
   31062           0 :   __pyx_L3_error:;
   31063             :   {
   31064           0 :     Py_ssize_t __pyx_temp;
   31065           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   31066             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   31067             :     }
   31068             :   }
   31069           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   31070           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   31071           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   31072           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   31073           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   31074           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_int16", __pyx_clineno, __pyx_lineno, __pyx_filename);
   31075           0 :   __Pyx_RefNannyFinishContext();
   31076           0 :   return NULL;
   31077           0 :   __pyx_L4_argument_unpacking_done:;
   31078           0 :   __pyx_r = __pyx_pf_13_csparsetools_56_lil_fancy_set_int32_int16(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   31079             : 
   31080             :   /* function exit code */
   31081           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   31082           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   31083           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   31084           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   31085           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   31086             :   {
   31087           0 :     Py_ssize_t __pyx_temp;
   31088           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   31089             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   31090             :     }
   31091             :   }
   31092             :   __Pyx_RefNannyFinishContext();
   31093             :   return __pyx_r;
   31094             : }
   31095             : 
   31096           0 : static PyObject *__pyx_pf_13_csparsetools_56_lil_fancy_set_int32_int16(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   31097           0 :   npy_intp __pyx_v_x;
   31098           0 :   npy_intp __pyx_v_y;
   31099           0 :   npy_intp __pyx_v_i;
   31100           0 :   npy_intp __pyx_v_j;
   31101           0 :   PyObject *__pyx_r = NULL;
   31102             :   __Pyx_RefNannyDeclarations
   31103           0 :   Py_ssize_t __pyx_t_1;
   31104           0 :   Py_ssize_t __pyx_t_2;
   31105           0 :   npy_intp __pyx_t_3;
   31106           0 :   Py_ssize_t __pyx_t_4;
   31107           0 :   Py_ssize_t __pyx_t_5;
   31108           0 :   npy_intp __pyx_t_6;
   31109           0 :   Py_ssize_t __pyx_t_7;
   31110           0 :   Py_ssize_t __pyx_t_8;
   31111           0 :   PyObject *__pyx_t_9 = NULL;
   31112           0 :   int __pyx_t_10;
   31113           0 :   int __pyx_lineno = 0;
   31114           0 :   const char *__pyx_filename = NULL;
   31115           0 :   int __pyx_clineno = 0;
   31116           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_int16", 1);
   31117             : 
   31118             :   /* "_csparsetools.pyx":498
   31119             :  *     cdef cnp.npy_intp i, j
   31120             :  * 
   31121             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   31122             :  *         for y in range(i_idx.shape[1]):
   31123             :  *             i = i_idx[x,y]
   31124             :  */
   31125           0 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   31126           0 :   __pyx_t_2 = __pyx_t_1;
   31127           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   31128           0 :     __pyx_v_x = __pyx_t_3;
   31129             : 
   31130             :     /* "_csparsetools.pyx":499
   31131             :  * 
   31132             :  *     for x in range(i_idx.shape[0]):
   31133             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   31134             :  *             i = i_idx[x,y]
   31135             :  *             j = j_idx[x,y]
   31136             :  */
   31137           0 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   31138           0 :     __pyx_t_5 = __pyx_t_4;
   31139           0 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   31140           0 :       __pyx_v_y = __pyx_t_6;
   31141             : 
   31142             :       /* "_csparsetools.pyx":500
   31143             :  *     for x in range(i_idx.shape[0]):
   31144             :  *         for y in range(i_idx.shape[1]):
   31145             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   31146             :  *             j = j_idx[x,y]
   31147             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   31148             :  */
   31149           0 :       __pyx_t_7 = __pyx_v_x;
   31150           0 :       __pyx_t_8 = __pyx_v_y;
   31151           0 :       __pyx_v_i = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   31152             : 
   31153             :       /* "_csparsetools.pyx":501
   31154             :  *         for y in range(i_idx.shape[1]):
   31155             :  *             i = i_idx[x,y]
   31156             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   31157             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   31158             :  * @cython.boundscheck(False)
   31159             :  */
   31160           0 :       __pyx_t_8 = __pyx_v_x;
   31161           0 :       __pyx_t_7 = __pyx_v_y;
   31162           0 :       __pyx_v_j = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   31163             : 
   31164             :       /* "_csparsetools.pyx":502
   31165             :  *             i = i_idx[x,y]
   31166             :  *             j = j_idx[x,y]
   31167             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   31168             :  * @cython.boundscheck(False)
   31169             :  * @cython.wraparound(False)
   31170             :  */
   31171           0 :       __pyx_t_7 = __pyx_v_x;
   31172           0 :       __pyx_t_8 = __pyx_v_y;
   31173           0 :       __pyx_t_9 = __Pyx_PyInt_From_npy_int16((*((npy_int16 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 502, __pyx_L1_error)
   31174           0 :       __Pyx_GOTREF(__pyx_t_9);
   31175           0 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 502, __pyx_L1_error)
   31176           0 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   31177             :     }
   31178             :   }
   31179             : 
   31180             :   /* "_csparsetools.pyx":487
   31181             :  *             j = j_idx[x,y]
   31182             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   31183             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   31184             :  * @cython.wraparound(False)
   31185             :  * def _lil_fancy_set_int32_int16(cnp.npy_intp M, cnp.npy_intp N,
   31186             :  */
   31187             : 
   31188             :   /* function exit code */
   31189           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   31190           0 :   goto __pyx_L0;
   31191           0 :   __pyx_L1_error:;
   31192           0 :   __Pyx_XDECREF(__pyx_t_9);
   31193           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_int16", __pyx_clineno, __pyx_lineno, __pyx_filename);
   31194           0 :   __pyx_r = NULL;
   31195           0 :   __pyx_L0:;
   31196           0 :   __Pyx_XGIVEREF(__pyx_r);
   31197           0 :   __Pyx_RefNannyFinishContext();
   31198           0 :   return __pyx_r;
   31199             : }
   31200             : 
   31201             : /* "_csparsetools.pyx":503
   31202             :  *             j = j_idx[x,y]
   31203             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   31204             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   31205             :  * @cython.wraparound(False)
   31206             :  * def _lil_fancy_set_int32_uint16(cnp.npy_intp M, cnp.npy_intp N,
   31207             :  */
   31208             : 
   31209             : /* Python wrapper */
   31210             : static PyObject *__pyx_pw_13_csparsetools_59_lil_fancy_set_int32_uint16(PyObject *__pyx_self, 
   31211             : #if CYTHON_METH_FASTCALL
   31212             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   31213             : #else
   31214             : PyObject *__pyx_args, PyObject *__pyx_kwds
   31215             : #endif
   31216             : ); /*proto*/
   31217             : static PyMethodDef __pyx_mdef_13_csparsetools_59_lil_fancy_set_int32_uint16 = {"_lil_fancy_set_int32_uint16", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_59_lil_fancy_set_int32_uint16, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   31218           0 : static PyObject *__pyx_pw_13_csparsetools_59_lil_fancy_set_int32_uint16(PyObject *__pyx_self, 
   31219             : #if CYTHON_METH_FASTCALL
   31220             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   31221             : #else
   31222             : PyObject *__pyx_args, PyObject *__pyx_kwds
   31223             : #endif
   31224             : ) {
   31225           0 :   npy_intp __pyx_v_M;
   31226           0 :   npy_intp __pyx_v_N;
   31227           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   31228           0 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   31229           0 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   31230           0 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   31231           0 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   31232             :   #if !CYTHON_METH_FASTCALL
   31233             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   31234             :   #endif
   31235           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   31236           0 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   31237           0 :   int __pyx_lineno = 0;
   31238           0 :   const char *__pyx_filename = NULL;
   31239           0 :   int __pyx_clineno = 0;
   31240           0 :   PyObject *__pyx_r = 0;
   31241             :   __Pyx_RefNannyDeclarations
   31242           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_uint16 (wrapper)", 0);
   31243             :   #if !CYTHON_METH_FASTCALL
   31244             :   #if CYTHON_ASSUME_SAFE_MACROS
   31245             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   31246             :   #else
   31247             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   31248             :   #endif
   31249             :   #endif
   31250           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   31251             :   {
   31252           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   31253           0 :     if (__pyx_kwds) {
   31254           0 :       Py_ssize_t kw_args;
   31255           0 :       switch (__pyx_nargs) {
   31256           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   31257           0 :         CYTHON_FALLTHROUGH;
   31258           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   31259           0 :         CYTHON_FALLTHROUGH;
   31260           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   31261           0 :         CYTHON_FALLTHROUGH;
   31262           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   31263           0 :         CYTHON_FALLTHROUGH;
   31264           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   31265           0 :         CYTHON_FALLTHROUGH;
   31266           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   31267           0 :         CYTHON_FALLTHROUGH;
   31268           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   31269           0 :         CYTHON_FALLTHROUGH;
   31270           0 :         case  0: break;
   31271           0 :         default: goto __pyx_L5_argtuple_error;
   31272             :       }
   31273           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   31274           0 :       switch (__pyx_nargs) {
   31275           0 :         case  0:
   31276           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   31277           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   31278           0 :           kw_args--;
   31279             :         }
   31280           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 503, __pyx_L3_error)
   31281           0 :         else goto __pyx_L5_argtuple_error;
   31282           0 :         CYTHON_FALLTHROUGH;
   31283             :         case  1:
   31284           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   31285           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   31286           0 :           kw_args--;
   31287             :         }
   31288           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 503, __pyx_L3_error)
   31289             :         else {
   31290           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint16", 1, 7, 7, 1); __PYX_ERR(0, 503, __pyx_L3_error)
   31291             :         }
   31292           0 :         CYTHON_FALLTHROUGH;
   31293             :         case  2:
   31294           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   31295           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   31296           0 :           kw_args--;
   31297             :         }
   31298           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 503, __pyx_L3_error)
   31299             :         else {
   31300           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint16", 1, 7, 7, 2); __PYX_ERR(0, 503, __pyx_L3_error)
   31301             :         }
   31302           0 :         CYTHON_FALLTHROUGH;
   31303             :         case  3:
   31304           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   31305           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   31306           0 :           kw_args--;
   31307             :         }
   31308           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 503, __pyx_L3_error)
   31309             :         else {
   31310           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint16", 1, 7, 7, 3); __PYX_ERR(0, 503, __pyx_L3_error)
   31311             :         }
   31312           0 :         CYTHON_FALLTHROUGH;
   31313             :         case  4:
   31314           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   31315           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   31316           0 :           kw_args--;
   31317             :         }
   31318           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 503, __pyx_L3_error)
   31319             :         else {
   31320           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint16", 1, 7, 7, 4); __PYX_ERR(0, 503, __pyx_L3_error)
   31321             :         }
   31322           0 :         CYTHON_FALLTHROUGH;
   31323             :         case  5:
   31324           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   31325           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   31326           0 :           kw_args--;
   31327             :         }
   31328           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 503, __pyx_L3_error)
   31329             :         else {
   31330           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint16", 1, 7, 7, 5); __PYX_ERR(0, 503, __pyx_L3_error)
   31331             :         }
   31332           0 :         CYTHON_FALLTHROUGH;
   31333             :         case  6:
   31334           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   31335           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   31336           0 :           kw_args--;
   31337             :         }
   31338           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 503, __pyx_L3_error)
   31339             :         else {
   31340           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint16", 1, 7, 7, 6); __PYX_ERR(0, 503, __pyx_L3_error)
   31341             :         }
   31342             :       }
   31343           0 :       if (unlikely(kw_args > 0)) {
   31344           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   31345           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int32_uint16") < 0)) __PYX_ERR(0, 503, __pyx_L3_error)
   31346             :       }
   31347           0 :     } else if (unlikely(__pyx_nargs != 7)) {
   31348           0 :       goto __pyx_L5_argtuple_error;
   31349             :     } else {
   31350           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   31351           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   31352           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   31353           0 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   31354           0 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   31355           0 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   31356           0 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   31357             :     }
   31358           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 505, __pyx_L3_error)
   31359           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 505, __pyx_L3_error)
   31360           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 506, __pyx_L3_error)
   31361           0 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 507, __pyx_L3_error)
   31362           0 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 508, __pyx_L3_error)
   31363           0 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 509, __pyx_L3_error)
   31364           0 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_uint16(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 510, __pyx_L3_error)
   31365             :   }
   31366           0 :   goto __pyx_L6_skip;
   31367           0 :   __pyx_L5_argtuple_error:;
   31368           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint16", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 503, __pyx_L3_error)
   31369           0 :   __pyx_L6_skip:;
   31370           0 :   goto __pyx_L4_argument_unpacking_done;
   31371           0 :   __pyx_L3_error:;
   31372             :   {
   31373           0 :     Py_ssize_t __pyx_temp;
   31374           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   31375             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   31376             :     }
   31377             :   }
   31378           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   31379           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   31380           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   31381           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   31382           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   31383           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_uint16", __pyx_clineno, __pyx_lineno, __pyx_filename);
   31384           0 :   __Pyx_RefNannyFinishContext();
   31385           0 :   return NULL;
   31386           0 :   __pyx_L4_argument_unpacking_done:;
   31387           0 :   __pyx_r = __pyx_pf_13_csparsetools_58_lil_fancy_set_int32_uint16(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   31388             : 
   31389             :   /* function exit code */
   31390           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   31391           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   31392           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   31393           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   31394           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   31395             :   {
   31396           0 :     Py_ssize_t __pyx_temp;
   31397           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   31398             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   31399             :     }
   31400             :   }
   31401             :   __Pyx_RefNannyFinishContext();
   31402             :   return __pyx_r;
   31403             : }
   31404             : 
   31405           0 : static PyObject *__pyx_pf_13_csparsetools_58_lil_fancy_set_int32_uint16(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   31406           0 :   npy_intp __pyx_v_x;
   31407           0 :   npy_intp __pyx_v_y;
   31408           0 :   npy_intp __pyx_v_i;
   31409           0 :   npy_intp __pyx_v_j;
   31410           0 :   PyObject *__pyx_r = NULL;
   31411             :   __Pyx_RefNannyDeclarations
   31412           0 :   Py_ssize_t __pyx_t_1;
   31413           0 :   Py_ssize_t __pyx_t_2;
   31414           0 :   npy_intp __pyx_t_3;
   31415           0 :   Py_ssize_t __pyx_t_4;
   31416           0 :   Py_ssize_t __pyx_t_5;
   31417           0 :   npy_intp __pyx_t_6;
   31418           0 :   Py_ssize_t __pyx_t_7;
   31419           0 :   Py_ssize_t __pyx_t_8;
   31420           0 :   PyObject *__pyx_t_9 = NULL;
   31421           0 :   int __pyx_t_10;
   31422           0 :   int __pyx_lineno = 0;
   31423           0 :   const char *__pyx_filename = NULL;
   31424           0 :   int __pyx_clineno = 0;
   31425           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_uint16", 1);
   31426             : 
   31427             :   /* "_csparsetools.pyx":514
   31428             :  *     cdef cnp.npy_intp i, j
   31429             :  * 
   31430             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   31431             :  *         for y in range(i_idx.shape[1]):
   31432             :  *             i = i_idx[x,y]
   31433             :  */
   31434           0 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   31435           0 :   __pyx_t_2 = __pyx_t_1;
   31436           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   31437           0 :     __pyx_v_x = __pyx_t_3;
   31438             : 
   31439             :     /* "_csparsetools.pyx":515
   31440             :  * 
   31441             :  *     for x in range(i_idx.shape[0]):
   31442             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   31443             :  *             i = i_idx[x,y]
   31444             :  *             j = j_idx[x,y]
   31445             :  */
   31446           0 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   31447           0 :     __pyx_t_5 = __pyx_t_4;
   31448           0 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   31449           0 :       __pyx_v_y = __pyx_t_6;
   31450             : 
   31451             :       /* "_csparsetools.pyx":516
   31452             :  *     for x in range(i_idx.shape[0]):
   31453             :  *         for y in range(i_idx.shape[1]):
   31454             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   31455             :  *             j = j_idx[x,y]
   31456             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   31457             :  */
   31458           0 :       __pyx_t_7 = __pyx_v_x;
   31459           0 :       __pyx_t_8 = __pyx_v_y;
   31460           0 :       __pyx_v_i = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   31461             : 
   31462             :       /* "_csparsetools.pyx":517
   31463             :  *         for y in range(i_idx.shape[1]):
   31464             :  *             i = i_idx[x,y]
   31465             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   31466             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   31467             :  * @cython.boundscheck(False)
   31468             :  */
   31469           0 :       __pyx_t_8 = __pyx_v_x;
   31470           0 :       __pyx_t_7 = __pyx_v_y;
   31471           0 :       __pyx_v_j = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   31472             : 
   31473             :       /* "_csparsetools.pyx":518
   31474             :  *             i = i_idx[x,y]
   31475             :  *             j = j_idx[x,y]
   31476             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   31477             :  * @cython.boundscheck(False)
   31478             :  * @cython.wraparound(False)
   31479             :  */
   31480           0 :       __pyx_t_7 = __pyx_v_x;
   31481           0 :       __pyx_t_8 = __pyx_v_y;
   31482           0 :       __pyx_t_9 = __Pyx_PyInt_From_npy_uint16((*((npy_uint16 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 518, __pyx_L1_error)
   31483           0 :       __Pyx_GOTREF(__pyx_t_9);
   31484           0 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 518, __pyx_L1_error)
   31485           0 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   31486             :     }
   31487             :   }
   31488             : 
   31489             :   /* "_csparsetools.pyx":503
   31490             :  *             j = j_idx[x,y]
   31491             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   31492             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   31493             :  * @cython.wraparound(False)
   31494             :  * def _lil_fancy_set_int32_uint16(cnp.npy_intp M, cnp.npy_intp N,
   31495             :  */
   31496             : 
   31497             :   /* function exit code */
   31498           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   31499           0 :   goto __pyx_L0;
   31500           0 :   __pyx_L1_error:;
   31501           0 :   __Pyx_XDECREF(__pyx_t_9);
   31502           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_uint16", __pyx_clineno, __pyx_lineno, __pyx_filename);
   31503           0 :   __pyx_r = NULL;
   31504           0 :   __pyx_L0:;
   31505           0 :   __Pyx_XGIVEREF(__pyx_r);
   31506           0 :   __Pyx_RefNannyFinishContext();
   31507           0 :   return __pyx_r;
   31508             : }
   31509             : 
   31510             : /* "_csparsetools.pyx":519
   31511             :  *             j = j_idx[x,y]
   31512             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   31513             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   31514             :  * @cython.wraparound(False)
   31515             :  * def _lil_fancy_set_int32_int32(cnp.npy_intp M, cnp.npy_intp N,
   31516             :  */
   31517             : 
   31518             : /* Python wrapper */
   31519             : static PyObject *__pyx_pw_13_csparsetools_61_lil_fancy_set_int32_int32(PyObject *__pyx_self, 
   31520             : #if CYTHON_METH_FASTCALL
   31521             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   31522             : #else
   31523             : PyObject *__pyx_args, PyObject *__pyx_kwds
   31524             : #endif
   31525             : ); /*proto*/
   31526             : static PyMethodDef __pyx_mdef_13_csparsetools_61_lil_fancy_set_int32_int32 = {"_lil_fancy_set_int32_int32", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_61_lil_fancy_set_int32_int32, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   31527           0 : static PyObject *__pyx_pw_13_csparsetools_61_lil_fancy_set_int32_int32(PyObject *__pyx_self, 
   31528             : #if CYTHON_METH_FASTCALL
   31529             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   31530             : #else
   31531             : PyObject *__pyx_args, PyObject *__pyx_kwds
   31532             : #endif
   31533             : ) {
   31534           0 :   npy_intp __pyx_v_M;
   31535           0 :   npy_intp __pyx_v_N;
   31536           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   31537           0 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   31538           0 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   31539           0 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   31540           0 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   31541             :   #if !CYTHON_METH_FASTCALL
   31542             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   31543             :   #endif
   31544           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   31545           0 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   31546           0 :   int __pyx_lineno = 0;
   31547           0 :   const char *__pyx_filename = NULL;
   31548           0 :   int __pyx_clineno = 0;
   31549           0 :   PyObject *__pyx_r = 0;
   31550             :   __Pyx_RefNannyDeclarations
   31551           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_int32 (wrapper)", 0);
   31552             :   #if !CYTHON_METH_FASTCALL
   31553             :   #if CYTHON_ASSUME_SAFE_MACROS
   31554             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   31555             :   #else
   31556             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   31557             :   #endif
   31558             :   #endif
   31559           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   31560             :   {
   31561           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   31562           0 :     if (__pyx_kwds) {
   31563           0 :       Py_ssize_t kw_args;
   31564           0 :       switch (__pyx_nargs) {
   31565           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   31566           0 :         CYTHON_FALLTHROUGH;
   31567           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   31568           0 :         CYTHON_FALLTHROUGH;
   31569           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   31570           0 :         CYTHON_FALLTHROUGH;
   31571           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   31572           0 :         CYTHON_FALLTHROUGH;
   31573           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   31574           0 :         CYTHON_FALLTHROUGH;
   31575           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   31576           0 :         CYTHON_FALLTHROUGH;
   31577           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   31578           0 :         CYTHON_FALLTHROUGH;
   31579           0 :         case  0: break;
   31580           0 :         default: goto __pyx_L5_argtuple_error;
   31581             :       }
   31582           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   31583           0 :       switch (__pyx_nargs) {
   31584           0 :         case  0:
   31585           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   31586           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   31587           0 :           kw_args--;
   31588             :         }
   31589           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 519, __pyx_L3_error)
   31590           0 :         else goto __pyx_L5_argtuple_error;
   31591           0 :         CYTHON_FALLTHROUGH;
   31592             :         case  1:
   31593           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   31594           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   31595           0 :           kw_args--;
   31596             :         }
   31597           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 519, __pyx_L3_error)
   31598             :         else {
   31599           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int32", 1, 7, 7, 1); __PYX_ERR(0, 519, __pyx_L3_error)
   31600             :         }
   31601           0 :         CYTHON_FALLTHROUGH;
   31602             :         case  2:
   31603           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   31604           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   31605           0 :           kw_args--;
   31606             :         }
   31607           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 519, __pyx_L3_error)
   31608             :         else {
   31609           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int32", 1, 7, 7, 2); __PYX_ERR(0, 519, __pyx_L3_error)
   31610             :         }
   31611           0 :         CYTHON_FALLTHROUGH;
   31612             :         case  3:
   31613           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   31614           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   31615           0 :           kw_args--;
   31616             :         }
   31617           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 519, __pyx_L3_error)
   31618             :         else {
   31619           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int32", 1, 7, 7, 3); __PYX_ERR(0, 519, __pyx_L3_error)
   31620             :         }
   31621           0 :         CYTHON_FALLTHROUGH;
   31622             :         case  4:
   31623           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   31624           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   31625           0 :           kw_args--;
   31626             :         }
   31627           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 519, __pyx_L3_error)
   31628             :         else {
   31629           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int32", 1, 7, 7, 4); __PYX_ERR(0, 519, __pyx_L3_error)
   31630             :         }
   31631           0 :         CYTHON_FALLTHROUGH;
   31632             :         case  5:
   31633           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   31634           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   31635           0 :           kw_args--;
   31636             :         }
   31637           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 519, __pyx_L3_error)
   31638             :         else {
   31639           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int32", 1, 7, 7, 5); __PYX_ERR(0, 519, __pyx_L3_error)
   31640             :         }
   31641           0 :         CYTHON_FALLTHROUGH;
   31642             :         case  6:
   31643           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   31644           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   31645           0 :           kw_args--;
   31646             :         }
   31647           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 519, __pyx_L3_error)
   31648             :         else {
   31649           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int32", 1, 7, 7, 6); __PYX_ERR(0, 519, __pyx_L3_error)
   31650             :         }
   31651             :       }
   31652           0 :       if (unlikely(kw_args > 0)) {
   31653           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   31654           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int32_int32") < 0)) __PYX_ERR(0, 519, __pyx_L3_error)
   31655             :       }
   31656           0 :     } else if (unlikely(__pyx_nargs != 7)) {
   31657           0 :       goto __pyx_L5_argtuple_error;
   31658             :     } else {
   31659           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   31660           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   31661           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   31662           0 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   31663           0 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   31664           0 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   31665           0 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   31666             :     }
   31667           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 521, __pyx_L3_error)
   31668           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 521, __pyx_L3_error)
   31669           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 522, __pyx_L3_error)
   31670           0 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 523, __pyx_L3_error)
   31671           0 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 524, __pyx_L3_error)
   31672           0 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 525, __pyx_L3_error)
   31673           0 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 526, __pyx_L3_error)
   31674             :   }
   31675           0 :   goto __pyx_L6_skip;
   31676           0 :   __pyx_L5_argtuple_error:;
   31677           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int32", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 519, __pyx_L3_error)
   31678           0 :   __pyx_L6_skip:;
   31679           0 :   goto __pyx_L4_argument_unpacking_done;
   31680           0 :   __pyx_L3_error:;
   31681             :   {
   31682           0 :     Py_ssize_t __pyx_temp;
   31683           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   31684             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   31685             :     }
   31686             :   }
   31687           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   31688           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   31689           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   31690           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   31691           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   31692           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_int32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   31693           0 :   __Pyx_RefNannyFinishContext();
   31694           0 :   return NULL;
   31695           0 :   __pyx_L4_argument_unpacking_done:;
   31696           0 :   __pyx_r = __pyx_pf_13_csparsetools_60_lil_fancy_set_int32_int32(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   31697             : 
   31698             :   /* function exit code */
   31699           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   31700           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   31701           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   31702           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   31703           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   31704             :   {
   31705           0 :     Py_ssize_t __pyx_temp;
   31706           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   31707             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   31708             :     }
   31709             :   }
   31710             :   __Pyx_RefNannyFinishContext();
   31711             :   return __pyx_r;
   31712             : }
   31713             : 
   31714           0 : static PyObject *__pyx_pf_13_csparsetools_60_lil_fancy_set_int32_int32(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   31715           0 :   npy_intp __pyx_v_x;
   31716           0 :   npy_intp __pyx_v_y;
   31717           0 :   npy_intp __pyx_v_i;
   31718           0 :   npy_intp __pyx_v_j;
   31719           0 :   PyObject *__pyx_r = NULL;
   31720             :   __Pyx_RefNannyDeclarations
   31721           0 :   Py_ssize_t __pyx_t_1;
   31722           0 :   Py_ssize_t __pyx_t_2;
   31723           0 :   npy_intp __pyx_t_3;
   31724           0 :   Py_ssize_t __pyx_t_4;
   31725           0 :   Py_ssize_t __pyx_t_5;
   31726           0 :   npy_intp __pyx_t_6;
   31727           0 :   Py_ssize_t __pyx_t_7;
   31728           0 :   Py_ssize_t __pyx_t_8;
   31729           0 :   PyObject *__pyx_t_9 = NULL;
   31730           0 :   int __pyx_t_10;
   31731           0 :   int __pyx_lineno = 0;
   31732           0 :   const char *__pyx_filename = NULL;
   31733           0 :   int __pyx_clineno = 0;
   31734           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_int32", 1);
   31735             : 
   31736             :   /* "_csparsetools.pyx":530
   31737             :  *     cdef cnp.npy_intp i, j
   31738             :  * 
   31739             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   31740             :  *         for y in range(i_idx.shape[1]):
   31741             :  *             i = i_idx[x,y]
   31742             :  */
   31743           0 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   31744           0 :   __pyx_t_2 = __pyx_t_1;
   31745           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   31746           0 :     __pyx_v_x = __pyx_t_3;
   31747             : 
   31748             :     /* "_csparsetools.pyx":531
   31749             :  * 
   31750             :  *     for x in range(i_idx.shape[0]):
   31751             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   31752             :  *             i = i_idx[x,y]
   31753             :  *             j = j_idx[x,y]
   31754             :  */
   31755           0 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   31756           0 :     __pyx_t_5 = __pyx_t_4;
   31757           0 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   31758           0 :       __pyx_v_y = __pyx_t_6;
   31759             : 
   31760             :       /* "_csparsetools.pyx":532
   31761             :  *     for x in range(i_idx.shape[0]):
   31762             :  *         for y in range(i_idx.shape[1]):
   31763             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   31764             :  *             j = j_idx[x,y]
   31765             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   31766             :  */
   31767           0 :       __pyx_t_7 = __pyx_v_x;
   31768           0 :       __pyx_t_8 = __pyx_v_y;
   31769           0 :       __pyx_v_i = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   31770             : 
   31771             :       /* "_csparsetools.pyx":533
   31772             :  *         for y in range(i_idx.shape[1]):
   31773             :  *             i = i_idx[x,y]
   31774             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   31775             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   31776             :  * @cython.boundscheck(False)
   31777             :  */
   31778           0 :       __pyx_t_8 = __pyx_v_x;
   31779           0 :       __pyx_t_7 = __pyx_v_y;
   31780           0 :       __pyx_v_j = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   31781             : 
   31782             :       /* "_csparsetools.pyx":534
   31783             :  *             i = i_idx[x,y]
   31784             :  *             j = j_idx[x,y]
   31785             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   31786             :  * @cython.boundscheck(False)
   31787             :  * @cython.wraparound(False)
   31788             :  */
   31789           0 :       __pyx_t_7 = __pyx_v_x;
   31790           0 :       __pyx_t_8 = __pyx_v_y;
   31791           0 :       __pyx_t_9 = __Pyx_PyInt_From_npy_int32((*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 534, __pyx_L1_error)
   31792           0 :       __Pyx_GOTREF(__pyx_t_9);
   31793           0 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 534, __pyx_L1_error)
   31794           0 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   31795             :     }
   31796             :   }
   31797             : 
   31798             :   /* "_csparsetools.pyx":519
   31799             :  *             j = j_idx[x,y]
   31800             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   31801             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   31802             :  * @cython.wraparound(False)
   31803             :  * def _lil_fancy_set_int32_int32(cnp.npy_intp M, cnp.npy_intp N,
   31804             :  */
   31805             : 
   31806             :   /* function exit code */
   31807           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   31808           0 :   goto __pyx_L0;
   31809           0 :   __pyx_L1_error:;
   31810           0 :   __Pyx_XDECREF(__pyx_t_9);
   31811           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_int32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   31812           0 :   __pyx_r = NULL;
   31813           0 :   __pyx_L0:;
   31814           0 :   __Pyx_XGIVEREF(__pyx_r);
   31815           0 :   __Pyx_RefNannyFinishContext();
   31816           0 :   return __pyx_r;
   31817             : }
   31818             : 
   31819             : /* "_csparsetools.pyx":535
   31820             :  *             j = j_idx[x,y]
   31821             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   31822             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   31823             :  * @cython.wraparound(False)
   31824             :  * def _lil_fancy_set_int32_uint32(cnp.npy_intp M, cnp.npy_intp N,
   31825             :  */
   31826             : 
   31827             : /* Python wrapper */
   31828             : static PyObject *__pyx_pw_13_csparsetools_63_lil_fancy_set_int32_uint32(PyObject *__pyx_self, 
   31829             : #if CYTHON_METH_FASTCALL
   31830             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   31831             : #else
   31832             : PyObject *__pyx_args, PyObject *__pyx_kwds
   31833             : #endif
   31834             : ); /*proto*/
   31835             : static PyMethodDef __pyx_mdef_13_csparsetools_63_lil_fancy_set_int32_uint32 = {"_lil_fancy_set_int32_uint32", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_63_lil_fancy_set_int32_uint32, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   31836           0 : static PyObject *__pyx_pw_13_csparsetools_63_lil_fancy_set_int32_uint32(PyObject *__pyx_self, 
   31837             : #if CYTHON_METH_FASTCALL
   31838             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   31839             : #else
   31840             : PyObject *__pyx_args, PyObject *__pyx_kwds
   31841             : #endif
   31842             : ) {
   31843           0 :   npy_intp __pyx_v_M;
   31844           0 :   npy_intp __pyx_v_N;
   31845           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   31846           0 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   31847           0 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   31848           0 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   31849           0 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   31850             :   #if !CYTHON_METH_FASTCALL
   31851             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   31852             :   #endif
   31853           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   31854           0 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   31855           0 :   int __pyx_lineno = 0;
   31856           0 :   const char *__pyx_filename = NULL;
   31857           0 :   int __pyx_clineno = 0;
   31858           0 :   PyObject *__pyx_r = 0;
   31859             :   __Pyx_RefNannyDeclarations
   31860           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_uint32 (wrapper)", 0);
   31861             :   #if !CYTHON_METH_FASTCALL
   31862             :   #if CYTHON_ASSUME_SAFE_MACROS
   31863             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   31864             :   #else
   31865             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   31866             :   #endif
   31867             :   #endif
   31868           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   31869             :   {
   31870           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   31871           0 :     if (__pyx_kwds) {
   31872           0 :       Py_ssize_t kw_args;
   31873           0 :       switch (__pyx_nargs) {
   31874           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   31875           0 :         CYTHON_FALLTHROUGH;
   31876           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   31877           0 :         CYTHON_FALLTHROUGH;
   31878           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   31879           0 :         CYTHON_FALLTHROUGH;
   31880           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   31881           0 :         CYTHON_FALLTHROUGH;
   31882           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   31883           0 :         CYTHON_FALLTHROUGH;
   31884           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   31885           0 :         CYTHON_FALLTHROUGH;
   31886           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   31887           0 :         CYTHON_FALLTHROUGH;
   31888           0 :         case  0: break;
   31889           0 :         default: goto __pyx_L5_argtuple_error;
   31890             :       }
   31891           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   31892           0 :       switch (__pyx_nargs) {
   31893           0 :         case  0:
   31894           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   31895           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   31896           0 :           kw_args--;
   31897             :         }
   31898           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 535, __pyx_L3_error)
   31899           0 :         else goto __pyx_L5_argtuple_error;
   31900           0 :         CYTHON_FALLTHROUGH;
   31901             :         case  1:
   31902           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   31903           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   31904           0 :           kw_args--;
   31905             :         }
   31906           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 535, __pyx_L3_error)
   31907             :         else {
   31908           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint32", 1, 7, 7, 1); __PYX_ERR(0, 535, __pyx_L3_error)
   31909             :         }
   31910           0 :         CYTHON_FALLTHROUGH;
   31911             :         case  2:
   31912           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   31913           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   31914           0 :           kw_args--;
   31915             :         }
   31916           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 535, __pyx_L3_error)
   31917             :         else {
   31918           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint32", 1, 7, 7, 2); __PYX_ERR(0, 535, __pyx_L3_error)
   31919             :         }
   31920           0 :         CYTHON_FALLTHROUGH;
   31921             :         case  3:
   31922           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   31923           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   31924           0 :           kw_args--;
   31925             :         }
   31926           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 535, __pyx_L3_error)
   31927             :         else {
   31928           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint32", 1, 7, 7, 3); __PYX_ERR(0, 535, __pyx_L3_error)
   31929             :         }
   31930           0 :         CYTHON_FALLTHROUGH;
   31931             :         case  4:
   31932           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   31933           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   31934           0 :           kw_args--;
   31935             :         }
   31936           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 535, __pyx_L3_error)
   31937             :         else {
   31938           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint32", 1, 7, 7, 4); __PYX_ERR(0, 535, __pyx_L3_error)
   31939             :         }
   31940           0 :         CYTHON_FALLTHROUGH;
   31941             :         case  5:
   31942           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   31943           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   31944           0 :           kw_args--;
   31945             :         }
   31946           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 535, __pyx_L3_error)
   31947             :         else {
   31948           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint32", 1, 7, 7, 5); __PYX_ERR(0, 535, __pyx_L3_error)
   31949             :         }
   31950           0 :         CYTHON_FALLTHROUGH;
   31951             :         case  6:
   31952           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   31953           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   31954           0 :           kw_args--;
   31955             :         }
   31956           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 535, __pyx_L3_error)
   31957             :         else {
   31958           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint32", 1, 7, 7, 6); __PYX_ERR(0, 535, __pyx_L3_error)
   31959             :         }
   31960             :       }
   31961           0 :       if (unlikely(kw_args > 0)) {
   31962           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   31963           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int32_uint32") < 0)) __PYX_ERR(0, 535, __pyx_L3_error)
   31964             :       }
   31965           0 :     } else if (unlikely(__pyx_nargs != 7)) {
   31966           0 :       goto __pyx_L5_argtuple_error;
   31967             :     } else {
   31968           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   31969           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   31970           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   31971           0 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   31972           0 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   31973           0 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   31974           0 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   31975             :     }
   31976           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 537, __pyx_L3_error)
   31977           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 537, __pyx_L3_error)
   31978           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 538, __pyx_L3_error)
   31979           0 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 539, __pyx_L3_error)
   31980           0 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 540, __pyx_L3_error)
   31981           0 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 541, __pyx_L3_error)
   31982           0 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_uint32(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 542, __pyx_L3_error)
   31983             :   }
   31984           0 :   goto __pyx_L6_skip;
   31985           0 :   __pyx_L5_argtuple_error:;
   31986           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint32", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 535, __pyx_L3_error)
   31987           0 :   __pyx_L6_skip:;
   31988           0 :   goto __pyx_L4_argument_unpacking_done;
   31989           0 :   __pyx_L3_error:;
   31990             :   {
   31991           0 :     Py_ssize_t __pyx_temp;
   31992           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   31993             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   31994             :     }
   31995             :   }
   31996           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   31997           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   31998           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   31999           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   32000           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   32001           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_uint32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   32002           0 :   __Pyx_RefNannyFinishContext();
   32003           0 :   return NULL;
   32004           0 :   __pyx_L4_argument_unpacking_done:;
   32005           0 :   __pyx_r = __pyx_pf_13_csparsetools_62_lil_fancy_set_int32_uint32(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   32006             : 
   32007             :   /* function exit code */
   32008           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   32009           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   32010           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   32011           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   32012           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   32013             :   {
   32014           0 :     Py_ssize_t __pyx_temp;
   32015           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   32016             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   32017             :     }
   32018             :   }
   32019             :   __Pyx_RefNannyFinishContext();
   32020             :   return __pyx_r;
   32021             : }
   32022             : 
   32023           0 : static PyObject *__pyx_pf_13_csparsetools_62_lil_fancy_set_int32_uint32(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   32024           0 :   npy_intp __pyx_v_x;
   32025           0 :   npy_intp __pyx_v_y;
   32026           0 :   npy_intp __pyx_v_i;
   32027           0 :   npy_intp __pyx_v_j;
   32028           0 :   PyObject *__pyx_r = NULL;
   32029             :   __Pyx_RefNannyDeclarations
   32030           0 :   Py_ssize_t __pyx_t_1;
   32031           0 :   Py_ssize_t __pyx_t_2;
   32032           0 :   npy_intp __pyx_t_3;
   32033           0 :   Py_ssize_t __pyx_t_4;
   32034           0 :   Py_ssize_t __pyx_t_5;
   32035           0 :   npy_intp __pyx_t_6;
   32036           0 :   Py_ssize_t __pyx_t_7;
   32037           0 :   Py_ssize_t __pyx_t_8;
   32038           0 :   PyObject *__pyx_t_9 = NULL;
   32039           0 :   int __pyx_t_10;
   32040           0 :   int __pyx_lineno = 0;
   32041           0 :   const char *__pyx_filename = NULL;
   32042           0 :   int __pyx_clineno = 0;
   32043           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_uint32", 1);
   32044             : 
   32045             :   /* "_csparsetools.pyx":546
   32046             :  *     cdef cnp.npy_intp i, j
   32047             :  * 
   32048             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   32049             :  *         for y in range(i_idx.shape[1]):
   32050             :  *             i = i_idx[x,y]
   32051             :  */
   32052           0 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   32053           0 :   __pyx_t_2 = __pyx_t_1;
   32054           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   32055           0 :     __pyx_v_x = __pyx_t_3;
   32056             : 
   32057             :     /* "_csparsetools.pyx":547
   32058             :  * 
   32059             :  *     for x in range(i_idx.shape[0]):
   32060             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   32061             :  *             i = i_idx[x,y]
   32062             :  *             j = j_idx[x,y]
   32063             :  */
   32064           0 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   32065           0 :     __pyx_t_5 = __pyx_t_4;
   32066           0 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   32067           0 :       __pyx_v_y = __pyx_t_6;
   32068             : 
   32069             :       /* "_csparsetools.pyx":548
   32070             :  *     for x in range(i_idx.shape[0]):
   32071             :  *         for y in range(i_idx.shape[1]):
   32072             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   32073             :  *             j = j_idx[x,y]
   32074             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   32075             :  */
   32076           0 :       __pyx_t_7 = __pyx_v_x;
   32077           0 :       __pyx_t_8 = __pyx_v_y;
   32078           0 :       __pyx_v_i = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   32079             : 
   32080             :       /* "_csparsetools.pyx":549
   32081             :  *         for y in range(i_idx.shape[1]):
   32082             :  *             i = i_idx[x,y]
   32083             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   32084             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   32085             :  * @cython.boundscheck(False)
   32086             :  */
   32087           0 :       __pyx_t_8 = __pyx_v_x;
   32088           0 :       __pyx_t_7 = __pyx_v_y;
   32089           0 :       __pyx_v_j = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   32090             : 
   32091             :       /* "_csparsetools.pyx":550
   32092             :  *             i = i_idx[x,y]
   32093             :  *             j = j_idx[x,y]
   32094             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   32095             :  * @cython.boundscheck(False)
   32096             :  * @cython.wraparound(False)
   32097             :  */
   32098           0 :       __pyx_t_7 = __pyx_v_x;
   32099           0 :       __pyx_t_8 = __pyx_v_y;
   32100           0 :       __pyx_t_9 = __Pyx_PyInt_From_npy_uint32((*((npy_uint32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 550, __pyx_L1_error)
   32101           0 :       __Pyx_GOTREF(__pyx_t_9);
   32102           0 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 550, __pyx_L1_error)
   32103           0 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   32104             :     }
   32105             :   }
   32106             : 
   32107             :   /* "_csparsetools.pyx":535
   32108             :  *             j = j_idx[x,y]
   32109             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   32110             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   32111             :  * @cython.wraparound(False)
   32112             :  * def _lil_fancy_set_int32_uint32(cnp.npy_intp M, cnp.npy_intp N,
   32113             :  */
   32114             : 
   32115             :   /* function exit code */
   32116           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   32117           0 :   goto __pyx_L0;
   32118           0 :   __pyx_L1_error:;
   32119           0 :   __Pyx_XDECREF(__pyx_t_9);
   32120           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_uint32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   32121           0 :   __pyx_r = NULL;
   32122           0 :   __pyx_L0:;
   32123           0 :   __Pyx_XGIVEREF(__pyx_r);
   32124           0 :   __Pyx_RefNannyFinishContext();
   32125           0 :   return __pyx_r;
   32126             : }
   32127             : 
   32128             : /* "_csparsetools.pyx":551
   32129             :  *             j = j_idx[x,y]
   32130             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   32131             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   32132             :  * @cython.wraparound(False)
   32133             :  * def _lil_fancy_set_int32_int64(cnp.npy_intp M, cnp.npy_intp N,
   32134             :  */
   32135             : 
   32136             : /* Python wrapper */
   32137             : static PyObject *__pyx_pw_13_csparsetools_65_lil_fancy_set_int32_int64(PyObject *__pyx_self, 
   32138             : #if CYTHON_METH_FASTCALL
   32139             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   32140             : #else
   32141             : PyObject *__pyx_args, PyObject *__pyx_kwds
   32142             : #endif
   32143             : ); /*proto*/
   32144             : static PyMethodDef __pyx_mdef_13_csparsetools_65_lil_fancy_set_int32_int64 = {"_lil_fancy_set_int32_int64", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_65_lil_fancy_set_int32_int64, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   32145           0 : static PyObject *__pyx_pw_13_csparsetools_65_lil_fancy_set_int32_int64(PyObject *__pyx_self, 
   32146             : #if CYTHON_METH_FASTCALL
   32147             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   32148             : #else
   32149             : PyObject *__pyx_args, PyObject *__pyx_kwds
   32150             : #endif
   32151             : ) {
   32152           0 :   npy_intp __pyx_v_M;
   32153           0 :   npy_intp __pyx_v_N;
   32154           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   32155           0 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   32156           0 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   32157           0 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   32158           0 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   32159             :   #if !CYTHON_METH_FASTCALL
   32160             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   32161             :   #endif
   32162           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   32163           0 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   32164           0 :   int __pyx_lineno = 0;
   32165           0 :   const char *__pyx_filename = NULL;
   32166           0 :   int __pyx_clineno = 0;
   32167           0 :   PyObject *__pyx_r = 0;
   32168             :   __Pyx_RefNannyDeclarations
   32169           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_int64 (wrapper)", 0);
   32170             :   #if !CYTHON_METH_FASTCALL
   32171             :   #if CYTHON_ASSUME_SAFE_MACROS
   32172             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   32173             :   #else
   32174             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   32175             :   #endif
   32176             :   #endif
   32177           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   32178             :   {
   32179           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   32180           0 :     if (__pyx_kwds) {
   32181           0 :       Py_ssize_t kw_args;
   32182           0 :       switch (__pyx_nargs) {
   32183           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   32184           0 :         CYTHON_FALLTHROUGH;
   32185           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   32186           0 :         CYTHON_FALLTHROUGH;
   32187           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   32188           0 :         CYTHON_FALLTHROUGH;
   32189           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   32190           0 :         CYTHON_FALLTHROUGH;
   32191           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   32192           0 :         CYTHON_FALLTHROUGH;
   32193           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   32194           0 :         CYTHON_FALLTHROUGH;
   32195           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   32196           0 :         CYTHON_FALLTHROUGH;
   32197           0 :         case  0: break;
   32198           0 :         default: goto __pyx_L5_argtuple_error;
   32199             :       }
   32200           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   32201           0 :       switch (__pyx_nargs) {
   32202           0 :         case  0:
   32203           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   32204           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   32205           0 :           kw_args--;
   32206             :         }
   32207           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 551, __pyx_L3_error)
   32208           0 :         else goto __pyx_L5_argtuple_error;
   32209           0 :         CYTHON_FALLTHROUGH;
   32210             :         case  1:
   32211           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   32212           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   32213           0 :           kw_args--;
   32214             :         }
   32215           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 551, __pyx_L3_error)
   32216             :         else {
   32217           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int64", 1, 7, 7, 1); __PYX_ERR(0, 551, __pyx_L3_error)
   32218             :         }
   32219           0 :         CYTHON_FALLTHROUGH;
   32220             :         case  2:
   32221           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   32222           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   32223           0 :           kw_args--;
   32224             :         }
   32225           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 551, __pyx_L3_error)
   32226             :         else {
   32227           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int64", 1, 7, 7, 2); __PYX_ERR(0, 551, __pyx_L3_error)
   32228             :         }
   32229           0 :         CYTHON_FALLTHROUGH;
   32230             :         case  3:
   32231           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   32232           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   32233           0 :           kw_args--;
   32234             :         }
   32235           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 551, __pyx_L3_error)
   32236             :         else {
   32237           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int64", 1, 7, 7, 3); __PYX_ERR(0, 551, __pyx_L3_error)
   32238             :         }
   32239           0 :         CYTHON_FALLTHROUGH;
   32240             :         case  4:
   32241           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   32242           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   32243           0 :           kw_args--;
   32244             :         }
   32245           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 551, __pyx_L3_error)
   32246             :         else {
   32247           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int64", 1, 7, 7, 4); __PYX_ERR(0, 551, __pyx_L3_error)
   32248             :         }
   32249           0 :         CYTHON_FALLTHROUGH;
   32250             :         case  5:
   32251           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   32252           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   32253           0 :           kw_args--;
   32254             :         }
   32255           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 551, __pyx_L3_error)
   32256             :         else {
   32257           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int64", 1, 7, 7, 5); __PYX_ERR(0, 551, __pyx_L3_error)
   32258             :         }
   32259           0 :         CYTHON_FALLTHROUGH;
   32260             :         case  6:
   32261           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   32262           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   32263           0 :           kw_args--;
   32264             :         }
   32265           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 551, __pyx_L3_error)
   32266             :         else {
   32267           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int64", 1, 7, 7, 6); __PYX_ERR(0, 551, __pyx_L3_error)
   32268             :         }
   32269             :       }
   32270           0 :       if (unlikely(kw_args > 0)) {
   32271           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   32272           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int32_int64") < 0)) __PYX_ERR(0, 551, __pyx_L3_error)
   32273             :       }
   32274           0 :     } else if (unlikely(__pyx_nargs != 7)) {
   32275           0 :       goto __pyx_L5_argtuple_error;
   32276             :     } else {
   32277           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   32278           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   32279           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   32280           0 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   32281           0 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   32282           0 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   32283           0 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   32284             :     }
   32285           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 553, __pyx_L3_error)
   32286           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 553, __pyx_L3_error)
   32287           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 554, __pyx_L3_error)
   32288           0 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 555, __pyx_L3_error)
   32289           0 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 556, __pyx_L3_error)
   32290           0 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 557, __pyx_L3_error)
   32291           0 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 558, __pyx_L3_error)
   32292             :   }
   32293           0 :   goto __pyx_L6_skip;
   32294           0 :   __pyx_L5_argtuple_error:;
   32295           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_int64", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 551, __pyx_L3_error)
   32296           0 :   __pyx_L6_skip:;
   32297           0 :   goto __pyx_L4_argument_unpacking_done;
   32298           0 :   __pyx_L3_error:;
   32299             :   {
   32300           0 :     Py_ssize_t __pyx_temp;
   32301           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   32302             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   32303             :     }
   32304             :   }
   32305           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   32306           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   32307           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   32308           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   32309           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   32310           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_int64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   32311           0 :   __Pyx_RefNannyFinishContext();
   32312           0 :   return NULL;
   32313           0 :   __pyx_L4_argument_unpacking_done:;
   32314           0 :   __pyx_r = __pyx_pf_13_csparsetools_64_lil_fancy_set_int32_int64(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   32315             : 
   32316             :   /* function exit code */
   32317           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   32318           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   32319           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   32320           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   32321           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   32322             :   {
   32323           0 :     Py_ssize_t __pyx_temp;
   32324           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   32325             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   32326             :     }
   32327             :   }
   32328             :   __Pyx_RefNannyFinishContext();
   32329             :   return __pyx_r;
   32330             : }
   32331             : 
   32332           0 : static PyObject *__pyx_pf_13_csparsetools_64_lil_fancy_set_int32_int64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   32333           0 :   npy_intp __pyx_v_x;
   32334           0 :   npy_intp __pyx_v_y;
   32335           0 :   npy_intp __pyx_v_i;
   32336           0 :   npy_intp __pyx_v_j;
   32337           0 :   PyObject *__pyx_r = NULL;
   32338             :   __Pyx_RefNannyDeclarations
   32339           0 :   Py_ssize_t __pyx_t_1;
   32340           0 :   Py_ssize_t __pyx_t_2;
   32341           0 :   npy_intp __pyx_t_3;
   32342           0 :   Py_ssize_t __pyx_t_4;
   32343           0 :   Py_ssize_t __pyx_t_5;
   32344           0 :   npy_intp __pyx_t_6;
   32345           0 :   Py_ssize_t __pyx_t_7;
   32346           0 :   Py_ssize_t __pyx_t_8;
   32347           0 :   PyObject *__pyx_t_9 = NULL;
   32348           0 :   int __pyx_t_10;
   32349           0 :   int __pyx_lineno = 0;
   32350           0 :   const char *__pyx_filename = NULL;
   32351           0 :   int __pyx_clineno = 0;
   32352           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_int64", 1);
   32353             : 
   32354             :   /* "_csparsetools.pyx":562
   32355             :  *     cdef cnp.npy_intp i, j
   32356             :  * 
   32357             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   32358             :  *         for y in range(i_idx.shape[1]):
   32359             :  *             i = i_idx[x,y]
   32360             :  */
   32361           0 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   32362           0 :   __pyx_t_2 = __pyx_t_1;
   32363           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   32364           0 :     __pyx_v_x = __pyx_t_3;
   32365             : 
   32366             :     /* "_csparsetools.pyx":563
   32367             :  * 
   32368             :  *     for x in range(i_idx.shape[0]):
   32369             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   32370             :  *             i = i_idx[x,y]
   32371             :  *             j = j_idx[x,y]
   32372             :  */
   32373           0 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   32374           0 :     __pyx_t_5 = __pyx_t_4;
   32375           0 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   32376           0 :       __pyx_v_y = __pyx_t_6;
   32377             : 
   32378             :       /* "_csparsetools.pyx":564
   32379             :  *     for x in range(i_idx.shape[0]):
   32380             :  *         for y in range(i_idx.shape[1]):
   32381             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   32382             :  *             j = j_idx[x,y]
   32383             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   32384             :  */
   32385           0 :       __pyx_t_7 = __pyx_v_x;
   32386           0 :       __pyx_t_8 = __pyx_v_y;
   32387           0 :       __pyx_v_i = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   32388             : 
   32389             :       /* "_csparsetools.pyx":565
   32390             :  *         for y in range(i_idx.shape[1]):
   32391             :  *             i = i_idx[x,y]
   32392             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   32393             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   32394             :  * @cython.boundscheck(False)
   32395             :  */
   32396           0 :       __pyx_t_8 = __pyx_v_x;
   32397           0 :       __pyx_t_7 = __pyx_v_y;
   32398           0 :       __pyx_v_j = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   32399             : 
   32400             :       /* "_csparsetools.pyx":566
   32401             :  *             i = i_idx[x,y]
   32402             :  *             j = j_idx[x,y]
   32403             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   32404             :  * @cython.boundscheck(False)
   32405             :  * @cython.wraparound(False)
   32406             :  */
   32407           0 :       __pyx_t_7 = __pyx_v_x;
   32408           0 :       __pyx_t_8 = __pyx_v_y;
   32409           0 :       __pyx_t_9 = __Pyx_PyInt_From_npy_int64((*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 566, __pyx_L1_error)
   32410           0 :       __Pyx_GOTREF(__pyx_t_9);
   32411           0 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 566, __pyx_L1_error)
   32412           0 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   32413             :     }
   32414             :   }
   32415             : 
   32416             :   /* "_csparsetools.pyx":551
   32417             :  *             j = j_idx[x,y]
   32418             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   32419             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   32420             :  * @cython.wraparound(False)
   32421             :  * def _lil_fancy_set_int32_int64(cnp.npy_intp M, cnp.npy_intp N,
   32422             :  */
   32423             : 
   32424             :   /* function exit code */
   32425           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   32426           0 :   goto __pyx_L0;
   32427           0 :   __pyx_L1_error:;
   32428           0 :   __Pyx_XDECREF(__pyx_t_9);
   32429           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_int64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   32430           0 :   __pyx_r = NULL;
   32431           0 :   __pyx_L0:;
   32432           0 :   __Pyx_XGIVEREF(__pyx_r);
   32433           0 :   __Pyx_RefNannyFinishContext();
   32434           0 :   return __pyx_r;
   32435             : }
   32436             : 
   32437             : /* "_csparsetools.pyx":567
   32438             :  *             j = j_idx[x,y]
   32439             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   32440             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   32441             :  * @cython.wraparound(False)
   32442             :  * def _lil_fancy_set_int32_uint64(cnp.npy_intp M, cnp.npy_intp N,
   32443             :  */
   32444             : 
   32445             : /* Python wrapper */
   32446             : static PyObject *__pyx_pw_13_csparsetools_67_lil_fancy_set_int32_uint64(PyObject *__pyx_self, 
   32447             : #if CYTHON_METH_FASTCALL
   32448             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   32449             : #else
   32450             : PyObject *__pyx_args, PyObject *__pyx_kwds
   32451             : #endif
   32452             : ); /*proto*/
   32453             : static PyMethodDef __pyx_mdef_13_csparsetools_67_lil_fancy_set_int32_uint64 = {"_lil_fancy_set_int32_uint64", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_67_lil_fancy_set_int32_uint64, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   32454           0 : static PyObject *__pyx_pw_13_csparsetools_67_lil_fancy_set_int32_uint64(PyObject *__pyx_self, 
   32455             : #if CYTHON_METH_FASTCALL
   32456             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   32457             : #else
   32458             : PyObject *__pyx_args, PyObject *__pyx_kwds
   32459             : #endif
   32460             : ) {
   32461           0 :   npy_intp __pyx_v_M;
   32462           0 :   npy_intp __pyx_v_N;
   32463           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   32464           0 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   32465           0 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   32466           0 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   32467           0 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   32468             :   #if !CYTHON_METH_FASTCALL
   32469             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   32470             :   #endif
   32471           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   32472           0 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   32473           0 :   int __pyx_lineno = 0;
   32474           0 :   const char *__pyx_filename = NULL;
   32475           0 :   int __pyx_clineno = 0;
   32476           0 :   PyObject *__pyx_r = 0;
   32477             :   __Pyx_RefNannyDeclarations
   32478           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_uint64 (wrapper)", 0);
   32479             :   #if !CYTHON_METH_FASTCALL
   32480             :   #if CYTHON_ASSUME_SAFE_MACROS
   32481             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   32482             :   #else
   32483             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   32484             :   #endif
   32485             :   #endif
   32486           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   32487             :   {
   32488           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   32489           0 :     if (__pyx_kwds) {
   32490           0 :       Py_ssize_t kw_args;
   32491           0 :       switch (__pyx_nargs) {
   32492           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   32493           0 :         CYTHON_FALLTHROUGH;
   32494           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   32495           0 :         CYTHON_FALLTHROUGH;
   32496           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   32497           0 :         CYTHON_FALLTHROUGH;
   32498           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   32499           0 :         CYTHON_FALLTHROUGH;
   32500           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   32501           0 :         CYTHON_FALLTHROUGH;
   32502           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   32503           0 :         CYTHON_FALLTHROUGH;
   32504           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   32505           0 :         CYTHON_FALLTHROUGH;
   32506           0 :         case  0: break;
   32507           0 :         default: goto __pyx_L5_argtuple_error;
   32508             :       }
   32509           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   32510           0 :       switch (__pyx_nargs) {
   32511           0 :         case  0:
   32512           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   32513           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   32514           0 :           kw_args--;
   32515             :         }
   32516           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 567, __pyx_L3_error)
   32517           0 :         else goto __pyx_L5_argtuple_error;
   32518           0 :         CYTHON_FALLTHROUGH;
   32519             :         case  1:
   32520           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   32521           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   32522           0 :           kw_args--;
   32523             :         }
   32524           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 567, __pyx_L3_error)
   32525             :         else {
   32526           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint64", 1, 7, 7, 1); __PYX_ERR(0, 567, __pyx_L3_error)
   32527             :         }
   32528           0 :         CYTHON_FALLTHROUGH;
   32529             :         case  2:
   32530           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   32531           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   32532           0 :           kw_args--;
   32533             :         }
   32534           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 567, __pyx_L3_error)
   32535             :         else {
   32536           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint64", 1, 7, 7, 2); __PYX_ERR(0, 567, __pyx_L3_error)
   32537             :         }
   32538           0 :         CYTHON_FALLTHROUGH;
   32539             :         case  3:
   32540           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   32541           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   32542           0 :           kw_args--;
   32543             :         }
   32544           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 567, __pyx_L3_error)
   32545             :         else {
   32546           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint64", 1, 7, 7, 3); __PYX_ERR(0, 567, __pyx_L3_error)
   32547             :         }
   32548           0 :         CYTHON_FALLTHROUGH;
   32549             :         case  4:
   32550           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   32551           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   32552           0 :           kw_args--;
   32553             :         }
   32554           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 567, __pyx_L3_error)
   32555             :         else {
   32556           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint64", 1, 7, 7, 4); __PYX_ERR(0, 567, __pyx_L3_error)
   32557             :         }
   32558           0 :         CYTHON_FALLTHROUGH;
   32559             :         case  5:
   32560           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   32561           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   32562           0 :           kw_args--;
   32563             :         }
   32564           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 567, __pyx_L3_error)
   32565             :         else {
   32566           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint64", 1, 7, 7, 5); __PYX_ERR(0, 567, __pyx_L3_error)
   32567             :         }
   32568           0 :         CYTHON_FALLTHROUGH;
   32569             :         case  6:
   32570           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   32571           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   32572           0 :           kw_args--;
   32573             :         }
   32574           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 567, __pyx_L3_error)
   32575             :         else {
   32576           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint64", 1, 7, 7, 6); __PYX_ERR(0, 567, __pyx_L3_error)
   32577             :         }
   32578             :       }
   32579           0 :       if (unlikely(kw_args > 0)) {
   32580           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   32581           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int32_uint64") < 0)) __PYX_ERR(0, 567, __pyx_L3_error)
   32582             :       }
   32583           0 :     } else if (unlikely(__pyx_nargs != 7)) {
   32584           0 :       goto __pyx_L5_argtuple_error;
   32585             :     } else {
   32586           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   32587           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   32588           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   32589           0 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   32590           0 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   32591           0 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   32592           0 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   32593             :     }
   32594           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 569, __pyx_L3_error)
   32595           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 569, __pyx_L3_error)
   32596           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 570, __pyx_L3_error)
   32597           0 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 571, __pyx_L3_error)
   32598           0 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 572, __pyx_L3_error)
   32599           0 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 573, __pyx_L3_error)
   32600           0 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_uint64(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 574, __pyx_L3_error)
   32601             :   }
   32602           0 :   goto __pyx_L6_skip;
   32603           0 :   __pyx_L5_argtuple_error:;
   32604           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_uint64", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 567, __pyx_L3_error)
   32605           0 :   __pyx_L6_skip:;
   32606           0 :   goto __pyx_L4_argument_unpacking_done;
   32607           0 :   __pyx_L3_error:;
   32608             :   {
   32609           0 :     Py_ssize_t __pyx_temp;
   32610           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   32611             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   32612             :     }
   32613             :   }
   32614           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   32615           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   32616           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   32617           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   32618           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   32619           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_uint64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   32620           0 :   __Pyx_RefNannyFinishContext();
   32621           0 :   return NULL;
   32622           0 :   __pyx_L4_argument_unpacking_done:;
   32623           0 :   __pyx_r = __pyx_pf_13_csparsetools_66_lil_fancy_set_int32_uint64(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   32624             : 
   32625             :   /* function exit code */
   32626           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   32627           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   32628           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   32629           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   32630           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   32631             :   {
   32632           0 :     Py_ssize_t __pyx_temp;
   32633           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   32634             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   32635             :     }
   32636             :   }
   32637             :   __Pyx_RefNannyFinishContext();
   32638             :   return __pyx_r;
   32639             : }
   32640             : 
   32641           0 : static PyObject *__pyx_pf_13_csparsetools_66_lil_fancy_set_int32_uint64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   32642           0 :   npy_intp __pyx_v_x;
   32643           0 :   npy_intp __pyx_v_y;
   32644           0 :   npy_intp __pyx_v_i;
   32645           0 :   npy_intp __pyx_v_j;
   32646           0 :   PyObject *__pyx_r = NULL;
   32647             :   __Pyx_RefNannyDeclarations
   32648           0 :   Py_ssize_t __pyx_t_1;
   32649           0 :   Py_ssize_t __pyx_t_2;
   32650           0 :   npy_intp __pyx_t_3;
   32651           0 :   Py_ssize_t __pyx_t_4;
   32652           0 :   Py_ssize_t __pyx_t_5;
   32653           0 :   npy_intp __pyx_t_6;
   32654           0 :   Py_ssize_t __pyx_t_7;
   32655           0 :   Py_ssize_t __pyx_t_8;
   32656           0 :   PyObject *__pyx_t_9 = NULL;
   32657           0 :   int __pyx_t_10;
   32658           0 :   int __pyx_lineno = 0;
   32659           0 :   const char *__pyx_filename = NULL;
   32660           0 :   int __pyx_clineno = 0;
   32661           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_uint64", 1);
   32662             : 
   32663             :   /* "_csparsetools.pyx":578
   32664             :  *     cdef cnp.npy_intp i, j
   32665             :  * 
   32666             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   32667             :  *         for y in range(i_idx.shape[1]):
   32668             :  *             i = i_idx[x,y]
   32669             :  */
   32670           0 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   32671           0 :   __pyx_t_2 = __pyx_t_1;
   32672           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   32673           0 :     __pyx_v_x = __pyx_t_3;
   32674             : 
   32675             :     /* "_csparsetools.pyx":579
   32676             :  * 
   32677             :  *     for x in range(i_idx.shape[0]):
   32678             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   32679             :  *             i = i_idx[x,y]
   32680             :  *             j = j_idx[x,y]
   32681             :  */
   32682           0 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   32683           0 :     __pyx_t_5 = __pyx_t_4;
   32684           0 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   32685           0 :       __pyx_v_y = __pyx_t_6;
   32686             : 
   32687             :       /* "_csparsetools.pyx":580
   32688             :  *     for x in range(i_idx.shape[0]):
   32689             :  *         for y in range(i_idx.shape[1]):
   32690             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   32691             :  *             j = j_idx[x,y]
   32692             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   32693             :  */
   32694           0 :       __pyx_t_7 = __pyx_v_x;
   32695           0 :       __pyx_t_8 = __pyx_v_y;
   32696           0 :       __pyx_v_i = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   32697             : 
   32698             :       /* "_csparsetools.pyx":581
   32699             :  *         for y in range(i_idx.shape[1]):
   32700             :  *             i = i_idx[x,y]
   32701             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   32702             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   32703             :  * @cython.boundscheck(False)
   32704             :  */
   32705           0 :       __pyx_t_8 = __pyx_v_x;
   32706           0 :       __pyx_t_7 = __pyx_v_y;
   32707           0 :       __pyx_v_j = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   32708             : 
   32709             :       /* "_csparsetools.pyx":582
   32710             :  *             i = i_idx[x,y]
   32711             :  *             j = j_idx[x,y]
   32712             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   32713             :  * @cython.boundscheck(False)
   32714             :  * @cython.wraparound(False)
   32715             :  */
   32716           0 :       __pyx_t_7 = __pyx_v_x;
   32717           0 :       __pyx_t_8 = __pyx_v_y;
   32718           0 :       __pyx_t_9 = __Pyx_PyInt_From_npy_uint64((*((npy_uint64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
   32719           0 :       __Pyx_GOTREF(__pyx_t_9);
   32720           0 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 582, __pyx_L1_error)
   32721           0 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   32722             :     }
   32723             :   }
   32724             : 
   32725             :   /* "_csparsetools.pyx":567
   32726             :  *             j = j_idx[x,y]
   32727             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   32728             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   32729             :  * @cython.wraparound(False)
   32730             :  * def _lil_fancy_set_int32_uint64(cnp.npy_intp M, cnp.npy_intp N,
   32731             :  */
   32732             : 
   32733             :   /* function exit code */
   32734           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   32735           0 :   goto __pyx_L0;
   32736           0 :   __pyx_L1_error:;
   32737           0 :   __Pyx_XDECREF(__pyx_t_9);
   32738           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_uint64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   32739           0 :   __pyx_r = NULL;
   32740           0 :   __pyx_L0:;
   32741           0 :   __Pyx_XGIVEREF(__pyx_r);
   32742           0 :   __Pyx_RefNannyFinishContext();
   32743           0 :   return __pyx_r;
   32744             : }
   32745             : 
   32746             : /* "_csparsetools.pyx":583
   32747             :  *             j = j_idx[x,y]
   32748             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   32749             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   32750             :  * @cython.wraparound(False)
   32751             :  * def _lil_fancy_set_int32_float32(cnp.npy_intp M, cnp.npy_intp N,
   32752             :  */
   32753             : 
   32754             : /* Python wrapper */
   32755             : static PyObject *__pyx_pw_13_csparsetools_69_lil_fancy_set_int32_float32(PyObject *__pyx_self, 
   32756             : #if CYTHON_METH_FASTCALL
   32757             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   32758             : #else
   32759             : PyObject *__pyx_args, PyObject *__pyx_kwds
   32760             : #endif
   32761             : ); /*proto*/
   32762             : static PyMethodDef __pyx_mdef_13_csparsetools_69_lil_fancy_set_int32_float32 = {"_lil_fancy_set_int32_float32", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_69_lil_fancy_set_int32_float32, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   32763           0 : static PyObject *__pyx_pw_13_csparsetools_69_lil_fancy_set_int32_float32(PyObject *__pyx_self, 
   32764             : #if CYTHON_METH_FASTCALL
   32765             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   32766             : #else
   32767             : PyObject *__pyx_args, PyObject *__pyx_kwds
   32768             : #endif
   32769             : ) {
   32770           0 :   npy_intp __pyx_v_M;
   32771           0 :   npy_intp __pyx_v_N;
   32772           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   32773           0 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   32774           0 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   32775           0 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   32776           0 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   32777             :   #if !CYTHON_METH_FASTCALL
   32778             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   32779             :   #endif
   32780           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   32781           0 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   32782           0 :   int __pyx_lineno = 0;
   32783           0 :   const char *__pyx_filename = NULL;
   32784           0 :   int __pyx_clineno = 0;
   32785           0 :   PyObject *__pyx_r = 0;
   32786             :   __Pyx_RefNannyDeclarations
   32787           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_float32 (wrapper)", 0);
   32788             :   #if !CYTHON_METH_FASTCALL
   32789             :   #if CYTHON_ASSUME_SAFE_MACROS
   32790             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   32791             :   #else
   32792             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   32793             :   #endif
   32794             :   #endif
   32795           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   32796             :   {
   32797           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   32798           0 :     if (__pyx_kwds) {
   32799           0 :       Py_ssize_t kw_args;
   32800           0 :       switch (__pyx_nargs) {
   32801           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   32802           0 :         CYTHON_FALLTHROUGH;
   32803           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   32804           0 :         CYTHON_FALLTHROUGH;
   32805           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   32806           0 :         CYTHON_FALLTHROUGH;
   32807           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   32808           0 :         CYTHON_FALLTHROUGH;
   32809           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   32810           0 :         CYTHON_FALLTHROUGH;
   32811           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   32812           0 :         CYTHON_FALLTHROUGH;
   32813           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   32814           0 :         CYTHON_FALLTHROUGH;
   32815           0 :         case  0: break;
   32816           0 :         default: goto __pyx_L5_argtuple_error;
   32817             :       }
   32818           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   32819           0 :       switch (__pyx_nargs) {
   32820           0 :         case  0:
   32821           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   32822           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   32823           0 :           kw_args--;
   32824             :         }
   32825           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 583, __pyx_L3_error)
   32826           0 :         else goto __pyx_L5_argtuple_error;
   32827           0 :         CYTHON_FALLTHROUGH;
   32828             :         case  1:
   32829           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   32830           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   32831           0 :           kw_args--;
   32832             :         }
   32833           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 583, __pyx_L3_error)
   32834             :         else {
   32835           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_float32", 1, 7, 7, 1); __PYX_ERR(0, 583, __pyx_L3_error)
   32836             :         }
   32837           0 :         CYTHON_FALLTHROUGH;
   32838             :         case  2:
   32839           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   32840           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   32841           0 :           kw_args--;
   32842             :         }
   32843           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 583, __pyx_L3_error)
   32844             :         else {
   32845           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_float32", 1, 7, 7, 2); __PYX_ERR(0, 583, __pyx_L3_error)
   32846             :         }
   32847           0 :         CYTHON_FALLTHROUGH;
   32848             :         case  3:
   32849           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   32850           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   32851           0 :           kw_args--;
   32852             :         }
   32853           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 583, __pyx_L3_error)
   32854             :         else {
   32855           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_float32", 1, 7, 7, 3); __PYX_ERR(0, 583, __pyx_L3_error)
   32856             :         }
   32857           0 :         CYTHON_FALLTHROUGH;
   32858             :         case  4:
   32859           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   32860           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   32861           0 :           kw_args--;
   32862             :         }
   32863           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 583, __pyx_L3_error)
   32864             :         else {
   32865           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_float32", 1, 7, 7, 4); __PYX_ERR(0, 583, __pyx_L3_error)
   32866             :         }
   32867           0 :         CYTHON_FALLTHROUGH;
   32868             :         case  5:
   32869           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   32870           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   32871           0 :           kw_args--;
   32872             :         }
   32873           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 583, __pyx_L3_error)
   32874             :         else {
   32875           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_float32", 1, 7, 7, 5); __PYX_ERR(0, 583, __pyx_L3_error)
   32876             :         }
   32877           0 :         CYTHON_FALLTHROUGH;
   32878             :         case  6:
   32879           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   32880           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   32881           0 :           kw_args--;
   32882             :         }
   32883           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 583, __pyx_L3_error)
   32884             :         else {
   32885           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_float32", 1, 7, 7, 6); __PYX_ERR(0, 583, __pyx_L3_error)
   32886             :         }
   32887             :       }
   32888           0 :       if (unlikely(kw_args > 0)) {
   32889           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   32890           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int32_float32") < 0)) __PYX_ERR(0, 583, __pyx_L3_error)
   32891             :       }
   32892           0 :     } else if (unlikely(__pyx_nargs != 7)) {
   32893           0 :       goto __pyx_L5_argtuple_error;
   32894             :     } else {
   32895           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   32896           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   32897           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   32898           0 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   32899           0 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   32900           0 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   32901           0 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   32902             :     }
   32903           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 585, __pyx_L3_error)
   32904           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 585, __pyx_L3_error)
   32905           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 586, __pyx_L3_error)
   32906           0 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 587, __pyx_L3_error)
   32907           0 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 588, __pyx_L3_error)
   32908           0 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 589, __pyx_L3_error)
   32909           0 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_float32(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 590, __pyx_L3_error)
   32910             :   }
   32911           0 :   goto __pyx_L6_skip;
   32912           0 :   __pyx_L5_argtuple_error:;
   32913           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_float32", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 583, __pyx_L3_error)
   32914           0 :   __pyx_L6_skip:;
   32915           0 :   goto __pyx_L4_argument_unpacking_done;
   32916           0 :   __pyx_L3_error:;
   32917             :   {
   32918           0 :     Py_ssize_t __pyx_temp;
   32919           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   32920             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   32921             :     }
   32922             :   }
   32923           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   32924           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   32925           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   32926           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   32927           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   32928           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_float32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   32929           0 :   __Pyx_RefNannyFinishContext();
   32930           0 :   return NULL;
   32931           0 :   __pyx_L4_argument_unpacking_done:;
   32932           0 :   __pyx_r = __pyx_pf_13_csparsetools_68_lil_fancy_set_int32_float32(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   32933             : 
   32934             :   /* function exit code */
   32935           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   32936           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   32937           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   32938           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   32939           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   32940             :   {
   32941           0 :     Py_ssize_t __pyx_temp;
   32942           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   32943             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   32944             :     }
   32945             :   }
   32946             :   __Pyx_RefNannyFinishContext();
   32947             :   return __pyx_r;
   32948             : }
   32949             : 
   32950           0 : static PyObject *__pyx_pf_13_csparsetools_68_lil_fancy_set_int32_float32(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   32951           0 :   npy_intp __pyx_v_x;
   32952           0 :   npy_intp __pyx_v_y;
   32953           0 :   npy_intp __pyx_v_i;
   32954           0 :   npy_intp __pyx_v_j;
   32955           0 :   PyObject *__pyx_r = NULL;
   32956             :   __Pyx_RefNannyDeclarations
   32957           0 :   Py_ssize_t __pyx_t_1;
   32958           0 :   Py_ssize_t __pyx_t_2;
   32959           0 :   npy_intp __pyx_t_3;
   32960           0 :   Py_ssize_t __pyx_t_4;
   32961           0 :   Py_ssize_t __pyx_t_5;
   32962           0 :   npy_intp __pyx_t_6;
   32963           0 :   Py_ssize_t __pyx_t_7;
   32964           0 :   Py_ssize_t __pyx_t_8;
   32965           0 :   PyObject *__pyx_t_9 = NULL;
   32966           0 :   int __pyx_t_10;
   32967           0 :   int __pyx_lineno = 0;
   32968           0 :   const char *__pyx_filename = NULL;
   32969           0 :   int __pyx_clineno = 0;
   32970           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_float32", 1);
   32971             : 
   32972             :   /* "_csparsetools.pyx":594
   32973             :  *     cdef cnp.npy_intp i, j
   32974             :  * 
   32975             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   32976             :  *         for y in range(i_idx.shape[1]):
   32977             :  *             i = i_idx[x,y]
   32978             :  */
   32979           0 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   32980           0 :   __pyx_t_2 = __pyx_t_1;
   32981           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   32982           0 :     __pyx_v_x = __pyx_t_3;
   32983             : 
   32984             :     /* "_csparsetools.pyx":595
   32985             :  * 
   32986             :  *     for x in range(i_idx.shape[0]):
   32987             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   32988             :  *             i = i_idx[x,y]
   32989             :  *             j = j_idx[x,y]
   32990             :  */
   32991           0 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   32992           0 :     __pyx_t_5 = __pyx_t_4;
   32993           0 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   32994           0 :       __pyx_v_y = __pyx_t_6;
   32995             : 
   32996             :       /* "_csparsetools.pyx":596
   32997             :  *     for x in range(i_idx.shape[0]):
   32998             :  *         for y in range(i_idx.shape[1]):
   32999             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   33000             :  *             j = j_idx[x,y]
   33001             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   33002             :  */
   33003           0 :       __pyx_t_7 = __pyx_v_x;
   33004           0 :       __pyx_t_8 = __pyx_v_y;
   33005           0 :       __pyx_v_i = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   33006             : 
   33007             :       /* "_csparsetools.pyx":597
   33008             :  *         for y in range(i_idx.shape[1]):
   33009             :  *             i = i_idx[x,y]
   33010             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   33011             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   33012             :  * @cython.boundscheck(False)
   33013             :  */
   33014           0 :       __pyx_t_8 = __pyx_v_x;
   33015           0 :       __pyx_t_7 = __pyx_v_y;
   33016           0 :       __pyx_v_j = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   33017             : 
   33018             :       /* "_csparsetools.pyx":598
   33019             :  *             i = i_idx[x,y]
   33020             :  *             j = j_idx[x,y]
   33021             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   33022             :  * @cython.boundscheck(False)
   33023             :  * @cython.wraparound(False)
   33024             :  */
   33025           0 :       __pyx_t_7 = __pyx_v_x;
   33026           0 :       __pyx_t_8 = __pyx_v_y;
   33027           0 :       __pyx_t_9 = PyFloat_FromDouble((*((npy_float32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 598, __pyx_L1_error)
   33028           0 :       __Pyx_GOTREF(__pyx_t_9);
   33029           0 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 598, __pyx_L1_error)
   33030           0 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   33031             :     }
   33032             :   }
   33033             : 
   33034             :   /* "_csparsetools.pyx":583
   33035             :  *             j = j_idx[x,y]
   33036             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   33037             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   33038             :  * @cython.wraparound(False)
   33039             :  * def _lil_fancy_set_int32_float32(cnp.npy_intp M, cnp.npy_intp N,
   33040             :  */
   33041             : 
   33042             :   /* function exit code */
   33043           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   33044           0 :   goto __pyx_L0;
   33045           0 :   __pyx_L1_error:;
   33046           0 :   __Pyx_XDECREF(__pyx_t_9);
   33047           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_float32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   33048           0 :   __pyx_r = NULL;
   33049           0 :   __pyx_L0:;
   33050           0 :   __Pyx_XGIVEREF(__pyx_r);
   33051           0 :   __Pyx_RefNannyFinishContext();
   33052           0 :   return __pyx_r;
   33053             : }
   33054             : 
   33055             : /* "_csparsetools.pyx":599
   33056             :  *             j = j_idx[x,y]
   33057             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   33058             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   33059             :  * @cython.wraparound(False)
   33060             :  * def _lil_fancy_set_int32_float64(cnp.npy_intp M, cnp.npy_intp N,
   33061             :  */
   33062             : 
   33063             : /* Python wrapper */
   33064             : static PyObject *__pyx_pw_13_csparsetools_71_lil_fancy_set_int32_float64(PyObject *__pyx_self, 
   33065             : #if CYTHON_METH_FASTCALL
   33066             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   33067             : #else
   33068             : PyObject *__pyx_args, PyObject *__pyx_kwds
   33069             : #endif
   33070             : ); /*proto*/
   33071             : static PyMethodDef __pyx_mdef_13_csparsetools_71_lil_fancy_set_int32_float64 = {"_lil_fancy_set_int32_float64", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_71_lil_fancy_set_int32_float64, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   33072           0 : static PyObject *__pyx_pw_13_csparsetools_71_lil_fancy_set_int32_float64(PyObject *__pyx_self, 
   33073             : #if CYTHON_METH_FASTCALL
   33074             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   33075             : #else
   33076             : PyObject *__pyx_args, PyObject *__pyx_kwds
   33077             : #endif
   33078             : ) {
   33079           0 :   npy_intp __pyx_v_M;
   33080           0 :   npy_intp __pyx_v_N;
   33081           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   33082           0 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   33083           0 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   33084           0 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   33085           0 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   33086             :   #if !CYTHON_METH_FASTCALL
   33087             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   33088             :   #endif
   33089           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   33090           0 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   33091           0 :   int __pyx_lineno = 0;
   33092           0 :   const char *__pyx_filename = NULL;
   33093           0 :   int __pyx_clineno = 0;
   33094           0 :   PyObject *__pyx_r = 0;
   33095             :   __Pyx_RefNannyDeclarations
   33096           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_float64 (wrapper)", 0);
   33097             :   #if !CYTHON_METH_FASTCALL
   33098             :   #if CYTHON_ASSUME_SAFE_MACROS
   33099             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   33100             :   #else
   33101             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   33102             :   #endif
   33103             :   #endif
   33104           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   33105             :   {
   33106           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   33107           0 :     if (__pyx_kwds) {
   33108           0 :       Py_ssize_t kw_args;
   33109           0 :       switch (__pyx_nargs) {
   33110           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   33111           0 :         CYTHON_FALLTHROUGH;
   33112           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   33113           0 :         CYTHON_FALLTHROUGH;
   33114           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   33115           0 :         CYTHON_FALLTHROUGH;
   33116           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   33117           0 :         CYTHON_FALLTHROUGH;
   33118           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   33119           0 :         CYTHON_FALLTHROUGH;
   33120           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   33121           0 :         CYTHON_FALLTHROUGH;
   33122           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   33123           0 :         CYTHON_FALLTHROUGH;
   33124           0 :         case  0: break;
   33125           0 :         default: goto __pyx_L5_argtuple_error;
   33126             :       }
   33127           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   33128           0 :       switch (__pyx_nargs) {
   33129           0 :         case  0:
   33130           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   33131           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   33132           0 :           kw_args--;
   33133             :         }
   33134           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 599, __pyx_L3_error)
   33135           0 :         else goto __pyx_L5_argtuple_error;
   33136           0 :         CYTHON_FALLTHROUGH;
   33137             :         case  1:
   33138           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   33139           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   33140           0 :           kw_args--;
   33141             :         }
   33142           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 599, __pyx_L3_error)
   33143             :         else {
   33144           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_float64", 1, 7, 7, 1); __PYX_ERR(0, 599, __pyx_L3_error)
   33145             :         }
   33146           0 :         CYTHON_FALLTHROUGH;
   33147             :         case  2:
   33148           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   33149           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   33150           0 :           kw_args--;
   33151             :         }
   33152           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 599, __pyx_L3_error)
   33153             :         else {
   33154           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_float64", 1, 7, 7, 2); __PYX_ERR(0, 599, __pyx_L3_error)
   33155             :         }
   33156           0 :         CYTHON_FALLTHROUGH;
   33157             :         case  3:
   33158           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   33159           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   33160           0 :           kw_args--;
   33161             :         }
   33162           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 599, __pyx_L3_error)
   33163             :         else {
   33164           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_float64", 1, 7, 7, 3); __PYX_ERR(0, 599, __pyx_L3_error)
   33165             :         }
   33166           0 :         CYTHON_FALLTHROUGH;
   33167             :         case  4:
   33168           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   33169           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   33170           0 :           kw_args--;
   33171             :         }
   33172           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 599, __pyx_L3_error)
   33173             :         else {
   33174           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_float64", 1, 7, 7, 4); __PYX_ERR(0, 599, __pyx_L3_error)
   33175             :         }
   33176           0 :         CYTHON_FALLTHROUGH;
   33177             :         case  5:
   33178           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   33179           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   33180           0 :           kw_args--;
   33181             :         }
   33182           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 599, __pyx_L3_error)
   33183             :         else {
   33184           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_float64", 1, 7, 7, 5); __PYX_ERR(0, 599, __pyx_L3_error)
   33185             :         }
   33186           0 :         CYTHON_FALLTHROUGH;
   33187             :         case  6:
   33188           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   33189           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   33190           0 :           kw_args--;
   33191             :         }
   33192           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 599, __pyx_L3_error)
   33193             :         else {
   33194           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_float64", 1, 7, 7, 6); __PYX_ERR(0, 599, __pyx_L3_error)
   33195             :         }
   33196             :       }
   33197           0 :       if (unlikely(kw_args > 0)) {
   33198           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   33199           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int32_float64") < 0)) __PYX_ERR(0, 599, __pyx_L3_error)
   33200             :       }
   33201           0 :     } else if (unlikely(__pyx_nargs != 7)) {
   33202           0 :       goto __pyx_L5_argtuple_error;
   33203             :     } else {
   33204           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   33205           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   33206           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   33207           0 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   33208           0 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   33209           0 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   33210           0 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   33211             :     }
   33212           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 601, __pyx_L3_error)
   33213           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 601, __pyx_L3_error)
   33214           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 602, __pyx_L3_error)
   33215           0 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 603, __pyx_L3_error)
   33216           0 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 604, __pyx_L3_error)
   33217           0 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 605, __pyx_L3_error)
   33218           0 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_float64(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 606, __pyx_L3_error)
   33219             :   }
   33220           0 :   goto __pyx_L6_skip;
   33221           0 :   __pyx_L5_argtuple_error:;
   33222           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_float64", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 599, __pyx_L3_error)
   33223           0 :   __pyx_L6_skip:;
   33224           0 :   goto __pyx_L4_argument_unpacking_done;
   33225           0 :   __pyx_L3_error:;
   33226             :   {
   33227           0 :     Py_ssize_t __pyx_temp;
   33228           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   33229             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   33230             :     }
   33231             :   }
   33232           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   33233           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   33234           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   33235           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   33236           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   33237           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_float64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   33238           0 :   __Pyx_RefNannyFinishContext();
   33239           0 :   return NULL;
   33240           0 :   __pyx_L4_argument_unpacking_done:;
   33241           0 :   __pyx_r = __pyx_pf_13_csparsetools_70_lil_fancy_set_int32_float64(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   33242             : 
   33243             :   /* function exit code */
   33244           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   33245           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   33246           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   33247           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   33248           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   33249             :   {
   33250           0 :     Py_ssize_t __pyx_temp;
   33251           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   33252             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   33253             :     }
   33254             :   }
   33255             :   __Pyx_RefNannyFinishContext();
   33256             :   return __pyx_r;
   33257             : }
   33258             : 
   33259           0 : static PyObject *__pyx_pf_13_csparsetools_70_lil_fancy_set_int32_float64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   33260           0 :   npy_intp __pyx_v_x;
   33261           0 :   npy_intp __pyx_v_y;
   33262           0 :   npy_intp __pyx_v_i;
   33263           0 :   npy_intp __pyx_v_j;
   33264           0 :   PyObject *__pyx_r = NULL;
   33265             :   __Pyx_RefNannyDeclarations
   33266           0 :   Py_ssize_t __pyx_t_1;
   33267           0 :   Py_ssize_t __pyx_t_2;
   33268           0 :   npy_intp __pyx_t_3;
   33269           0 :   Py_ssize_t __pyx_t_4;
   33270           0 :   Py_ssize_t __pyx_t_5;
   33271           0 :   npy_intp __pyx_t_6;
   33272           0 :   Py_ssize_t __pyx_t_7;
   33273           0 :   Py_ssize_t __pyx_t_8;
   33274           0 :   PyObject *__pyx_t_9 = NULL;
   33275           0 :   int __pyx_t_10;
   33276           0 :   int __pyx_lineno = 0;
   33277           0 :   const char *__pyx_filename = NULL;
   33278           0 :   int __pyx_clineno = 0;
   33279           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_float64", 1);
   33280             : 
   33281             :   /* "_csparsetools.pyx":610
   33282             :  *     cdef cnp.npy_intp i, j
   33283             :  * 
   33284             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   33285             :  *         for y in range(i_idx.shape[1]):
   33286             :  *             i = i_idx[x,y]
   33287             :  */
   33288           0 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   33289           0 :   __pyx_t_2 = __pyx_t_1;
   33290           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   33291           0 :     __pyx_v_x = __pyx_t_3;
   33292             : 
   33293             :     /* "_csparsetools.pyx":611
   33294             :  * 
   33295             :  *     for x in range(i_idx.shape[0]):
   33296             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   33297             :  *             i = i_idx[x,y]
   33298             :  *             j = j_idx[x,y]
   33299             :  */
   33300           0 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   33301           0 :     __pyx_t_5 = __pyx_t_4;
   33302           0 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   33303           0 :       __pyx_v_y = __pyx_t_6;
   33304             : 
   33305             :       /* "_csparsetools.pyx":612
   33306             :  *     for x in range(i_idx.shape[0]):
   33307             :  *         for y in range(i_idx.shape[1]):
   33308             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   33309             :  *             j = j_idx[x,y]
   33310             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   33311             :  */
   33312           0 :       __pyx_t_7 = __pyx_v_x;
   33313           0 :       __pyx_t_8 = __pyx_v_y;
   33314           0 :       __pyx_v_i = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   33315             : 
   33316             :       /* "_csparsetools.pyx":613
   33317             :  *         for y in range(i_idx.shape[1]):
   33318             :  *             i = i_idx[x,y]
   33319             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   33320             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   33321             :  * @cython.boundscheck(False)
   33322             :  */
   33323           0 :       __pyx_t_8 = __pyx_v_x;
   33324           0 :       __pyx_t_7 = __pyx_v_y;
   33325           0 :       __pyx_v_j = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   33326             : 
   33327             :       /* "_csparsetools.pyx":614
   33328             :  *             i = i_idx[x,y]
   33329             :  *             j = j_idx[x,y]
   33330             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   33331             :  * @cython.boundscheck(False)
   33332             :  * @cython.wraparound(False)
   33333             :  */
   33334           0 :       __pyx_t_7 = __pyx_v_x;
   33335           0 :       __pyx_t_8 = __pyx_v_y;
   33336           0 :       __pyx_t_9 = PyFloat_FromDouble((*((npy_float64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 614, __pyx_L1_error)
   33337           0 :       __Pyx_GOTREF(__pyx_t_9);
   33338           0 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 614, __pyx_L1_error)
   33339           0 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   33340             :     }
   33341             :   }
   33342             : 
   33343             :   /* "_csparsetools.pyx":599
   33344             :  *             j = j_idx[x,y]
   33345             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   33346             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   33347             :  * @cython.wraparound(False)
   33348             :  * def _lil_fancy_set_int32_float64(cnp.npy_intp M, cnp.npy_intp N,
   33349             :  */
   33350             : 
   33351             :   /* function exit code */
   33352           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   33353           0 :   goto __pyx_L0;
   33354           0 :   __pyx_L1_error:;
   33355           0 :   __Pyx_XDECREF(__pyx_t_9);
   33356           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_float64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   33357           0 :   __pyx_r = NULL;
   33358           0 :   __pyx_L0:;
   33359           0 :   __Pyx_XGIVEREF(__pyx_r);
   33360           0 :   __Pyx_RefNannyFinishContext();
   33361           0 :   return __pyx_r;
   33362             : }
   33363             : 
   33364             : /* "_csparsetools.pyx":615
   33365             :  *             j = j_idx[x,y]
   33366             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   33367             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   33368             :  * @cython.wraparound(False)
   33369             :  * def _lil_fancy_set_int32_longdouble(cnp.npy_intp M, cnp.npy_intp N,
   33370             :  */
   33371             : 
   33372             : /* Python wrapper */
   33373             : static PyObject *__pyx_pw_13_csparsetools_73_lil_fancy_set_int32_longdouble(PyObject *__pyx_self, 
   33374             : #if CYTHON_METH_FASTCALL
   33375             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   33376             : #else
   33377             : PyObject *__pyx_args, PyObject *__pyx_kwds
   33378             : #endif
   33379             : ); /*proto*/
   33380             : static PyMethodDef __pyx_mdef_13_csparsetools_73_lil_fancy_set_int32_longdouble = {"_lil_fancy_set_int32_longdouble", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_73_lil_fancy_set_int32_longdouble, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   33381           0 : static PyObject *__pyx_pw_13_csparsetools_73_lil_fancy_set_int32_longdouble(PyObject *__pyx_self, 
   33382             : #if CYTHON_METH_FASTCALL
   33383             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   33384             : #else
   33385             : PyObject *__pyx_args, PyObject *__pyx_kwds
   33386             : #endif
   33387             : ) {
   33388           0 :   npy_intp __pyx_v_M;
   33389           0 :   npy_intp __pyx_v_N;
   33390           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   33391           0 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   33392           0 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   33393           0 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   33394           0 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   33395             :   #if !CYTHON_METH_FASTCALL
   33396             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   33397             :   #endif
   33398           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   33399           0 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   33400           0 :   int __pyx_lineno = 0;
   33401           0 :   const char *__pyx_filename = NULL;
   33402           0 :   int __pyx_clineno = 0;
   33403           0 :   PyObject *__pyx_r = 0;
   33404             :   __Pyx_RefNannyDeclarations
   33405           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_longdouble (wrapper)", 0);
   33406             :   #if !CYTHON_METH_FASTCALL
   33407             :   #if CYTHON_ASSUME_SAFE_MACROS
   33408             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   33409             :   #else
   33410             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   33411             :   #endif
   33412             :   #endif
   33413           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   33414             :   {
   33415           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   33416           0 :     if (__pyx_kwds) {
   33417           0 :       Py_ssize_t kw_args;
   33418           0 :       switch (__pyx_nargs) {
   33419           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   33420           0 :         CYTHON_FALLTHROUGH;
   33421           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   33422           0 :         CYTHON_FALLTHROUGH;
   33423           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   33424           0 :         CYTHON_FALLTHROUGH;
   33425           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   33426           0 :         CYTHON_FALLTHROUGH;
   33427           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   33428           0 :         CYTHON_FALLTHROUGH;
   33429           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   33430           0 :         CYTHON_FALLTHROUGH;
   33431           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   33432           0 :         CYTHON_FALLTHROUGH;
   33433           0 :         case  0: break;
   33434           0 :         default: goto __pyx_L5_argtuple_error;
   33435             :       }
   33436           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   33437           0 :       switch (__pyx_nargs) {
   33438           0 :         case  0:
   33439           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   33440           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   33441           0 :           kw_args--;
   33442             :         }
   33443           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 615, __pyx_L3_error)
   33444           0 :         else goto __pyx_L5_argtuple_error;
   33445           0 :         CYTHON_FALLTHROUGH;
   33446             :         case  1:
   33447           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   33448           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   33449           0 :           kw_args--;
   33450             :         }
   33451           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 615, __pyx_L3_error)
   33452             :         else {
   33453           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_longdouble", 1, 7, 7, 1); __PYX_ERR(0, 615, __pyx_L3_error)
   33454             :         }
   33455           0 :         CYTHON_FALLTHROUGH;
   33456             :         case  2:
   33457           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   33458           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   33459           0 :           kw_args--;
   33460             :         }
   33461           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 615, __pyx_L3_error)
   33462             :         else {
   33463           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_longdouble", 1, 7, 7, 2); __PYX_ERR(0, 615, __pyx_L3_error)
   33464             :         }
   33465           0 :         CYTHON_FALLTHROUGH;
   33466             :         case  3:
   33467           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   33468           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   33469           0 :           kw_args--;
   33470             :         }
   33471           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 615, __pyx_L3_error)
   33472             :         else {
   33473           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_longdouble", 1, 7, 7, 3); __PYX_ERR(0, 615, __pyx_L3_error)
   33474             :         }
   33475           0 :         CYTHON_FALLTHROUGH;
   33476             :         case  4:
   33477           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   33478           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   33479           0 :           kw_args--;
   33480             :         }
   33481           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 615, __pyx_L3_error)
   33482             :         else {
   33483           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_longdouble", 1, 7, 7, 4); __PYX_ERR(0, 615, __pyx_L3_error)
   33484             :         }
   33485           0 :         CYTHON_FALLTHROUGH;
   33486             :         case  5:
   33487           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   33488           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   33489           0 :           kw_args--;
   33490             :         }
   33491           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 615, __pyx_L3_error)
   33492             :         else {
   33493           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_longdouble", 1, 7, 7, 5); __PYX_ERR(0, 615, __pyx_L3_error)
   33494             :         }
   33495           0 :         CYTHON_FALLTHROUGH;
   33496             :         case  6:
   33497           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   33498           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   33499           0 :           kw_args--;
   33500             :         }
   33501           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 615, __pyx_L3_error)
   33502             :         else {
   33503           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_longdouble", 1, 7, 7, 6); __PYX_ERR(0, 615, __pyx_L3_error)
   33504             :         }
   33505             :       }
   33506           0 :       if (unlikely(kw_args > 0)) {
   33507           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   33508           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int32_longdouble") < 0)) __PYX_ERR(0, 615, __pyx_L3_error)
   33509             :       }
   33510           0 :     } else if (unlikely(__pyx_nargs != 7)) {
   33511           0 :       goto __pyx_L5_argtuple_error;
   33512             :     } else {
   33513           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   33514           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   33515           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   33516           0 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   33517           0 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   33518           0 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   33519           0 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   33520             :     }
   33521           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 617, __pyx_L3_error)
   33522           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 617, __pyx_L3_error)
   33523           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 618, __pyx_L3_error)
   33524           0 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 619, __pyx_L3_error)
   33525           0 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 620, __pyx_L3_error)
   33526           0 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 621, __pyx_L3_error)
   33527           0 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_long__double(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 622, __pyx_L3_error)
   33528             :   }
   33529           0 :   goto __pyx_L6_skip;
   33530           0 :   __pyx_L5_argtuple_error:;
   33531           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_longdouble", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 615, __pyx_L3_error)
   33532           0 :   __pyx_L6_skip:;
   33533           0 :   goto __pyx_L4_argument_unpacking_done;
   33534           0 :   __pyx_L3_error:;
   33535             :   {
   33536           0 :     Py_ssize_t __pyx_temp;
   33537           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   33538             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   33539             :     }
   33540             :   }
   33541           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   33542           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   33543           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   33544           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   33545           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   33546           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_longdouble", __pyx_clineno, __pyx_lineno, __pyx_filename);
   33547           0 :   __Pyx_RefNannyFinishContext();
   33548           0 :   return NULL;
   33549           0 :   __pyx_L4_argument_unpacking_done:;
   33550           0 :   __pyx_r = __pyx_pf_13_csparsetools_72_lil_fancy_set_int32_longdouble(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   33551             : 
   33552             :   /* function exit code */
   33553           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   33554           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   33555           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   33556           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   33557           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   33558             :   {
   33559           0 :     Py_ssize_t __pyx_temp;
   33560           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   33561             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   33562             :     }
   33563             :   }
   33564             :   __Pyx_RefNannyFinishContext();
   33565             :   return __pyx_r;
   33566             : }
   33567             : 
   33568           0 : static PyObject *__pyx_pf_13_csparsetools_72_lil_fancy_set_int32_longdouble(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   33569           0 :   npy_intp __pyx_v_x;
   33570           0 :   npy_intp __pyx_v_y;
   33571           0 :   npy_intp __pyx_v_i;
   33572           0 :   npy_intp __pyx_v_j;
   33573           0 :   PyObject *__pyx_r = NULL;
   33574             :   __Pyx_RefNannyDeclarations
   33575           0 :   Py_ssize_t __pyx_t_1;
   33576           0 :   Py_ssize_t __pyx_t_2;
   33577           0 :   npy_intp __pyx_t_3;
   33578           0 :   Py_ssize_t __pyx_t_4;
   33579           0 :   Py_ssize_t __pyx_t_5;
   33580           0 :   npy_intp __pyx_t_6;
   33581           0 :   Py_ssize_t __pyx_t_7;
   33582           0 :   Py_ssize_t __pyx_t_8;
   33583           0 :   PyObject *__pyx_t_9 = NULL;
   33584           0 :   int __pyx_t_10;
   33585           0 :   int __pyx_lineno = 0;
   33586           0 :   const char *__pyx_filename = NULL;
   33587           0 :   int __pyx_clineno = 0;
   33588           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_longdouble", 1);
   33589             : 
   33590             :   /* "_csparsetools.pyx":626
   33591             :  *     cdef cnp.npy_intp i, j
   33592             :  * 
   33593             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   33594             :  *         for y in range(i_idx.shape[1]):
   33595             :  *             i = i_idx[x,y]
   33596             :  */
   33597           0 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   33598           0 :   __pyx_t_2 = __pyx_t_1;
   33599           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   33600           0 :     __pyx_v_x = __pyx_t_3;
   33601             : 
   33602             :     /* "_csparsetools.pyx":627
   33603             :  * 
   33604             :  *     for x in range(i_idx.shape[0]):
   33605             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   33606             :  *             i = i_idx[x,y]
   33607             :  *             j = j_idx[x,y]
   33608             :  */
   33609           0 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   33610           0 :     __pyx_t_5 = __pyx_t_4;
   33611           0 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   33612           0 :       __pyx_v_y = __pyx_t_6;
   33613             : 
   33614             :       /* "_csparsetools.pyx":628
   33615             :  *     for x in range(i_idx.shape[0]):
   33616             :  *         for y in range(i_idx.shape[1]):
   33617             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   33618             :  *             j = j_idx[x,y]
   33619             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   33620             :  */
   33621           0 :       __pyx_t_7 = __pyx_v_x;
   33622           0 :       __pyx_t_8 = __pyx_v_y;
   33623           0 :       __pyx_v_i = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   33624             : 
   33625             :       /* "_csparsetools.pyx":629
   33626             :  *         for y in range(i_idx.shape[1]):
   33627             :  *             i = i_idx[x,y]
   33628             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   33629             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   33630             :  * @cython.boundscheck(False)
   33631             :  */
   33632           0 :       __pyx_t_8 = __pyx_v_x;
   33633           0 :       __pyx_t_7 = __pyx_v_y;
   33634           0 :       __pyx_v_j = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   33635             : 
   33636             :       /* "_csparsetools.pyx":630
   33637             :  *             i = i_idx[x,y]
   33638             :  *             j = j_idx[x,y]
   33639             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   33640             :  * @cython.boundscheck(False)
   33641             :  * @cython.wraparound(False)
   33642             :  */
   33643           0 :       __pyx_t_7 = __pyx_v_x;
   33644           0 :       __pyx_t_8 = __pyx_v_y;
   33645           0 :       __pyx_t_9 = PyFloat_FromDouble((*((long double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 630, __pyx_L1_error)
   33646           0 :       __Pyx_GOTREF(__pyx_t_9);
   33647           0 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 630, __pyx_L1_error)
   33648           0 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   33649             :     }
   33650             :   }
   33651             : 
   33652             :   /* "_csparsetools.pyx":615
   33653             :  *             j = j_idx[x,y]
   33654             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   33655             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   33656             :  * @cython.wraparound(False)
   33657             :  * def _lil_fancy_set_int32_longdouble(cnp.npy_intp M, cnp.npy_intp N,
   33658             :  */
   33659             : 
   33660             :   /* function exit code */
   33661           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   33662           0 :   goto __pyx_L0;
   33663           0 :   __pyx_L1_error:;
   33664           0 :   __Pyx_XDECREF(__pyx_t_9);
   33665           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_longdouble", __pyx_clineno, __pyx_lineno, __pyx_filename);
   33666           0 :   __pyx_r = NULL;
   33667           0 :   __pyx_L0:;
   33668           0 :   __Pyx_XGIVEREF(__pyx_r);
   33669           0 :   __Pyx_RefNannyFinishContext();
   33670           0 :   return __pyx_r;
   33671             : }
   33672             : 
   33673             : /* "_csparsetools.pyx":631
   33674             :  *             j = j_idx[x,y]
   33675             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   33676             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   33677             :  * @cython.wraparound(False)
   33678             :  * def _lil_fancy_set_int32_complex64(cnp.npy_intp M, cnp.npy_intp N,
   33679             :  */
   33680             : 
   33681             : /* Python wrapper */
   33682             : static PyObject *__pyx_pw_13_csparsetools_75_lil_fancy_set_int32_complex64(PyObject *__pyx_self, 
   33683             : #if CYTHON_METH_FASTCALL
   33684             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   33685             : #else
   33686             : PyObject *__pyx_args, PyObject *__pyx_kwds
   33687             : #endif
   33688             : ); /*proto*/
   33689             : static PyMethodDef __pyx_mdef_13_csparsetools_75_lil_fancy_set_int32_complex64 = {"_lil_fancy_set_int32_complex64", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_75_lil_fancy_set_int32_complex64, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   33690           0 : static PyObject *__pyx_pw_13_csparsetools_75_lil_fancy_set_int32_complex64(PyObject *__pyx_self, 
   33691             : #if CYTHON_METH_FASTCALL
   33692             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   33693             : #else
   33694             : PyObject *__pyx_args, PyObject *__pyx_kwds
   33695             : #endif
   33696             : ) {
   33697           0 :   npy_intp __pyx_v_M;
   33698           0 :   npy_intp __pyx_v_N;
   33699           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   33700           0 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   33701           0 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   33702           0 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   33703           0 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   33704             :   #if !CYTHON_METH_FASTCALL
   33705             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   33706             :   #endif
   33707           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   33708           0 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   33709           0 :   int __pyx_lineno = 0;
   33710           0 :   const char *__pyx_filename = NULL;
   33711           0 :   int __pyx_clineno = 0;
   33712           0 :   PyObject *__pyx_r = 0;
   33713             :   __Pyx_RefNannyDeclarations
   33714           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_complex64 (wrapper)", 0);
   33715             :   #if !CYTHON_METH_FASTCALL
   33716             :   #if CYTHON_ASSUME_SAFE_MACROS
   33717             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   33718             :   #else
   33719             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   33720             :   #endif
   33721             :   #endif
   33722           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   33723             :   {
   33724           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   33725           0 :     if (__pyx_kwds) {
   33726           0 :       Py_ssize_t kw_args;
   33727           0 :       switch (__pyx_nargs) {
   33728           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   33729           0 :         CYTHON_FALLTHROUGH;
   33730           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   33731           0 :         CYTHON_FALLTHROUGH;
   33732           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   33733           0 :         CYTHON_FALLTHROUGH;
   33734           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   33735           0 :         CYTHON_FALLTHROUGH;
   33736           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   33737           0 :         CYTHON_FALLTHROUGH;
   33738           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   33739           0 :         CYTHON_FALLTHROUGH;
   33740           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   33741           0 :         CYTHON_FALLTHROUGH;
   33742           0 :         case  0: break;
   33743           0 :         default: goto __pyx_L5_argtuple_error;
   33744             :       }
   33745           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   33746           0 :       switch (__pyx_nargs) {
   33747           0 :         case  0:
   33748           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   33749           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   33750           0 :           kw_args--;
   33751             :         }
   33752           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 631, __pyx_L3_error)
   33753           0 :         else goto __pyx_L5_argtuple_error;
   33754           0 :         CYTHON_FALLTHROUGH;
   33755             :         case  1:
   33756           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   33757           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   33758           0 :           kw_args--;
   33759             :         }
   33760           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 631, __pyx_L3_error)
   33761             :         else {
   33762           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_complex64", 1, 7, 7, 1); __PYX_ERR(0, 631, __pyx_L3_error)
   33763             :         }
   33764           0 :         CYTHON_FALLTHROUGH;
   33765             :         case  2:
   33766           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   33767           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   33768           0 :           kw_args--;
   33769             :         }
   33770           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 631, __pyx_L3_error)
   33771             :         else {
   33772           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_complex64", 1, 7, 7, 2); __PYX_ERR(0, 631, __pyx_L3_error)
   33773             :         }
   33774           0 :         CYTHON_FALLTHROUGH;
   33775             :         case  3:
   33776           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   33777           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   33778           0 :           kw_args--;
   33779             :         }
   33780           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 631, __pyx_L3_error)
   33781             :         else {
   33782           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_complex64", 1, 7, 7, 3); __PYX_ERR(0, 631, __pyx_L3_error)
   33783             :         }
   33784           0 :         CYTHON_FALLTHROUGH;
   33785             :         case  4:
   33786           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   33787           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   33788           0 :           kw_args--;
   33789             :         }
   33790           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 631, __pyx_L3_error)
   33791             :         else {
   33792           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_complex64", 1, 7, 7, 4); __PYX_ERR(0, 631, __pyx_L3_error)
   33793             :         }
   33794           0 :         CYTHON_FALLTHROUGH;
   33795             :         case  5:
   33796           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   33797           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   33798           0 :           kw_args--;
   33799             :         }
   33800           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 631, __pyx_L3_error)
   33801             :         else {
   33802           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_complex64", 1, 7, 7, 5); __PYX_ERR(0, 631, __pyx_L3_error)
   33803             :         }
   33804           0 :         CYTHON_FALLTHROUGH;
   33805             :         case  6:
   33806           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   33807           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   33808           0 :           kw_args--;
   33809             :         }
   33810           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 631, __pyx_L3_error)
   33811             :         else {
   33812           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_complex64", 1, 7, 7, 6); __PYX_ERR(0, 631, __pyx_L3_error)
   33813             :         }
   33814             :       }
   33815           0 :       if (unlikely(kw_args > 0)) {
   33816           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   33817           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int32_complex64") < 0)) __PYX_ERR(0, 631, __pyx_L3_error)
   33818             :       }
   33819           0 :     } else if (unlikely(__pyx_nargs != 7)) {
   33820           0 :       goto __pyx_L5_argtuple_error;
   33821             :     } else {
   33822           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   33823           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   33824           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   33825           0 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   33826           0 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   33827           0 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   33828           0 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   33829             :     }
   33830           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 633, __pyx_L3_error)
   33831           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 633, __pyx_L3_error)
   33832           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 634, __pyx_L3_error)
   33833           0 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 635, __pyx_L3_error)
   33834           0 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 636, __pyx_L3_error)
   33835           0 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 637, __pyx_L3_error)
   33836           0 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds___pyx_t_float_complex(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 638, __pyx_L3_error)
   33837             :   }
   33838           0 :   goto __pyx_L6_skip;
   33839           0 :   __pyx_L5_argtuple_error:;
   33840           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_complex64", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 631, __pyx_L3_error)
   33841           0 :   __pyx_L6_skip:;
   33842           0 :   goto __pyx_L4_argument_unpacking_done;
   33843           0 :   __pyx_L3_error:;
   33844             :   {
   33845           0 :     Py_ssize_t __pyx_temp;
   33846           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   33847             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   33848             :     }
   33849             :   }
   33850           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   33851           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   33852           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   33853           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   33854           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   33855           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_complex64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   33856           0 :   __Pyx_RefNannyFinishContext();
   33857           0 :   return NULL;
   33858           0 :   __pyx_L4_argument_unpacking_done:;
   33859           0 :   __pyx_r = __pyx_pf_13_csparsetools_74_lil_fancy_set_int32_complex64(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   33860             : 
   33861             :   /* function exit code */
   33862           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   33863           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   33864           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   33865           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   33866           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   33867             :   {
   33868           0 :     Py_ssize_t __pyx_temp;
   33869           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   33870             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   33871             :     }
   33872             :   }
   33873             :   __Pyx_RefNannyFinishContext();
   33874             :   return __pyx_r;
   33875             : }
   33876             : 
   33877           0 : static PyObject *__pyx_pf_13_csparsetools_74_lil_fancy_set_int32_complex64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   33878           0 :   npy_intp __pyx_v_x;
   33879           0 :   npy_intp __pyx_v_y;
   33880           0 :   npy_intp __pyx_v_i;
   33881           0 :   npy_intp __pyx_v_j;
   33882           0 :   PyObject *__pyx_r = NULL;
   33883             :   __Pyx_RefNannyDeclarations
   33884           0 :   Py_ssize_t __pyx_t_1;
   33885           0 :   Py_ssize_t __pyx_t_2;
   33886           0 :   npy_intp __pyx_t_3;
   33887           0 :   Py_ssize_t __pyx_t_4;
   33888           0 :   Py_ssize_t __pyx_t_5;
   33889           0 :   npy_intp __pyx_t_6;
   33890           0 :   Py_ssize_t __pyx_t_7;
   33891           0 :   Py_ssize_t __pyx_t_8;
   33892           0 :   __pyx_t_float_complex __pyx_t_9;
   33893           0 :   PyObject *__pyx_t_10 = NULL;
   33894           0 :   int __pyx_t_11;
   33895           0 :   int __pyx_lineno = 0;
   33896           0 :   const char *__pyx_filename = NULL;
   33897           0 :   int __pyx_clineno = 0;
   33898           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_complex64", 1);
   33899             : 
   33900             :   /* "_csparsetools.pyx":642
   33901             :  *     cdef cnp.npy_intp i, j
   33902             :  * 
   33903             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   33904             :  *         for y in range(i_idx.shape[1]):
   33905             :  *             i = i_idx[x,y]
   33906             :  */
   33907           0 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   33908           0 :   __pyx_t_2 = __pyx_t_1;
   33909           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   33910           0 :     __pyx_v_x = __pyx_t_3;
   33911             : 
   33912             :     /* "_csparsetools.pyx":643
   33913             :  * 
   33914             :  *     for x in range(i_idx.shape[0]):
   33915             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   33916             :  *             i = i_idx[x,y]
   33917             :  *             j = j_idx[x,y]
   33918             :  */
   33919           0 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   33920           0 :     __pyx_t_5 = __pyx_t_4;
   33921           0 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   33922           0 :       __pyx_v_y = __pyx_t_6;
   33923             : 
   33924             :       /* "_csparsetools.pyx":644
   33925             :  *     for x in range(i_idx.shape[0]):
   33926             :  *         for y in range(i_idx.shape[1]):
   33927             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   33928             :  *             j = j_idx[x,y]
   33929             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   33930             :  */
   33931           0 :       __pyx_t_7 = __pyx_v_x;
   33932           0 :       __pyx_t_8 = __pyx_v_y;
   33933           0 :       __pyx_v_i = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   33934             : 
   33935             :       /* "_csparsetools.pyx":645
   33936             :  *         for y in range(i_idx.shape[1]):
   33937             :  *             i = i_idx[x,y]
   33938             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   33939             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   33940             :  * @cython.boundscheck(False)
   33941             :  */
   33942           0 :       __pyx_t_8 = __pyx_v_x;
   33943           0 :       __pyx_t_7 = __pyx_v_y;
   33944           0 :       __pyx_v_j = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   33945             : 
   33946             :       /* "_csparsetools.pyx":646
   33947             :  *             i = i_idx[x,y]
   33948             :  *             j = j_idx[x,y]
   33949             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   33950             :  * @cython.boundscheck(False)
   33951             :  * @cython.wraparound(False)
   33952             :  */
   33953           0 :       __pyx_t_7 = __pyx_v_x;
   33954           0 :       __pyx_t_8 = __pyx_v_y;
   33955           0 :       __pyx_t_9 = (*((__pyx_t_float_complex *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )));
   33956           0 :       __pyx_t_10 = __pyx_PyComplex_FromComplex(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 646, __pyx_L1_error)
   33957           0 :       __Pyx_GOTREF(__pyx_t_10);
   33958           0 :       __pyx_t_11 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_10, 0); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 646, __pyx_L1_error)
   33959           0 :       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   33960             :     }
   33961             :   }
   33962             : 
   33963             :   /* "_csparsetools.pyx":631
   33964             :  *             j = j_idx[x,y]
   33965             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   33966             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   33967             :  * @cython.wraparound(False)
   33968             :  * def _lil_fancy_set_int32_complex64(cnp.npy_intp M, cnp.npy_intp N,
   33969             :  */
   33970             : 
   33971             :   /* function exit code */
   33972           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   33973           0 :   goto __pyx_L0;
   33974           0 :   __pyx_L1_error:;
   33975           0 :   __Pyx_XDECREF(__pyx_t_10);
   33976           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_complex64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   33977           0 :   __pyx_r = NULL;
   33978           0 :   __pyx_L0:;
   33979           0 :   __Pyx_XGIVEREF(__pyx_r);
   33980           0 :   __Pyx_RefNannyFinishContext();
   33981           0 :   return __pyx_r;
   33982             : }
   33983             : 
   33984             : /* "_csparsetools.pyx":647
   33985             :  *             j = j_idx[x,y]
   33986             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   33987             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   33988             :  * @cython.wraparound(False)
   33989             :  * def _lil_fancy_set_int32_complex128(cnp.npy_intp M, cnp.npy_intp N,
   33990             :  */
   33991             : 
   33992             : /* Python wrapper */
   33993             : static PyObject *__pyx_pw_13_csparsetools_77_lil_fancy_set_int32_complex128(PyObject *__pyx_self, 
   33994             : #if CYTHON_METH_FASTCALL
   33995             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   33996             : #else
   33997             : PyObject *__pyx_args, PyObject *__pyx_kwds
   33998             : #endif
   33999             : ); /*proto*/
   34000             : static PyMethodDef __pyx_mdef_13_csparsetools_77_lil_fancy_set_int32_complex128 = {"_lil_fancy_set_int32_complex128", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_77_lil_fancy_set_int32_complex128, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   34001           0 : static PyObject *__pyx_pw_13_csparsetools_77_lil_fancy_set_int32_complex128(PyObject *__pyx_self, 
   34002             : #if CYTHON_METH_FASTCALL
   34003             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   34004             : #else
   34005             : PyObject *__pyx_args, PyObject *__pyx_kwds
   34006             : #endif
   34007             : ) {
   34008           0 :   npy_intp __pyx_v_M;
   34009           0 :   npy_intp __pyx_v_N;
   34010           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   34011           0 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   34012           0 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   34013           0 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   34014           0 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   34015             :   #if !CYTHON_METH_FASTCALL
   34016             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   34017             :   #endif
   34018           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   34019           0 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   34020           0 :   int __pyx_lineno = 0;
   34021           0 :   const char *__pyx_filename = NULL;
   34022           0 :   int __pyx_clineno = 0;
   34023           0 :   PyObject *__pyx_r = 0;
   34024             :   __Pyx_RefNannyDeclarations
   34025           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_complex128 (wrapper)", 0);
   34026             :   #if !CYTHON_METH_FASTCALL
   34027             :   #if CYTHON_ASSUME_SAFE_MACROS
   34028             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   34029             :   #else
   34030             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   34031             :   #endif
   34032             :   #endif
   34033           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   34034             :   {
   34035           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   34036           0 :     if (__pyx_kwds) {
   34037           0 :       Py_ssize_t kw_args;
   34038           0 :       switch (__pyx_nargs) {
   34039           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   34040           0 :         CYTHON_FALLTHROUGH;
   34041           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   34042           0 :         CYTHON_FALLTHROUGH;
   34043           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   34044           0 :         CYTHON_FALLTHROUGH;
   34045           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   34046           0 :         CYTHON_FALLTHROUGH;
   34047           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   34048           0 :         CYTHON_FALLTHROUGH;
   34049           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   34050           0 :         CYTHON_FALLTHROUGH;
   34051           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   34052           0 :         CYTHON_FALLTHROUGH;
   34053           0 :         case  0: break;
   34054           0 :         default: goto __pyx_L5_argtuple_error;
   34055             :       }
   34056           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   34057           0 :       switch (__pyx_nargs) {
   34058           0 :         case  0:
   34059           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   34060           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   34061           0 :           kw_args--;
   34062             :         }
   34063           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 647, __pyx_L3_error)
   34064           0 :         else goto __pyx_L5_argtuple_error;
   34065           0 :         CYTHON_FALLTHROUGH;
   34066             :         case  1:
   34067           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   34068           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   34069           0 :           kw_args--;
   34070             :         }
   34071           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 647, __pyx_L3_error)
   34072             :         else {
   34073           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_complex128", 1, 7, 7, 1); __PYX_ERR(0, 647, __pyx_L3_error)
   34074             :         }
   34075           0 :         CYTHON_FALLTHROUGH;
   34076             :         case  2:
   34077           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   34078           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   34079           0 :           kw_args--;
   34080             :         }
   34081           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 647, __pyx_L3_error)
   34082             :         else {
   34083           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_complex128", 1, 7, 7, 2); __PYX_ERR(0, 647, __pyx_L3_error)
   34084             :         }
   34085           0 :         CYTHON_FALLTHROUGH;
   34086             :         case  3:
   34087           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   34088           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   34089           0 :           kw_args--;
   34090             :         }
   34091           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 647, __pyx_L3_error)
   34092             :         else {
   34093           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_complex128", 1, 7, 7, 3); __PYX_ERR(0, 647, __pyx_L3_error)
   34094             :         }
   34095           0 :         CYTHON_FALLTHROUGH;
   34096             :         case  4:
   34097           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   34098           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   34099           0 :           kw_args--;
   34100             :         }
   34101           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 647, __pyx_L3_error)
   34102             :         else {
   34103           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_complex128", 1, 7, 7, 4); __PYX_ERR(0, 647, __pyx_L3_error)
   34104             :         }
   34105           0 :         CYTHON_FALLTHROUGH;
   34106             :         case  5:
   34107           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   34108           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   34109           0 :           kw_args--;
   34110             :         }
   34111           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 647, __pyx_L3_error)
   34112             :         else {
   34113           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_complex128", 1, 7, 7, 5); __PYX_ERR(0, 647, __pyx_L3_error)
   34114             :         }
   34115           0 :         CYTHON_FALLTHROUGH;
   34116             :         case  6:
   34117           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   34118           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   34119           0 :           kw_args--;
   34120             :         }
   34121           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 647, __pyx_L3_error)
   34122             :         else {
   34123           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_complex128", 1, 7, 7, 6); __PYX_ERR(0, 647, __pyx_L3_error)
   34124             :         }
   34125             :       }
   34126           0 :       if (unlikely(kw_args > 0)) {
   34127           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   34128           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int32_complex128") < 0)) __PYX_ERR(0, 647, __pyx_L3_error)
   34129             :       }
   34130           0 :     } else if (unlikely(__pyx_nargs != 7)) {
   34131           0 :       goto __pyx_L5_argtuple_error;
   34132             :     } else {
   34133           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   34134           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   34135           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   34136           0 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   34137           0 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   34138           0 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   34139           0 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   34140             :     }
   34141           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 649, __pyx_L3_error)
   34142           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 649, __pyx_L3_error)
   34143           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 650, __pyx_L3_error)
   34144           0 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 651, __pyx_L3_error)
   34145           0 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 652, __pyx_L3_error)
   34146           0 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 653, __pyx_L3_error)
   34147           0 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds___pyx_t_double_complex(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 654, __pyx_L3_error)
   34148             :   }
   34149           0 :   goto __pyx_L6_skip;
   34150           0 :   __pyx_L5_argtuple_error:;
   34151           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_complex128", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 647, __pyx_L3_error)
   34152           0 :   __pyx_L6_skip:;
   34153           0 :   goto __pyx_L4_argument_unpacking_done;
   34154           0 :   __pyx_L3_error:;
   34155             :   {
   34156           0 :     Py_ssize_t __pyx_temp;
   34157           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   34158             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   34159             :     }
   34160             :   }
   34161           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   34162           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   34163           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   34164           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   34165           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   34166           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_complex128", __pyx_clineno, __pyx_lineno, __pyx_filename);
   34167           0 :   __Pyx_RefNannyFinishContext();
   34168           0 :   return NULL;
   34169           0 :   __pyx_L4_argument_unpacking_done:;
   34170           0 :   __pyx_r = __pyx_pf_13_csparsetools_76_lil_fancy_set_int32_complex128(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   34171             : 
   34172             :   /* function exit code */
   34173           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   34174           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   34175           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   34176           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   34177           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   34178             :   {
   34179           0 :     Py_ssize_t __pyx_temp;
   34180           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   34181             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   34182             :     }
   34183             :   }
   34184             :   __Pyx_RefNannyFinishContext();
   34185             :   return __pyx_r;
   34186             : }
   34187             : 
   34188           0 : static PyObject *__pyx_pf_13_csparsetools_76_lil_fancy_set_int32_complex128(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   34189           0 :   npy_intp __pyx_v_x;
   34190           0 :   npy_intp __pyx_v_y;
   34191           0 :   npy_intp __pyx_v_i;
   34192           0 :   npy_intp __pyx_v_j;
   34193           0 :   PyObject *__pyx_r = NULL;
   34194             :   __Pyx_RefNannyDeclarations
   34195           0 :   Py_ssize_t __pyx_t_1;
   34196           0 :   Py_ssize_t __pyx_t_2;
   34197           0 :   npy_intp __pyx_t_3;
   34198           0 :   Py_ssize_t __pyx_t_4;
   34199           0 :   Py_ssize_t __pyx_t_5;
   34200           0 :   npy_intp __pyx_t_6;
   34201           0 :   Py_ssize_t __pyx_t_7;
   34202           0 :   Py_ssize_t __pyx_t_8;
   34203           0 :   __pyx_t_double_complex __pyx_t_9;
   34204           0 :   PyObject *__pyx_t_10 = NULL;
   34205           0 :   int __pyx_t_11;
   34206           0 :   int __pyx_lineno = 0;
   34207           0 :   const char *__pyx_filename = NULL;
   34208           0 :   int __pyx_clineno = 0;
   34209           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_complex128", 1);
   34210             : 
   34211             :   /* "_csparsetools.pyx":658
   34212             :  *     cdef cnp.npy_intp i, j
   34213             :  * 
   34214             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   34215             :  *         for y in range(i_idx.shape[1]):
   34216             :  *             i = i_idx[x,y]
   34217             :  */
   34218           0 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   34219           0 :   __pyx_t_2 = __pyx_t_1;
   34220           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   34221           0 :     __pyx_v_x = __pyx_t_3;
   34222             : 
   34223             :     /* "_csparsetools.pyx":659
   34224             :  * 
   34225             :  *     for x in range(i_idx.shape[0]):
   34226             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   34227             :  *             i = i_idx[x,y]
   34228             :  *             j = j_idx[x,y]
   34229             :  */
   34230           0 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   34231           0 :     __pyx_t_5 = __pyx_t_4;
   34232           0 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   34233           0 :       __pyx_v_y = __pyx_t_6;
   34234             : 
   34235             :       /* "_csparsetools.pyx":660
   34236             :  *     for x in range(i_idx.shape[0]):
   34237             :  *         for y in range(i_idx.shape[1]):
   34238             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   34239             :  *             j = j_idx[x,y]
   34240             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   34241             :  */
   34242           0 :       __pyx_t_7 = __pyx_v_x;
   34243           0 :       __pyx_t_8 = __pyx_v_y;
   34244           0 :       __pyx_v_i = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   34245             : 
   34246             :       /* "_csparsetools.pyx":661
   34247             :  *         for y in range(i_idx.shape[1]):
   34248             :  *             i = i_idx[x,y]
   34249             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   34250             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   34251             :  * @cython.boundscheck(False)
   34252             :  */
   34253           0 :       __pyx_t_8 = __pyx_v_x;
   34254           0 :       __pyx_t_7 = __pyx_v_y;
   34255           0 :       __pyx_v_j = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   34256             : 
   34257             :       /* "_csparsetools.pyx":662
   34258             :  *             i = i_idx[x,y]
   34259             :  *             j = j_idx[x,y]
   34260             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   34261             :  * @cython.boundscheck(False)
   34262             :  * @cython.wraparound(False)
   34263             :  */
   34264           0 :       __pyx_t_7 = __pyx_v_x;
   34265           0 :       __pyx_t_8 = __pyx_v_y;
   34266           0 :       __pyx_t_9 = (*((__pyx_t_double_complex *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )));
   34267           0 :       __pyx_t_10 = __pyx_PyComplex_FromComplex(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 662, __pyx_L1_error)
   34268           0 :       __Pyx_GOTREF(__pyx_t_10);
   34269           0 :       __pyx_t_11 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_10, 0); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 662, __pyx_L1_error)
   34270           0 :       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   34271             :     }
   34272             :   }
   34273             : 
   34274             :   /* "_csparsetools.pyx":647
   34275             :  *             j = j_idx[x,y]
   34276             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   34277             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   34278             :  * @cython.wraparound(False)
   34279             :  * def _lil_fancy_set_int32_complex128(cnp.npy_intp M, cnp.npy_intp N,
   34280             :  */
   34281             : 
   34282             :   /* function exit code */
   34283           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   34284           0 :   goto __pyx_L0;
   34285           0 :   __pyx_L1_error:;
   34286           0 :   __Pyx_XDECREF(__pyx_t_10);
   34287           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_complex128", __pyx_clineno, __pyx_lineno, __pyx_filename);
   34288           0 :   __pyx_r = NULL;
   34289           0 :   __pyx_L0:;
   34290           0 :   __Pyx_XGIVEREF(__pyx_r);
   34291           0 :   __Pyx_RefNannyFinishContext();
   34292           0 :   return __pyx_r;
   34293             : }
   34294             : 
   34295             : /* "_csparsetools.pyx":663
   34296             :  *             j = j_idx[x,y]
   34297             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   34298             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   34299             :  * @cython.wraparound(False)
   34300             :  * def _lil_fancy_set_int32_clongdouble(cnp.npy_intp M, cnp.npy_intp N,
   34301             :  */
   34302             : 
   34303             : /* Python wrapper */
   34304             : static PyObject *__pyx_pw_13_csparsetools_79_lil_fancy_set_int32_clongdouble(PyObject *__pyx_self, 
   34305             : #if CYTHON_METH_FASTCALL
   34306             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   34307             : #else
   34308             : PyObject *__pyx_args, PyObject *__pyx_kwds
   34309             : #endif
   34310             : ); /*proto*/
   34311             : static PyMethodDef __pyx_mdef_13_csparsetools_79_lil_fancy_set_int32_clongdouble = {"_lil_fancy_set_int32_clongdouble", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_79_lil_fancy_set_int32_clongdouble, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   34312           0 : static PyObject *__pyx_pw_13_csparsetools_79_lil_fancy_set_int32_clongdouble(PyObject *__pyx_self, 
   34313             : #if CYTHON_METH_FASTCALL
   34314             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   34315             : #else
   34316             : PyObject *__pyx_args, PyObject *__pyx_kwds
   34317             : #endif
   34318             : ) {
   34319           0 :   npy_intp __pyx_v_M;
   34320           0 :   npy_intp __pyx_v_N;
   34321           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   34322           0 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   34323           0 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   34324           0 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   34325           0 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   34326             :   #if !CYTHON_METH_FASTCALL
   34327             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   34328             :   #endif
   34329           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   34330           0 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   34331           0 :   int __pyx_lineno = 0;
   34332           0 :   const char *__pyx_filename = NULL;
   34333           0 :   int __pyx_clineno = 0;
   34334           0 :   PyObject *__pyx_r = 0;
   34335             :   __Pyx_RefNannyDeclarations
   34336           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_clongdouble (wrapper)", 0);
   34337             :   #if !CYTHON_METH_FASTCALL
   34338             :   #if CYTHON_ASSUME_SAFE_MACROS
   34339             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   34340             :   #else
   34341             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   34342             :   #endif
   34343             :   #endif
   34344           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   34345             :   {
   34346           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   34347           0 :     if (__pyx_kwds) {
   34348           0 :       Py_ssize_t kw_args;
   34349           0 :       switch (__pyx_nargs) {
   34350           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   34351           0 :         CYTHON_FALLTHROUGH;
   34352           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   34353           0 :         CYTHON_FALLTHROUGH;
   34354           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   34355           0 :         CYTHON_FALLTHROUGH;
   34356           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   34357           0 :         CYTHON_FALLTHROUGH;
   34358           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   34359           0 :         CYTHON_FALLTHROUGH;
   34360           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   34361           0 :         CYTHON_FALLTHROUGH;
   34362           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   34363           0 :         CYTHON_FALLTHROUGH;
   34364           0 :         case  0: break;
   34365           0 :         default: goto __pyx_L5_argtuple_error;
   34366             :       }
   34367           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   34368           0 :       switch (__pyx_nargs) {
   34369           0 :         case  0:
   34370           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   34371           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   34372           0 :           kw_args--;
   34373             :         }
   34374           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
   34375           0 :         else goto __pyx_L5_argtuple_error;
   34376           0 :         CYTHON_FALLTHROUGH;
   34377             :         case  1:
   34378           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   34379           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   34380           0 :           kw_args--;
   34381             :         }
   34382           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
   34383             :         else {
   34384           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_clongdouble", 1, 7, 7, 1); __PYX_ERR(0, 663, __pyx_L3_error)
   34385             :         }
   34386           0 :         CYTHON_FALLTHROUGH;
   34387             :         case  2:
   34388           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   34389           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   34390           0 :           kw_args--;
   34391             :         }
   34392           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
   34393             :         else {
   34394           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_clongdouble", 1, 7, 7, 2); __PYX_ERR(0, 663, __pyx_L3_error)
   34395             :         }
   34396           0 :         CYTHON_FALLTHROUGH;
   34397             :         case  3:
   34398           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   34399           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   34400           0 :           kw_args--;
   34401             :         }
   34402           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
   34403             :         else {
   34404           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_clongdouble", 1, 7, 7, 3); __PYX_ERR(0, 663, __pyx_L3_error)
   34405             :         }
   34406           0 :         CYTHON_FALLTHROUGH;
   34407             :         case  4:
   34408           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   34409           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   34410           0 :           kw_args--;
   34411             :         }
   34412           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
   34413             :         else {
   34414           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_clongdouble", 1, 7, 7, 4); __PYX_ERR(0, 663, __pyx_L3_error)
   34415             :         }
   34416           0 :         CYTHON_FALLTHROUGH;
   34417             :         case  5:
   34418           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   34419           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   34420           0 :           kw_args--;
   34421             :         }
   34422           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
   34423             :         else {
   34424           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_clongdouble", 1, 7, 7, 5); __PYX_ERR(0, 663, __pyx_L3_error)
   34425             :         }
   34426           0 :         CYTHON_FALLTHROUGH;
   34427             :         case  6:
   34428           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   34429           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   34430           0 :           kw_args--;
   34431             :         }
   34432           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
   34433             :         else {
   34434           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_clongdouble", 1, 7, 7, 6); __PYX_ERR(0, 663, __pyx_L3_error)
   34435             :         }
   34436             :       }
   34437           0 :       if (unlikely(kw_args > 0)) {
   34438           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   34439           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int32_clongdouble") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
   34440             :       }
   34441           0 :     } else if (unlikely(__pyx_nargs != 7)) {
   34442           0 :       goto __pyx_L5_argtuple_error;
   34443             :     } else {
   34444           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   34445           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   34446           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   34447           0 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   34448           0 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   34449           0 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   34450           0 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   34451             :     }
   34452           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 665, __pyx_L3_error)
   34453           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 665, __pyx_L3_error)
   34454           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
   34455           0 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 667, __pyx_L3_error)
   34456           0 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 668, __pyx_L3_error)
   34457           0 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 669, __pyx_L3_error)
   34458           0 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds___pyx_t_long_double_complex(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 670, __pyx_L3_error)
   34459             :   }
   34460           0 :   goto __pyx_L6_skip;
   34461           0 :   __pyx_L5_argtuple_error:;
   34462           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int32_clongdouble", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
   34463           0 :   __pyx_L6_skip:;
   34464           0 :   goto __pyx_L4_argument_unpacking_done;
   34465           0 :   __pyx_L3_error:;
   34466             :   {
   34467           0 :     Py_ssize_t __pyx_temp;
   34468           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   34469             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   34470             :     }
   34471             :   }
   34472           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   34473           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   34474           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   34475           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   34476           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   34477           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_clongdouble", __pyx_clineno, __pyx_lineno, __pyx_filename);
   34478           0 :   __Pyx_RefNannyFinishContext();
   34479           0 :   return NULL;
   34480           0 :   __pyx_L4_argument_unpacking_done:;
   34481           0 :   __pyx_r = __pyx_pf_13_csparsetools_78_lil_fancy_set_int32_clongdouble(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   34482             : 
   34483             :   /* function exit code */
   34484           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   34485           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   34486           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   34487           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   34488           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   34489             :   {
   34490           0 :     Py_ssize_t __pyx_temp;
   34491           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   34492             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   34493             :     }
   34494             :   }
   34495             :   __Pyx_RefNannyFinishContext();
   34496             :   return __pyx_r;
   34497             : }
   34498             : 
   34499           0 : static PyObject *__pyx_pf_13_csparsetools_78_lil_fancy_set_int32_clongdouble(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   34500           0 :   npy_intp __pyx_v_x;
   34501           0 :   npy_intp __pyx_v_y;
   34502           0 :   npy_intp __pyx_v_i;
   34503           0 :   npy_intp __pyx_v_j;
   34504           0 :   PyObject *__pyx_r = NULL;
   34505             :   __Pyx_RefNannyDeclarations
   34506           0 :   Py_ssize_t __pyx_t_1;
   34507           0 :   Py_ssize_t __pyx_t_2;
   34508           0 :   npy_intp __pyx_t_3;
   34509           0 :   Py_ssize_t __pyx_t_4;
   34510           0 :   Py_ssize_t __pyx_t_5;
   34511           0 :   npy_intp __pyx_t_6;
   34512           0 :   Py_ssize_t __pyx_t_7;
   34513           0 :   Py_ssize_t __pyx_t_8;
   34514           0 :   __pyx_t_long_double_complex __pyx_t_9;
   34515           0 :   PyObject *__pyx_t_10 = NULL;
   34516           0 :   int __pyx_t_11;
   34517           0 :   int __pyx_lineno = 0;
   34518           0 :   const char *__pyx_filename = NULL;
   34519           0 :   int __pyx_clineno = 0;
   34520           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int32_clongdouble", 1);
   34521             : 
   34522             :   /* "_csparsetools.pyx":674
   34523             :  *     cdef cnp.npy_intp i, j
   34524             :  * 
   34525             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   34526             :  *         for y in range(i_idx.shape[1]):
   34527             :  *             i = i_idx[x,y]
   34528             :  */
   34529           0 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   34530           0 :   __pyx_t_2 = __pyx_t_1;
   34531           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   34532           0 :     __pyx_v_x = __pyx_t_3;
   34533             : 
   34534             :     /* "_csparsetools.pyx":675
   34535             :  * 
   34536             :  *     for x in range(i_idx.shape[0]):
   34537             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   34538             :  *             i = i_idx[x,y]
   34539             :  *             j = j_idx[x,y]
   34540             :  */
   34541           0 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   34542           0 :     __pyx_t_5 = __pyx_t_4;
   34543           0 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   34544           0 :       __pyx_v_y = __pyx_t_6;
   34545             : 
   34546             :       /* "_csparsetools.pyx":676
   34547             :  *     for x in range(i_idx.shape[0]):
   34548             :  *         for y in range(i_idx.shape[1]):
   34549             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   34550             :  *             j = j_idx[x,y]
   34551             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   34552             :  */
   34553           0 :       __pyx_t_7 = __pyx_v_x;
   34554           0 :       __pyx_t_8 = __pyx_v_y;
   34555           0 :       __pyx_v_i = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   34556             : 
   34557             :       /* "_csparsetools.pyx":677
   34558             :  *         for y in range(i_idx.shape[1]):
   34559             :  *             i = i_idx[x,y]
   34560             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   34561             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   34562             :  * @cython.boundscheck(False)
   34563             :  */
   34564           0 :       __pyx_t_8 = __pyx_v_x;
   34565           0 :       __pyx_t_7 = __pyx_v_y;
   34566           0 :       __pyx_v_j = (*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   34567             : 
   34568             :       /* "_csparsetools.pyx":678
   34569             :  *             i = i_idx[x,y]
   34570             :  *             j = j_idx[x,y]
   34571             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   34572             :  * @cython.boundscheck(False)
   34573             :  * @cython.wraparound(False)
   34574             :  */
   34575           0 :       __pyx_t_7 = __pyx_v_x;
   34576           0 :       __pyx_t_8 = __pyx_v_y;
   34577           0 :       __pyx_t_9 = (*((__pyx_t_long_double_complex *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )));
   34578           0 :       __pyx_t_10 = __pyx_PyComplex_FromComplex(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 678, __pyx_L1_error)
   34579           0 :       __Pyx_GOTREF(__pyx_t_10);
   34580           0 :       __pyx_t_11 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_10, 0); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 678, __pyx_L1_error)
   34581           0 :       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   34582             :     }
   34583             :   }
   34584             : 
   34585             :   /* "_csparsetools.pyx":663
   34586             :  *             j = j_idx[x,y]
   34587             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   34588             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   34589             :  * @cython.wraparound(False)
   34590             :  * def _lil_fancy_set_int32_clongdouble(cnp.npy_intp M, cnp.npy_intp N,
   34591             :  */
   34592             : 
   34593             :   /* function exit code */
   34594           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   34595           0 :   goto __pyx_L0;
   34596           0 :   __pyx_L1_error:;
   34597           0 :   __Pyx_XDECREF(__pyx_t_10);
   34598           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int32_clongdouble", __pyx_clineno, __pyx_lineno, __pyx_filename);
   34599           0 :   __pyx_r = NULL;
   34600           0 :   __pyx_L0:;
   34601           0 :   __Pyx_XGIVEREF(__pyx_r);
   34602           0 :   __Pyx_RefNannyFinishContext();
   34603           0 :   return __pyx_r;
   34604             : }
   34605             : 
   34606             : /* "_csparsetools.pyx":679
   34607             :  *             j = j_idx[x,y]
   34608             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   34609             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   34610             :  * @cython.wraparound(False)
   34611             :  * def _lil_fancy_set_int64_bool_(cnp.npy_intp M, cnp.npy_intp N,
   34612             :  */
   34613             : 
   34614             : /* Python wrapper */
   34615             : static PyObject *__pyx_pw_13_csparsetools_81_lil_fancy_set_int64_bool_(PyObject *__pyx_self, 
   34616             : #if CYTHON_METH_FASTCALL
   34617             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   34618             : #else
   34619             : PyObject *__pyx_args, PyObject *__pyx_kwds
   34620             : #endif
   34621             : ); /*proto*/
   34622             : static PyMethodDef __pyx_mdef_13_csparsetools_81_lil_fancy_set_int64_bool_ = {"_lil_fancy_set_int64_bool_", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_81_lil_fancy_set_int64_bool_, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   34623           0 : static PyObject *__pyx_pw_13_csparsetools_81_lil_fancy_set_int64_bool_(PyObject *__pyx_self, 
   34624             : #if CYTHON_METH_FASTCALL
   34625             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   34626             : #else
   34627             : PyObject *__pyx_args, PyObject *__pyx_kwds
   34628             : #endif
   34629             : ) {
   34630           0 :   npy_intp __pyx_v_M;
   34631           0 :   npy_intp __pyx_v_N;
   34632           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   34633           0 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   34634           0 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   34635           0 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   34636           0 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   34637             :   #if !CYTHON_METH_FASTCALL
   34638             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   34639             :   #endif
   34640           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   34641           0 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   34642           0 :   int __pyx_lineno = 0;
   34643           0 :   const char *__pyx_filename = NULL;
   34644           0 :   int __pyx_clineno = 0;
   34645           0 :   PyObject *__pyx_r = 0;
   34646             :   __Pyx_RefNannyDeclarations
   34647           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_bool_ (wrapper)", 0);
   34648             :   #if !CYTHON_METH_FASTCALL
   34649             :   #if CYTHON_ASSUME_SAFE_MACROS
   34650             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   34651             :   #else
   34652             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   34653             :   #endif
   34654             :   #endif
   34655           0 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   34656             :   {
   34657           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   34658           0 :     if (__pyx_kwds) {
   34659           0 :       Py_ssize_t kw_args;
   34660           0 :       switch (__pyx_nargs) {
   34661           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   34662           0 :         CYTHON_FALLTHROUGH;
   34663           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   34664           0 :         CYTHON_FALLTHROUGH;
   34665           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   34666           0 :         CYTHON_FALLTHROUGH;
   34667           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   34668           0 :         CYTHON_FALLTHROUGH;
   34669           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   34670           0 :         CYTHON_FALLTHROUGH;
   34671           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   34672           0 :         CYTHON_FALLTHROUGH;
   34673           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   34674           0 :         CYTHON_FALLTHROUGH;
   34675           0 :         case  0: break;
   34676           0 :         default: goto __pyx_L5_argtuple_error;
   34677             :       }
   34678           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   34679           0 :       switch (__pyx_nargs) {
   34680           0 :         case  0:
   34681           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   34682           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   34683           0 :           kw_args--;
   34684             :         }
   34685           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 679, __pyx_L3_error)
   34686           0 :         else goto __pyx_L5_argtuple_error;
   34687           0 :         CYTHON_FALLTHROUGH;
   34688             :         case  1:
   34689           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   34690           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   34691           0 :           kw_args--;
   34692             :         }
   34693           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 679, __pyx_L3_error)
   34694             :         else {
   34695           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_bool_", 1, 7, 7, 1); __PYX_ERR(0, 679, __pyx_L3_error)
   34696             :         }
   34697           0 :         CYTHON_FALLTHROUGH;
   34698             :         case  2:
   34699           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   34700           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   34701           0 :           kw_args--;
   34702             :         }
   34703           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 679, __pyx_L3_error)
   34704             :         else {
   34705           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_bool_", 1, 7, 7, 2); __PYX_ERR(0, 679, __pyx_L3_error)
   34706             :         }
   34707           0 :         CYTHON_FALLTHROUGH;
   34708             :         case  3:
   34709           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   34710           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   34711           0 :           kw_args--;
   34712             :         }
   34713           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 679, __pyx_L3_error)
   34714             :         else {
   34715           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_bool_", 1, 7, 7, 3); __PYX_ERR(0, 679, __pyx_L3_error)
   34716             :         }
   34717           0 :         CYTHON_FALLTHROUGH;
   34718             :         case  4:
   34719           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   34720           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   34721           0 :           kw_args--;
   34722             :         }
   34723           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 679, __pyx_L3_error)
   34724             :         else {
   34725           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_bool_", 1, 7, 7, 4); __PYX_ERR(0, 679, __pyx_L3_error)
   34726             :         }
   34727           0 :         CYTHON_FALLTHROUGH;
   34728             :         case  5:
   34729           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   34730           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   34731           0 :           kw_args--;
   34732             :         }
   34733           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 679, __pyx_L3_error)
   34734             :         else {
   34735           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_bool_", 1, 7, 7, 5); __PYX_ERR(0, 679, __pyx_L3_error)
   34736             :         }
   34737           0 :         CYTHON_FALLTHROUGH;
   34738             :         case  6:
   34739           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   34740           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   34741           0 :           kw_args--;
   34742             :         }
   34743           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 679, __pyx_L3_error)
   34744             :         else {
   34745           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_bool_", 1, 7, 7, 6); __PYX_ERR(0, 679, __pyx_L3_error)
   34746             :         }
   34747             :       }
   34748           0 :       if (unlikely(kw_args > 0)) {
   34749           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   34750           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int64_bool_") < 0)) __PYX_ERR(0, 679, __pyx_L3_error)
   34751             :       }
   34752           0 :     } else if (unlikely(__pyx_nargs != 7)) {
   34753           0 :       goto __pyx_L5_argtuple_error;
   34754             :     } else {
   34755           0 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   34756           0 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   34757           0 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   34758           0 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   34759           0 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   34760           0 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   34761           0 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   34762             :     }
   34763           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
   34764           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
   34765           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 682, __pyx_L3_error)
   34766           0 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 683, __pyx_L3_error)
   34767           0 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 684, __pyx_L3_error)
   34768           0 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 685, __pyx_L3_error)
   34769           0 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_bool(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 686, __pyx_L3_error)
   34770             :   }
   34771           0 :   goto __pyx_L6_skip;
   34772           0 :   __pyx_L5_argtuple_error:;
   34773           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_bool_", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 679, __pyx_L3_error)
   34774           0 :   __pyx_L6_skip:;
   34775           0 :   goto __pyx_L4_argument_unpacking_done;
   34776           0 :   __pyx_L3_error:;
   34777             :   {
   34778           0 :     Py_ssize_t __pyx_temp;
   34779           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   34780             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   34781             :     }
   34782             :   }
   34783           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   34784           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   34785           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   34786           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   34787           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   34788           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_bool_", __pyx_clineno, __pyx_lineno, __pyx_filename);
   34789           0 :   __Pyx_RefNannyFinishContext();
   34790           0 :   return NULL;
   34791           0 :   __pyx_L4_argument_unpacking_done:;
   34792           0 :   __pyx_r = __pyx_pf_13_csparsetools_80_lil_fancy_set_int64_bool_(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   34793             : 
   34794             :   /* function exit code */
   34795           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   34796           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   34797           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   34798           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   34799           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   34800             :   {
   34801           0 :     Py_ssize_t __pyx_temp;
   34802           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   34803             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   34804             :     }
   34805             :   }
   34806             :   __Pyx_RefNannyFinishContext();
   34807             :   return __pyx_r;
   34808             : }
   34809             : 
   34810           0 : static PyObject *__pyx_pf_13_csparsetools_80_lil_fancy_set_int64_bool_(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   34811           0 :   npy_intp __pyx_v_x;
   34812           0 :   npy_intp __pyx_v_y;
   34813           0 :   npy_intp __pyx_v_i;
   34814           0 :   npy_intp __pyx_v_j;
   34815           0 :   PyObject *__pyx_r = NULL;
   34816             :   __Pyx_RefNannyDeclarations
   34817           0 :   Py_ssize_t __pyx_t_1;
   34818           0 :   Py_ssize_t __pyx_t_2;
   34819           0 :   npy_intp __pyx_t_3;
   34820           0 :   Py_ssize_t __pyx_t_4;
   34821           0 :   Py_ssize_t __pyx_t_5;
   34822           0 :   npy_intp __pyx_t_6;
   34823           0 :   Py_ssize_t __pyx_t_7;
   34824           0 :   Py_ssize_t __pyx_t_8;
   34825           0 :   PyObject *__pyx_t_9 = NULL;
   34826           0 :   int __pyx_t_10;
   34827           0 :   int __pyx_lineno = 0;
   34828           0 :   const char *__pyx_filename = NULL;
   34829           0 :   int __pyx_clineno = 0;
   34830           0 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_bool_", 1);
   34831             : 
   34832             :   /* "_csparsetools.pyx":690
   34833             :  *     cdef cnp.npy_intp i, j
   34834             :  * 
   34835             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   34836             :  *         for y in range(i_idx.shape[1]):
   34837             :  *             i = i_idx[x,y]
   34838             :  */
   34839           0 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   34840           0 :   __pyx_t_2 = __pyx_t_1;
   34841           0 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   34842           0 :     __pyx_v_x = __pyx_t_3;
   34843             : 
   34844             :     /* "_csparsetools.pyx":691
   34845             :  * 
   34846             :  *     for x in range(i_idx.shape[0]):
   34847             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   34848             :  *             i = i_idx[x,y]
   34849             :  *             j = j_idx[x,y]
   34850             :  */
   34851           0 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   34852           0 :     __pyx_t_5 = __pyx_t_4;
   34853           0 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   34854           0 :       __pyx_v_y = __pyx_t_6;
   34855             : 
   34856             :       /* "_csparsetools.pyx":692
   34857             :  *     for x in range(i_idx.shape[0]):
   34858             :  *         for y in range(i_idx.shape[1]):
   34859             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   34860             :  *             j = j_idx[x,y]
   34861             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   34862             :  */
   34863           0 :       __pyx_t_7 = __pyx_v_x;
   34864           0 :       __pyx_t_8 = __pyx_v_y;
   34865           0 :       __pyx_v_i = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   34866             : 
   34867             :       /* "_csparsetools.pyx":693
   34868             :  *         for y in range(i_idx.shape[1]):
   34869             :  *             i = i_idx[x,y]
   34870             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   34871             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   34872             :  * @cython.boundscheck(False)
   34873             :  */
   34874           0 :       __pyx_t_8 = __pyx_v_x;
   34875           0 :       __pyx_t_7 = __pyx_v_y;
   34876           0 :       __pyx_v_j = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   34877             : 
   34878             :       /* "_csparsetools.pyx":694
   34879             :  *             i = i_idx[x,y]
   34880             :  *             j = j_idx[x,y]
   34881             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   34882             :  * @cython.boundscheck(False)
   34883             :  * @cython.wraparound(False)
   34884             :  */
   34885           0 :       __pyx_t_7 = __pyx_v_x;
   34886           0 :       __pyx_t_8 = __pyx_v_y;
   34887           0 :       __pyx_t_9 = __Pyx_PyInt_From_npy_bool((*((npy_bool *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 694, __pyx_L1_error)
   34888           0 :       __Pyx_GOTREF(__pyx_t_9);
   34889           0 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 694, __pyx_L1_error)
   34890           0 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   34891             :     }
   34892             :   }
   34893             : 
   34894             :   /* "_csparsetools.pyx":679
   34895             :  *             j = j_idx[x,y]
   34896             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   34897             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   34898             :  * @cython.wraparound(False)
   34899             :  * def _lil_fancy_set_int64_bool_(cnp.npy_intp M, cnp.npy_intp N,
   34900             :  */
   34901             : 
   34902             :   /* function exit code */
   34903           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   34904           0 :   goto __pyx_L0;
   34905           0 :   __pyx_L1_error:;
   34906           0 :   __Pyx_XDECREF(__pyx_t_9);
   34907           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_bool_", __pyx_clineno, __pyx_lineno, __pyx_filename);
   34908           0 :   __pyx_r = NULL;
   34909           0 :   __pyx_L0:;
   34910           0 :   __Pyx_XGIVEREF(__pyx_r);
   34911           0 :   __Pyx_RefNannyFinishContext();
   34912           0 :   return __pyx_r;
   34913             : }
   34914             : 
   34915             : /* "_csparsetools.pyx":695
   34916             :  *             j = j_idx[x,y]
   34917             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   34918             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   34919             :  * @cython.wraparound(False)
   34920             :  * def _lil_fancy_set_int64_int8(cnp.npy_intp M, cnp.npy_intp N,
   34921             :  */
   34922             : 
   34923             : /* Python wrapper */
   34924             : static PyObject *__pyx_pw_13_csparsetools_83_lil_fancy_set_int64_int8(PyObject *__pyx_self, 
   34925             : #if CYTHON_METH_FASTCALL
   34926             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   34927             : #else
   34928             : PyObject *__pyx_args, PyObject *__pyx_kwds
   34929             : #endif
   34930             : ); /*proto*/
   34931             : static PyMethodDef __pyx_mdef_13_csparsetools_83_lil_fancy_set_int64_int8 = {"_lil_fancy_set_int64_int8", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_83_lil_fancy_set_int64_int8, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   34932          14 : static PyObject *__pyx_pw_13_csparsetools_83_lil_fancy_set_int64_int8(PyObject *__pyx_self, 
   34933             : #if CYTHON_METH_FASTCALL
   34934             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   34935             : #else
   34936             : PyObject *__pyx_args, PyObject *__pyx_kwds
   34937             : #endif
   34938             : ) {
   34939          14 :   npy_intp __pyx_v_M;
   34940          14 :   npy_intp __pyx_v_N;
   34941          14 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   34942          14 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   34943          14 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   34944          14 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   34945          14 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   34946             :   #if !CYTHON_METH_FASTCALL
   34947             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   34948             :   #endif
   34949          14 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   34950          14 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   34951          14 :   int __pyx_lineno = 0;
   34952          14 :   const char *__pyx_filename = NULL;
   34953          14 :   int __pyx_clineno = 0;
   34954          14 :   PyObject *__pyx_r = 0;
   34955             :   __Pyx_RefNannyDeclarations
   34956          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_int8 (wrapper)", 0);
   34957             :   #if !CYTHON_METH_FASTCALL
   34958             :   #if CYTHON_ASSUME_SAFE_MACROS
   34959             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   34960             :   #else
   34961             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   34962             :   #endif
   34963             :   #endif
   34964          14 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   34965             :   {
   34966          14 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   34967          14 :     if (__pyx_kwds) {
   34968           0 :       Py_ssize_t kw_args;
   34969           0 :       switch (__pyx_nargs) {
   34970           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   34971           0 :         CYTHON_FALLTHROUGH;
   34972           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   34973           0 :         CYTHON_FALLTHROUGH;
   34974           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   34975           0 :         CYTHON_FALLTHROUGH;
   34976           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   34977           0 :         CYTHON_FALLTHROUGH;
   34978           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   34979           0 :         CYTHON_FALLTHROUGH;
   34980           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   34981           0 :         CYTHON_FALLTHROUGH;
   34982           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   34983           0 :         CYTHON_FALLTHROUGH;
   34984           0 :         case  0: break;
   34985           0 :         default: goto __pyx_L5_argtuple_error;
   34986             :       }
   34987           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   34988           0 :       switch (__pyx_nargs) {
   34989           0 :         case  0:
   34990           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   34991           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   34992           0 :           kw_args--;
   34993             :         }
   34994           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 695, __pyx_L3_error)
   34995           0 :         else goto __pyx_L5_argtuple_error;
   34996           0 :         CYTHON_FALLTHROUGH;
   34997             :         case  1:
   34998           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   34999           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   35000           0 :           kw_args--;
   35001             :         }
   35002           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 695, __pyx_L3_error)
   35003             :         else {
   35004           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int8", 1, 7, 7, 1); __PYX_ERR(0, 695, __pyx_L3_error)
   35005             :         }
   35006           0 :         CYTHON_FALLTHROUGH;
   35007             :         case  2:
   35008           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   35009           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   35010           0 :           kw_args--;
   35011             :         }
   35012           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 695, __pyx_L3_error)
   35013             :         else {
   35014           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int8", 1, 7, 7, 2); __PYX_ERR(0, 695, __pyx_L3_error)
   35015             :         }
   35016           0 :         CYTHON_FALLTHROUGH;
   35017             :         case  3:
   35018           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   35019           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   35020           0 :           kw_args--;
   35021             :         }
   35022           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 695, __pyx_L3_error)
   35023             :         else {
   35024           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int8", 1, 7, 7, 3); __PYX_ERR(0, 695, __pyx_L3_error)
   35025             :         }
   35026           0 :         CYTHON_FALLTHROUGH;
   35027             :         case  4:
   35028           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   35029           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   35030           0 :           kw_args--;
   35031             :         }
   35032           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 695, __pyx_L3_error)
   35033             :         else {
   35034           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int8", 1, 7, 7, 4); __PYX_ERR(0, 695, __pyx_L3_error)
   35035             :         }
   35036           0 :         CYTHON_FALLTHROUGH;
   35037             :         case  5:
   35038           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   35039           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   35040           0 :           kw_args--;
   35041             :         }
   35042           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 695, __pyx_L3_error)
   35043             :         else {
   35044           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int8", 1, 7, 7, 5); __PYX_ERR(0, 695, __pyx_L3_error)
   35045             :         }
   35046           0 :         CYTHON_FALLTHROUGH;
   35047             :         case  6:
   35048           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   35049           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   35050           0 :           kw_args--;
   35051             :         }
   35052           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 695, __pyx_L3_error)
   35053             :         else {
   35054           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int8", 1, 7, 7, 6); __PYX_ERR(0, 695, __pyx_L3_error)
   35055             :         }
   35056             :       }
   35057           0 :       if (unlikely(kw_args > 0)) {
   35058           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   35059           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int64_int8") < 0)) __PYX_ERR(0, 695, __pyx_L3_error)
   35060             :       }
   35061          14 :     } else if (unlikely(__pyx_nargs != 7)) {
   35062           0 :       goto __pyx_L5_argtuple_error;
   35063             :     } else {
   35064          14 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   35065          14 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   35066          14 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   35067          14 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   35068          14 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   35069          14 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   35070          14 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   35071             :     }
   35072          14 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 697, __pyx_L3_error)
   35073          14 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 697, __pyx_L3_error)
   35074          14 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 698, __pyx_L3_error)
   35075          14 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 699, __pyx_L3_error)
   35076          14 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 700, __pyx_L3_error)
   35077          14 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 701, __pyx_L3_error)
   35078          14 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int8(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 702, __pyx_L3_error)
   35079             :   }
   35080          14 :   goto __pyx_L6_skip;
   35081           0 :   __pyx_L5_argtuple_error:;
   35082           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int8", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 695, __pyx_L3_error)
   35083          14 :   __pyx_L6_skip:;
   35084          14 :   goto __pyx_L4_argument_unpacking_done;
   35085           0 :   __pyx_L3_error:;
   35086             :   {
   35087           0 :     Py_ssize_t __pyx_temp;
   35088           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   35089             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   35090             :     }
   35091             :   }
   35092           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   35093           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   35094           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   35095           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   35096           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   35097           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_int8", __pyx_clineno, __pyx_lineno, __pyx_filename);
   35098           0 :   __Pyx_RefNannyFinishContext();
   35099           0 :   return NULL;
   35100          14 :   __pyx_L4_argument_unpacking_done:;
   35101          14 :   __pyx_r = __pyx_pf_13_csparsetools_82_lil_fancy_set_int64_int8(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   35102             : 
   35103             :   /* function exit code */
   35104          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   35105          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   35106          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   35107          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   35108          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   35109             :   {
   35110          14 :     Py_ssize_t __pyx_temp;
   35111          14 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   35112             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   35113             :     }
   35114             :   }
   35115             :   __Pyx_RefNannyFinishContext();
   35116             :   return __pyx_r;
   35117             : }
   35118             : 
   35119          14 : static PyObject *__pyx_pf_13_csparsetools_82_lil_fancy_set_int64_int8(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   35120          14 :   npy_intp __pyx_v_x;
   35121          14 :   npy_intp __pyx_v_y;
   35122          14 :   npy_intp __pyx_v_i;
   35123          14 :   npy_intp __pyx_v_j;
   35124          14 :   PyObject *__pyx_r = NULL;
   35125             :   __Pyx_RefNannyDeclarations
   35126          14 :   Py_ssize_t __pyx_t_1;
   35127          14 :   Py_ssize_t __pyx_t_2;
   35128          14 :   npy_intp __pyx_t_3;
   35129          14 :   Py_ssize_t __pyx_t_4;
   35130          14 :   Py_ssize_t __pyx_t_5;
   35131          14 :   npy_intp __pyx_t_6;
   35132          14 :   Py_ssize_t __pyx_t_7;
   35133          14 :   Py_ssize_t __pyx_t_8;
   35134          14 :   PyObject *__pyx_t_9 = NULL;
   35135          14 :   int __pyx_t_10;
   35136          14 :   int __pyx_lineno = 0;
   35137          14 :   const char *__pyx_filename = NULL;
   35138          14 :   int __pyx_clineno = 0;
   35139          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_int8", 1);
   35140             : 
   35141             :   /* "_csparsetools.pyx":706
   35142             :  *     cdef cnp.npy_intp i, j
   35143             :  * 
   35144             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   35145             :  *         for y in range(i_idx.shape[1]):
   35146             :  *             i = i_idx[x,y]
   35147             :  */
   35148          14 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   35149          14 :   __pyx_t_2 = __pyx_t_1;
   35150          35 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   35151          21 :     __pyx_v_x = __pyx_t_3;
   35152             : 
   35153             :     /* "_csparsetools.pyx":707
   35154             :  * 
   35155             :  *     for x in range(i_idx.shape[0]):
   35156             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   35157             :  *             i = i_idx[x,y]
   35158             :  *             j = j_idx[x,y]
   35159             :  */
   35160          21 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   35161          21 :     __pyx_t_5 = __pyx_t_4;
   35162          63 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   35163          42 :       __pyx_v_y = __pyx_t_6;
   35164             : 
   35165             :       /* "_csparsetools.pyx":708
   35166             :  *     for x in range(i_idx.shape[0]):
   35167             :  *         for y in range(i_idx.shape[1]):
   35168             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   35169             :  *             j = j_idx[x,y]
   35170             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   35171             :  */
   35172          42 :       __pyx_t_7 = __pyx_v_x;
   35173          42 :       __pyx_t_8 = __pyx_v_y;
   35174          42 :       __pyx_v_i = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   35175             : 
   35176             :       /* "_csparsetools.pyx":709
   35177             :  *         for y in range(i_idx.shape[1]):
   35178             :  *             i = i_idx[x,y]
   35179             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   35180             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   35181             :  * @cython.boundscheck(False)
   35182             :  */
   35183          42 :       __pyx_t_8 = __pyx_v_x;
   35184          42 :       __pyx_t_7 = __pyx_v_y;
   35185          42 :       __pyx_v_j = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   35186             : 
   35187             :       /* "_csparsetools.pyx":710
   35188             :  *             i = i_idx[x,y]
   35189             :  *             j = j_idx[x,y]
   35190             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   35191             :  * @cython.boundscheck(False)
   35192             :  * @cython.wraparound(False)
   35193             :  */
   35194          42 :       __pyx_t_7 = __pyx_v_x;
   35195          42 :       __pyx_t_8 = __pyx_v_y;
   35196          42 :       __pyx_t_9 = __Pyx_PyInt_From_npy_int8((*((npy_int8 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 710, __pyx_L1_error)
   35197          42 :       __Pyx_GOTREF(__pyx_t_9);
   35198          42 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 710, __pyx_L1_error)
   35199          42 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   35200             :     }
   35201             :   }
   35202             : 
   35203             :   /* "_csparsetools.pyx":695
   35204             :  *             j = j_idx[x,y]
   35205             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   35206             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   35207             :  * @cython.wraparound(False)
   35208             :  * def _lil_fancy_set_int64_int8(cnp.npy_intp M, cnp.npy_intp N,
   35209             :  */
   35210             : 
   35211             :   /* function exit code */
   35212          14 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   35213          14 :   goto __pyx_L0;
   35214           0 :   __pyx_L1_error:;
   35215           0 :   __Pyx_XDECREF(__pyx_t_9);
   35216           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_int8", __pyx_clineno, __pyx_lineno, __pyx_filename);
   35217           0 :   __pyx_r = NULL;
   35218          14 :   __pyx_L0:;
   35219          14 :   __Pyx_XGIVEREF(__pyx_r);
   35220          14 :   __Pyx_RefNannyFinishContext();
   35221          14 :   return __pyx_r;
   35222             : }
   35223             : 
   35224             : /* "_csparsetools.pyx":711
   35225             :  *             j = j_idx[x,y]
   35226             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   35227             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   35228             :  * @cython.wraparound(False)
   35229             :  * def _lil_fancy_set_int64_uint8(cnp.npy_intp M, cnp.npy_intp N,
   35230             :  */
   35231             : 
   35232             : /* Python wrapper */
   35233             : static PyObject *__pyx_pw_13_csparsetools_85_lil_fancy_set_int64_uint8(PyObject *__pyx_self, 
   35234             : #if CYTHON_METH_FASTCALL
   35235             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   35236             : #else
   35237             : PyObject *__pyx_args, PyObject *__pyx_kwds
   35238             : #endif
   35239             : ); /*proto*/
   35240             : static PyMethodDef __pyx_mdef_13_csparsetools_85_lil_fancy_set_int64_uint8 = {"_lil_fancy_set_int64_uint8", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_85_lil_fancy_set_int64_uint8, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   35241          28 : static PyObject *__pyx_pw_13_csparsetools_85_lil_fancy_set_int64_uint8(PyObject *__pyx_self, 
   35242             : #if CYTHON_METH_FASTCALL
   35243             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   35244             : #else
   35245             : PyObject *__pyx_args, PyObject *__pyx_kwds
   35246             : #endif
   35247             : ) {
   35248          28 :   npy_intp __pyx_v_M;
   35249          28 :   npy_intp __pyx_v_N;
   35250          28 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   35251          28 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   35252          28 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   35253          28 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   35254          28 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   35255             :   #if !CYTHON_METH_FASTCALL
   35256             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   35257             :   #endif
   35258          28 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   35259          28 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   35260          28 :   int __pyx_lineno = 0;
   35261          28 :   const char *__pyx_filename = NULL;
   35262          28 :   int __pyx_clineno = 0;
   35263          28 :   PyObject *__pyx_r = 0;
   35264             :   __Pyx_RefNannyDeclarations
   35265          28 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_uint8 (wrapper)", 0);
   35266             :   #if !CYTHON_METH_FASTCALL
   35267             :   #if CYTHON_ASSUME_SAFE_MACROS
   35268             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   35269             :   #else
   35270             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   35271             :   #endif
   35272             :   #endif
   35273          28 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   35274             :   {
   35275          28 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   35276          28 :     if (__pyx_kwds) {
   35277           0 :       Py_ssize_t kw_args;
   35278           0 :       switch (__pyx_nargs) {
   35279           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   35280           0 :         CYTHON_FALLTHROUGH;
   35281           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   35282           0 :         CYTHON_FALLTHROUGH;
   35283           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   35284           0 :         CYTHON_FALLTHROUGH;
   35285           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   35286           0 :         CYTHON_FALLTHROUGH;
   35287           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   35288           0 :         CYTHON_FALLTHROUGH;
   35289           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   35290           0 :         CYTHON_FALLTHROUGH;
   35291           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   35292           0 :         CYTHON_FALLTHROUGH;
   35293           0 :         case  0: break;
   35294           0 :         default: goto __pyx_L5_argtuple_error;
   35295             :       }
   35296           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   35297           0 :       switch (__pyx_nargs) {
   35298           0 :         case  0:
   35299           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   35300           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   35301           0 :           kw_args--;
   35302             :         }
   35303           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 711, __pyx_L3_error)
   35304           0 :         else goto __pyx_L5_argtuple_error;
   35305           0 :         CYTHON_FALLTHROUGH;
   35306             :         case  1:
   35307           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   35308           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   35309           0 :           kw_args--;
   35310             :         }
   35311           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 711, __pyx_L3_error)
   35312             :         else {
   35313           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint8", 1, 7, 7, 1); __PYX_ERR(0, 711, __pyx_L3_error)
   35314             :         }
   35315           0 :         CYTHON_FALLTHROUGH;
   35316             :         case  2:
   35317           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   35318           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   35319           0 :           kw_args--;
   35320             :         }
   35321           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 711, __pyx_L3_error)
   35322             :         else {
   35323           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint8", 1, 7, 7, 2); __PYX_ERR(0, 711, __pyx_L3_error)
   35324             :         }
   35325           0 :         CYTHON_FALLTHROUGH;
   35326             :         case  3:
   35327           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   35328           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   35329           0 :           kw_args--;
   35330             :         }
   35331           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 711, __pyx_L3_error)
   35332             :         else {
   35333           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint8", 1, 7, 7, 3); __PYX_ERR(0, 711, __pyx_L3_error)
   35334             :         }
   35335           0 :         CYTHON_FALLTHROUGH;
   35336             :         case  4:
   35337           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   35338           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   35339           0 :           kw_args--;
   35340             :         }
   35341           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 711, __pyx_L3_error)
   35342             :         else {
   35343           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint8", 1, 7, 7, 4); __PYX_ERR(0, 711, __pyx_L3_error)
   35344             :         }
   35345           0 :         CYTHON_FALLTHROUGH;
   35346             :         case  5:
   35347           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   35348           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   35349           0 :           kw_args--;
   35350             :         }
   35351           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 711, __pyx_L3_error)
   35352             :         else {
   35353           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint8", 1, 7, 7, 5); __PYX_ERR(0, 711, __pyx_L3_error)
   35354             :         }
   35355           0 :         CYTHON_FALLTHROUGH;
   35356             :         case  6:
   35357           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   35358           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   35359           0 :           kw_args--;
   35360             :         }
   35361           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 711, __pyx_L3_error)
   35362             :         else {
   35363           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint8", 1, 7, 7, 6); __PYX_ERR(0, 711, __pyx_L3_error)
   35364             :         }
   35365             :       }
   35366           0 :       if (unlikely(kw_args > 0)) {
   35367           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   35368           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int64_uint8") < 0)) __PYX_ERR(0, 711, __pyx_L3_error)
   35369             :       }
   35370          28 :     } else if (unlikely(__pyx_nargs != 7)) {
   35371           0 :       goto __pyx_L5_argtuple_error;
   35372             :     } else {
   35373          28 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   35374          28 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   35375          28 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   35376          28 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   35377          28 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   35378          28 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   35379          28 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   35380             :     }
   35381          28 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 713, __pyx_L3_error)
   35382          28 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 713, __pyx_L3_error)
   35383          28 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 714, __pyx_L3_error)
   35384          28 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 715, __pyx_L3_error)
   35385          28 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 716, __pyx_L3_error)
   35386          28 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 717, __pyx_L3_error)
   35387          28 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_uint8(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 718, __pyx_L3_error)
   35388             :   }
   35389          28 :   goto __pyx_L6_skip;
   35390           0 :   __pyx_L5_argtuple_error:;
   35391           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint8", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 711, __pyx_L3_error)
   35392          28 :   __pyx_L6_skip:;
   35393          28 :   goto __pyx_L4_argument_unpacking_done;
   35394           0 :   __pyx_L3_error:;
   35395             :   {
   35396           0 :     Py_ssize_t __pyx_temp;
   35397           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   35398             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   35399             :     }
   35400             :   }
   35401           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   35402           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   35403           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   35404           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   35405           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   35406           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_uint8", __pyx_clineno, __pyx_lineno, __pyx_filename);
   35407           0 :   __Pyx_RefNannyFinishContext();
   35408           0 :   return NULL;
   35409          28 :   __pyx_L4_argument_unpacking_done:;
   35410          28 :   __pyx_r = __pyx_pf_13_csparsetools_84_lil_fancy_set_int64_uint8(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   35411             : 
   35412             :   /* function exit code */
   35413          28 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   35414          28 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   35415          28 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   35416          28 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   35417          28 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   35418             :   {
   35419          28 :     Py_ssize_t __pyx_temp;
   35420          28 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   35421             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   35422             :     }
   35423             :   }
   35424             :   __Pyx_RefNannyFinishContext();
   35425             :   return __pyx_r;
   35426             : }
   35427             : 
   35428          28 : static PyObject *__pyx_pf_13_csparsetools_84_lil_fancy_set_int64_uint8(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   35429          28 :   npy_intp __pyx_v_x;
   35430          28 :   npy_intp __pyx_v_y;
   35431          28 :   npy_intp __pyx_v_i;
   35432          28 :   npy_intp __pyx_v_j;
   35433          28 :   PyObject *__pyx_r = NULL;
   35434             :   __Pyx_RefNannyDeclarations
   35435          28 :   Py_ssize_t __pyx_t_1;
   35436          28 :   Py_ssize_t __pyx_t_2;
   35437          28 :   npy_intp __pyx_t_3;
   35438          28 :   Py_ssize_t __pyx_t_4;
   35439          28 :   Py_ssize_t __pyx_t_5;
   35440          28 :   npy_intp __pyx_t_6;
   35441          28 :   Py_ssize_t __pyx_t_7;
   35442          28 :   Py_ssize_t __pyx_t_8;
   35443          28 :   PyObject *__pyx_t_9 = NULL;
   35444          28 :   int __pyx_t_10;
   35445          28 :   int __pyx_lineno = 0;
   35446          28 :   const char *__pyx_filename = NULL;
   35447          28 :   int __pyx_clineno = 0;
   35448          28 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_uint8", 1);
   35449             : 
   35450             :   /* "_csparsetools.pyx":722
   35451             :  *     cdef cnp.npy_intp i, j
   35452             :  * 
   35453             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   35454             :  *         for y in range(i_idx.shape[1]):
   35455             :  *             i = i_idx[x,y]
   35456             :  */
   35457          28 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   35458          28 :   __pyx_t_2 = __pyx_t_1;
   35459          70 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   35460          42 :     __pyx_v_x = __pyx_t_3;
   35461             : 
   35462             :     /* "_csparsetools.pyx":723
   35463             :  * 
   35464             :  *     for x in range(i_idx.shape[0]):
   35465             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   35466             :  *             i = i_idx[x,y]
   35467             :  *             j = j_idx[x,y]
   35468             :  */
   35469          42 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   35470          42 :     __pyx_t_5 = __pyx_t_4;
   35471         126 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   35472          84 :       __pyx_v_y = __pyx_t_6;
   35473             : 
   35474             :       /* "_csparsetools.pyx":724
   35475             :  *     for x in range(i_idx.shape[0]):
   35476             :  *         for y in range(i_idx.shape[1]):
   35477             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   35478             :  *             j = j_idx[x,y]
   35479             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   35480             :  */
   35481          84 :       __pyx_t_7 = __pyx_v_x;
   35482          84 :       __pyx_t_8 = __pyx_v_y;
   35483          84 :       __pyx_v_i = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   35484             : 
   35485             :       /* "_csparsetools.pyx":725
   35486             :  *         for y in range(i_idx.shape[1]):
   35487             :  *             i = i_idx[x,y]
   35488             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   35489             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   35490             :  * @cython.boundscheck(False)
   35491             :  */
   35492          84 :       __pyx_t_8 = __pyx_v_x;
   35493          84 :       __pyx_t_7 = __pyx_v_y;
   35494          84 :       __pyx_v_j = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   35495             : 
   35496             :       /* "_csparsetools.pyx":726
   35497             :  *             i = i_idx[x,y]
   35498             :  *             j = j_idx[x,y]
   35499             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   35500             :  * @cython.boundscheck(False)
   35501             :  * @cython.wraparound(False)
   35502             :  */
   35503          84 :       __pyx_t_7 = __pyx_v_x;
   35504          84 :       __pyx_t_8 = __pyx_v_y;
   35505          84 :       __pyx_t_9 = __Pyx_PyInt_From_npy_uint8((*((npy_uint8 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
   35506          84 :       __Pyx_GOTREF(__pyx_t_9);
   35507          84 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 726, __pyx_L1_error)
   35508          84 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   35509             :     }
   35510             :   }
   35511             : 
   35512             :   /* "_csparsetools.pyx":711
   35513             :  *             j = j_idx[x,y]
   35514             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   35515             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   35516             :  * @cython.wraparound(False)
   35517             :  * def _lil_fancy_set_int64_uint8(cnp.npy_intp M, cnp.npy_intp N,
   35518             :  */
   35519             : 
   35520             :   /* function exit code */
   35521          28 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   35522          28 :   goto __pyx_L0;
   35523           0 :   __pyx_L1_error:;
   35524           0 :   __Pyx_XDECREF(__pyx_t_9);
   35525           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_uint8", __pyx_clineno, __pyx_lineno, __pyx_filename);
   35526           0 :   __pyx_r = NULL;
   35527          28 :   __pyx_L0:;
   35528          28 :   __Pyx_XGIVEREF(__pyx_r);
   35529          28 :   __Pyx_RefNannyFinishContext();
   35530          28 :   return __pyx_r;
   35531             : }
   35532             : 
   35533             : /* "_csparsetools.pyx":727
   35534             :  *             j = j_idx[x,y]
   35535             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   35536             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   35537             :  * @cython.wraparound(False)
   35538             :  * def _lil_fancy_set_int64_int16(cnp.npy_intp M, cnp.npy_intp N,
   35539             :  */
   35540             : 
   35541             : /* Python wrapper */
   35542             : static PyObject *__pyx_pw_13_csparsetools_87_lil_fancy_set_int64_int16(PyObject *__pyx_self, 
   35543             : #if CYTHON_METH_FASTCALL
   35544             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   35545             : #else
   35546             : PyObject *__pyx_args, PyObject *__pyx_kwds
   35547             : #endif
   35548             : ); /*proto*/
   35549             : static PyMethodDef __pyx_mdef_13_csparsetools_87_lil_fancy_set_int64_int16 = {"_lil_fancy_set_int64_int16", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_87_lil_fancy_set_int64_int16, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   35550          14 : static PyObject *__pyx_pw_13_csparsetools_87_lil_fancy_set_int64_int16(PyObject *__pyx_self, 
   35551             : #if CYTHON_METH_FASTCALL
   35552             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   35553             : #else
   35554             : PyObject *__pyx_args, PyObject *__pyx_kwds
   35555             : #endif
   35556             : ) {
   35557          14 :   npy_intp __pyx_v_M;
   35558          14 :   npy_intp __pyx_v_N;
   35559          14 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   35560          14 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   35561          14 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   35562          14 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   35563          14 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   35564             :   #if !CYTHON_METH_FASTCALL
   35565             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   35566             :   #endif
   35567          14 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   35568          14 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   35569          14 :   int __pyx_lineno = 0;
   35570          14 :   const char *__pyx_filename = NULL;
   35571          14 :   int __pyx_clineno = 0;
   35572          14 :   PyObject *__pyx_r = 0;
   35573             :   __Pyx_RefNannyDeclarations
   35574          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_int16 (wrapper)", 0);
   35575             :   #if !CYTHON_METH_FASTCALL
   35576             :   #if CYTHON_ASSUME_SAFE_MACROS
   35577             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   35578             :   #else
   35579             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   35580             :   #endif
   35581             :   #endif
   35582          14 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   35583             :   {
   35584          14 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   35585          14 :     if (__pyx_kwds) {
   35586           0 :       Py_ssize_t kw_args;
   35587           0 :       switch (__pyx_nargs) {
   35588           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   35589           0 :         CYTHON_FALLTHROUGH;
   35590           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   35591           0 :         CYTHON_FALLTHROUGH;
   35592           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   35593           0 :         CYTHON_FALLTHROUGH;
   35594           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   35595           0 :         CYTHON_FALLTHROUGH;
   35596           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   35597           0 :         CYTHON_FALLTHROUGH;
   35598           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   35599           0 :         CYTHON_FALLTHROUGH;
   35600           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   35601           0 :         CYTHON_FALLTHROUGH;
   35602           0 :         case  0: break;
   35603           0 :         default: goto __pyx_L5_argtuple_error;
   35604             :       }
   35605           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   35606           0 :       switch (__pyx_nargs) {
   35607           0 :         case  0:
   35608           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   35609           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   35610           0 :           kw_args--;
   35611             :         }
   35612           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 727, __pyx_L3_error)
   35613           0 :         else goto __pyx_L5_argtuple_error;
   35614           0 :         CYTHON_FALLTHROUGH;
   35615             :         case  1:
   35616           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   35617           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   35618           0 :           kw_args--;
   35619             :         }
   35620           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 727, __pyx_L3_error)
   35621             :         else {
   35622           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int16", 1, 7, 7, 1); __PYX_ERR(0, 727, __pyx_L3_error)
   35623             :         }
   35624           0 :         CYTHON_FALLTHROUGH;
   35625             :         case  2:
   35626           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   35627           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   35628           0 :           kw_args--;
   35629             :         }
   35630           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 727, __pyx_L3_error)
   35631             :         else {
   35632           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int16", 1, 7, 7, 2); __PYX_ERR(0, 727, __pyx_L3_error)
   35633             :         }
   35634           0 :         CYTHON_FALLTHROUGH;
   35635             :         case  3:
   35636           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   35637           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   35638           0 :           kw_args--;
   35639             :         }
   35640           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 727, __pyx_L3_error)
   35641             :         else {
   35642           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int16", 1, 7, 7, 3); __PYX_ERR(0, 727, __pyx_L3_error)
   35643             :         }
   35644           0 :         CYTHON_FALLTHROUGH;
   35645             :         case  4:
   35646           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   35647           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   35648           0 :           kw_args--;
   35649             :         }
   35650           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 727, __pyx_L3_error)
   35651             :         else {
   35652           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int16", 1, 7, 7, 4); __PYX_ERR(0, 727, __pyx_L3_error)
   35653             :         }
   35654           0 :         CYTHON_FALLTHROUGH;
   35655             :         case  5:
   35656           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   35657           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   35658           0 :           kw_args--;
   35659             :         }
   35660           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 727, __pyx_L3_error)
   35661             :         else {
   35662           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int16", 1, 7, 7, 5); __PYX_ERR(0, 727, __pyx_L3_error)
   35663             :         }
   35664           0 :         CYTHON_FALLTHROUGH;
   35665             :         case  6:
   35666           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   35667           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   35668           0 :           kw_args--;
   35669             :         }
   35670           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 727, __pyx_L3_error)
   35671             :         else {
   35672           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int16", 1, 7, 7, 6); __PYX_ERR(0, 727, __pyx_L3_error)
   35673             :         }
   35674             :       }
   35675           0 :       if (unlikely(kw_args > 0)) {
   35676           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   35677           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int64_int16") < 0)) __PYX_ERR(0, 727, __pyx_L3_error)
   35678             :       }
   35679          14 :     } else if (unlikely(__pyx_nargs != 7)) {
   35680           0 :       goto __pyx_L5_argtuple_error;
   35681             :     } else {
   35682          14 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   35683          14 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   35684          14 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   35685          14 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   35686          14 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   35687          14 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   35688          14 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   35689             :     }
   35690          14 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 729, __pyx_L3_error)
   35691          14 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 729, __pyx_L3_error)
   35692          14 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 730, __pyx_L3_error)
   35693          14 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 731, __pyx_L3_error)
   35694          14 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
   35695          14 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
   35696          14 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int16(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
   35697             :   }
   35698          14 :   goto __pyx_L6_skip;
   35699           0 :   __pyx_L5_argtuple_error:;
   35700           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int16", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 727, __pyx_L3_error)
   35701          14 :   __pyx_L6_skip:;
   35702          14 :   goto __pyx_L4_argument_unpacking_done;
   35703           0 :   __pyx_L3_error:;
   35704             :   {
   35705           0 :     Py_ssize_t __pyx_temp;
   35706           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   35707             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   35708             :     }
   35709             :   }
   35710           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   35711           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   35712           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   35713           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   35714           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   35715           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_int16", __pyx_clineno, __pyx_lineno, __pyx_filename);
   35716           0 :   __Pyx_RefNannyFinishContext();
   35717           0 :   return NULL;
   35718          14 :   __pyx_L4_argument_unpacking_done:;
   35719          14 :   __pyx_r = __pyx_pf_13_csparsetools_86_lil_fancy_set_int64_int16(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   35720             : 
   35721             :   /* function exit code */
   35722          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   35723          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   35724          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   35725          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   35726          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   35727             :   {
   35728          14 :     Py_ssize_t __pyx_temp;
   35729          14 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   35730             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   35731             :     }
   35732             :   }
   35733             :   __Pyx_RefNannyFinishContext();
   35734             :   return __pyx_r;
   35735             : }
   35736             : 
   35737          14 : static PyObject *__pyx_pf_13_csparsetools_86_lil_fancy_set_int64_int16(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   35738          14 :   npy_intp __pyx_v_x;
   35739          14 :   npy_intp __pyx_v_y;
   35740          14 :   npy_intp __pyx_v_i;
   35741          14 :   npy_intp __pyx_v_j;
   35742          14 :   PyObject *__pyx_r = NULL;
   35743             :   __Pyx_RefNannyDeclarations
   35744          14 :   Py_ssize_t __pyx_t_1;
   35745          14 :   Py_ssize_t __pyx_t_2;
   35746          14 :   npy_intp __pyx_t_3;
   35747          14 :   Py_ssize_t __pyx_t_4;
   35748          14 :   Py_ssize_t __pyx_t_5;
   35749          14 :   npy_intp __pyx_t_6;
   35750          14 :   Py_ssize_t __pyx_t_7;
   35751          14 :   Py_ssize_t __pyx_t_8;
   35752          14 :   PyObject *__pyx_t_9 = NULL;
   35753          14 :   int __pyx_t_10;
   35754          14 :   int __pyx_lineno = 0;
   35755          14 :   const char *__pyx_filename = NULL;
   35756          14 :   int __pyx_clineno = 0;
   35757          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_int16", 1);
   35758             : 
   35759             :   /* "_csparsetools.pyx":738
   35760             :  *     cdef cnp.npy_intp i, j
   35761             :  * 
   35762             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   35763             :  *         for y in range(i_idx.shape[1]):
   35764             :  *             i = i_idx[x,y]
   35765             :  */
   35766          14 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   35767          14 :   __pyx_t_2 = __pyx_t_1;
   35768          35 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   35769          21 :     __pyx_v_x = __pyx_t_3;
   35770             : 
   35771             :     /* "_csparsetools.pyx":739
   35772             :  * 
   35773             :  *     for x in range(i_idx.shape[0]):
   35774             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   35775             :  *             i = i_idx[x,y]
   35776             :  *             j = j_idx[x,y]
   35777             :  */
   35778          21 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   35779          21 :     __pyx_t_5 = __pyx_t_4;
   35780          63 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   35781          42 :       __pyx_v_y = __pyx_t_6;
   35782             : 
   35783             :       /* "_csparsetools.pyx":740
   35784             :  *     for x in range(i_idx.shape[0]):
   35785             :  *         for y in range(i_idx.shape[1]):
   35786             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   35787             :  *             j = j_idx[x,y]
   35788             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   35789             :  */
   35790          42 :       __pyx_t_7 = __pyx_v_x;
   35791          42 :       __pyx_t_8 = __pyx_v_y;
   35792          42 :       __pyx_v_i = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   35793             : 
   35794             :       /* "_csparsetools.pyx":741
   35795             :  *         for y in range(i_idx.shape[1]):
   35796             :  *             i = i_idx[x,y]
   35797             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   35798             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   35799             :  * @cython.boundscheck(False)
   35800             :  */
   35801          42 :       __pyx_t_8 = __pyx_v_x;
   35802          42 :       __pyx_t_7 = __pyx_v_y;
   35803          42 :       __pyx_v_j = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   35804             : 
   35805             :       /* "_csparsetools.pyx":742
   35806             :  *             i = i_idx[x,y]
   35807             :  *             j = j_idx[x,y]
   35808             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   35809             :  * @cython.boundscheck(False)
   35810             :  * @cython.wraparound(False)
   35811             :  */
   35812          42 :       __pyx_t_7 = __pyx_v_x;
   35813          42 :       __pyx_t_8 = __pyx_v_y;
   35814          42 :       __pyx_t_9 = __Pyx_PyInt_From_npy_int16((*((npy_int16 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 742, __pyx_L1_error)
   35815          42 :       __Pyx_GOTREF(__pyx_t_9);
   35816          42 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 742, __pyx_L1_error)
   35817          42 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   35818             :     }
   35819             :   }
   35820             : 
   35821             :   /* "_csparsetools.pyx":727
   35822             :  *             j = j_idx[x,y]
   35823             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   35824             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   35825             :  * @cython.wraparound(False)
   35826             :  * def _lil_fancy_set_int64_int16(cnp.npy_intp M, cnp.npy_intp N,
   35827             :  */
   35828             : 
   35829             :   /* function exit code */
   35830          14 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   35831          14 :   goto __pyx_L0;
   35832           0 :   __pyx_L1_error:;
   35833           0 :   __Pyx_XDECREF(__pyx_t_9);
   35834           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_int16", __pyx_clineno, __pyx_lineno, __pyx_filename);
   35835           0 :   __pyx_r = NULL;
   35836          14 :   __pyx_L0:;
   35837          14 :   __Pyx_XGIVEREF(__pyx_r);
   35838          14 :   __Pyx_RefNannyFinishContext();
   35839          14 :   return __pyx_r;
   35840             : }
   35841             : 
   35842             : /* "_csparsetools.pyx":743
   35843             :  *             j = j_idx[x,y]
   35844             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   35845             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   35846             :  * @cython.wraparound(False)
   35847             :  * def _lil_fancy_set_int64_uint16(cnp.npy_intp M, cnp.npy_intp N,
   35848             :  */
   35849             : 
   35850             : /* Python wrapper */
   35851             : static PyObject *__pyx_pw_13_csparsetools_89_lil_fancy_set_int64_uint16(PyObject *__pyx_self, 
   35852             : #if CYTHON_METH_FASTCALL
   35853             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   35854             : #else
   35855             : PyObject *__pyx_args, PyObject *__pyx_kwds
   35856             : #endif
   35857             : ); /*proto*/
   35858             : static PyMethodDef __pyx_mdef_13_csparsetools_89_lil_fancy_set_int64_uint16 = {"_lil_fancy_set_int64_uint16", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_89_lil_fancy_set_int64_uint16, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   35859          14 : static PyObject *__pyx_pw_13_csparsetools_89_lil_fancy_set_int64_uint16(PyObject *__pyx_self, 
   35860             : #if CYTHON_METH_FASTCALL
   35861             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   35862             : #else
   35863             : PyObject *__pyx_args, PyObject *__pyx_kwds
   35864             : #endif
   35865             : ) {
   35866          14 :   npy_intp __pyx_v_M;
   35867          14 :   npy_intp __pyx_v_N;
   35868          14 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   35869          14 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   35870          14 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   35871          14 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   35872          14 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   35873             :   #if !CYTHON_METH_FASTCALL
   35874             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   35875             :   #endif
   35876          14 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   35877          14 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   35878          14 :   int __pyx_lineno = 0;
   35879          14 :   const char *__pyx_filename = NULL;
   35880          14 :   int __pyx_clineno = 0;
   35881          14 :   PyObject *__pyx_r = 0;
   35882             :   __Pyx_RefNannyDeclarations
   35883          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_uint16 (wrapper)", 0);
   35884             :   #if !CYTHON_METH_FASTCALL
   35885             :   #if CYTHON_ASSUME_SAFE_MACROS
   35886             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   35887             :   #else
   35888             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   35889             :   #endif
   35890             :   #endif
   35891          14 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   35892             :   {
   35893          14 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   35894          14 :     if (__pyx_kwds) {
   35895           0 :       Py_ssize_t kw_args;
   35896           0 :       switch (__pyx_nargs) {
   35897           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   35898           0 :         CYTHON_FALLTHROUGH;
   35899           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   35900           0 :         CYTHON_FALLTHROUGH;
   35901           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   35902           0 :         CYTHON_FALLTHROUGH;
   35903           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   35904           0 :         CYTHON_FALLTHROUGH;
   35905           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   35906           0 :         CYTHON_FALLTHROUGH;
   35907           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   35908           0 :         CYTHON_FALLTHROUGH;
   35909           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   35910           0 :         CYTHON_FALLTHROUGH;
   35911           0 :         case  0: break;
   35912           0 :         default: goto __pyx_L5_argtuple_error;
   35913             :       }
   35914           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   35915           0 :       switch (__pyx_nargs) {
   35916           0 :         case  0:
   35917           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   35918           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   35919           0 :           kw_args--;
   35920             :         }
   35921           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 743, __pyx_L3_error)
   35922           0 :         else goto __pyx_L5_argtuple_error;
   35923           0 :         CYTHON_FALLTHROUGH;
   35924             :         case  1:
   35925           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   35926           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   35927           0 :           kw_args--;
   35928             :         }
   35929           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 743, __pyx_L3_error)
   35930             :         else {
   35931           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint16", 1, 7, 7, 1); __PYX_ERR(0, 743, __pyx_L3_error)
   35932             :         }
   35933           0 :         CYTHON_FALLTHROUGH;
   35934             :         case  2:
   35935           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   35936           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   35937           0 :           kw_args--;
   35938             :         }
   35939           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 743, __pyx_L3_error)
   35940             :         else {
   35941           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint16", 1, 7, 7, 2); __PYX_ERR(0, 743, __pyx_L3_error)
   35942             :         }
   35943           0 :         CYTHON_FALLTHROUGH;
   35944             :         case  3:
   35945           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   35946           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   35947           0 :           kw_args--;
   35948             :         }
   35949           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 743, __pyx_L3_error)
   35950             :         else {
   35951           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint16", 1, 7, 7, 3); __PYX_ERR(0, 743, __pyx_L3_error)
   35952             :         }
   35953           0 :         CYTHON_FALLTHROUGH;
   35954             :         case  4:
   35955           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   35956           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   35957           0 :           kw_args--;
   35958             :         }
   35959           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 743, __pyx_L3_error)
   35960             :         else {
   35961           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint16", 1, 7, 7, 4); __PYX_ERR(0, 743, __pyx_L3_error)
   35962             :         }
   35963           0 :         CYTHON_FALLTHROUGH;
   35964             :         case  5:
   35965           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   35966           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   35967           0 :           kw_args--;
   35968             :         }
   35969           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 743, __pyx_L3_error)
   35970             :         else {
   35971           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint16", 1, 7, 7, 5); __PYX_ERR(0, 743, __pyx_L3_error)
   35972             :         }
   35973           0 :         CYTHON_FALLTHROUGH;
   35974             :         case  6:
   35975           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   35976           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   35977           0 :           kw_args--;
   35978             :         }
   35979           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 743, __pyx_L3_error)
   35980             :         else {
   35981           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint16", 1, 7, 7, 6); __PYX_ERR(0, 743, __pyx_L3_error)
   35982             :         }
   35983             :       }
   35984           0 :       if (unlikely(kw_args > 0)) {
   35985           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   35986           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int64_uint16") < 0)) __PYX_ERR(0, 743, __pyx_L3_error)
   35987             :       }
   35988          14 :     } else if (unlikely(__pyx_nargs != 7)) {
   35989           0 :       goto __pyx_L5_argtuple_error;
   35990             :     } else {
   35991          14 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   35992          14 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   35993          14 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   35994          14 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   35995          14 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   35996          14 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   35997          14 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   35998             :     }
   35999          14 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 745, __pyx_L3_error)
   36000          14 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 745, __pyx_L3_error)
   36001          14 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
   36002          14 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
   36003          14 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
   36004          14 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
   36005          14 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_uint16(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 750, __pyx_L3_error)
   36006             :   }
   36007          14 :   goto __pyx_L6_skip;
   36008           0 :   __pyx_L5_argtuple_error:;
   36009           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint16", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 743, __pyx_L3_error)
   36010          14 :   __pyx_L6_skip:;
   36011          14 :   goto __pyx_L4_argument_unpacking_done;
   36012           0 :   __pyx_L3_error:;
   36013             :   {
   36014           0 :     Py_ssize_t __pyx_temp;
   36015           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   36016             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   36017             :     }
   36018             :   }
   36019           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   36020           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   36021           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   36022           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   36023           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   36024           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_uint16", __pyx_clineno, __pyx_lineno, __pyx_filename);
   36025           0 :   __Pyx_RefNannyFinishContext();
   36026           0 :   return NULL;
   36027          14 :   __pyx_L4_argument_unpacking_done:;
   36028          14 :   __pyx_r = __pyx_pf_13_csparsetools_88_lil_fancy_set_int64_uint16(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   36029             : 
   36030             :   /* function exit code */
   36031          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   36032          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   36033          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   36034          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   36035          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   36036             :   {
   36037          14 :     Py_ssize_t __pyx_temp;
   36038          14 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   36039             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   36040             :     }
   36041             :   }
   36042             :   __Pyx_RefNannyFinishContext();
   36043             :   return __pyx_r;
   36044             : }
   36045             : 
   36046          14 : static PyObject *__pyx_pf_13_csparsetools_88_lil_fancy_set_int64_uint16(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   36047          14 :   npy_intp __pyx_v_x;
   36048          14 :   npy_intp __pyx_v_y;
   36049          14 :   npy_intp __pyx_v_i;
   36050          14 :   npy_intp __pyx_v_j;
   36051          14 :   PyObject *__pyx_r = NULL;
   36052             :   __Pyx_RefNannyDeclarations
   36053          14 :   Py_ssize_t __pyx_t_1;
   36054          14 :   Py_ssize_t __pyx_t_2;
   36055          14 :   npy_intp __pyx_t_3;
   36056          14 :   Py_ssize_t __pyx_t_4;
   36057          14 :   Py_ssize_t __pyx_t_5;
   36058          14 :   npy_intp __pyx_t_6;
   36059          14 :   Py_ssize_t __pyx_t_7;
   36060          14 :   Py_ssize_t __pyx_t_8;
   36061          14 :   PyObject *__pyx_t_9 = NULL;
   36062          14 :   int __pyx_t_10;
   36063          14 :   int __pyx_lineno = 0;
   36064          14 :   const char *__pyx_filename = NULL;
   36065          14 :   int __pyx_clineno = 0;
   36066          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_uint16", 1);
   36067             : 
   36068             :   /* "_csparsetools.pyx":754
   36069             :  *     cdef cnp.npy_intp i, j
   36070             :  * 
   36071             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   36072             :  *         for y in range(i_idx.shape[1]):
   36073             :  *             i = i_idx[x,y]
   36074             :  */
   36075          14 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   36076          14 :   __pyx_t_2 = __pyx_t_1;
   36077          35 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   36078          21 :     __pyx_v_x = __pyx_t_3;
   36079             : 
   36080             :     /* "_csparsetools.pyx":755
   36081             :  * 
   36082             :  *     for x in range(i_idx.shape[0]):
   36083             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   36084             :  *             i = i_idx[x,y]
   36085             :  *             j = j_idx[x,y]
   36086             :  */
   36087          21 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   36088          21 :     __pyx_t_5 = __pyx_t_4;
   36089          63 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   36090          42 :       __pyx_v_y = __pyx_t_6;
   36091             : 
   36092             :       /* "_csparsetools.pyx":756
   36093             :  *     for x in range(i_idx.shape[0]):
   36094             :  *         for y in range(i_idx.shape[1]):
   36095             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   36096             :  *             j = j_idx[x,y]
   36097             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   36098             :  */
   36099          42 :       __pyx_t_7 = __pyx_v_x;
   36100          42 :       __pyx_t_8 = __pyx_v_y;
   36101          42 :       __pyx_v_i = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   36102             : 
   36103             :       /* "_csparsetools.pyx":757
   36104             :  *         for y in range(i_idx.shape[1]):
   36105             :  *             i = i_idx[x,y]
   36106             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   36107             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   36108             :  * @cython.boundscheck(False)
   36109             :  */
   36110          42 :       __pyx_t_8 = __pyx_v_x;
   36111          42 :       __pyx_t_7 = __pyx_v_y;
   36112          42 :       __pyx_v_j = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   36113             : 
   36114             :       /* "_csparsetools.pyx":758
   36115             :  *             i = i_idx[x,y]
   36116             :  *             j = j_idx[x,y]
   36117             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   36118             :  * @cython.boundscheck(False)
   36119             :  * @cython.wraparound(False)
   36120             :  */
   36121          42 :       __pyx_t_7 = __pyx_v_x;
   36122          42 :       __pyx_t_8 = __pyx_v_y;
   36123          42 :       __pyx_t_9 = __Pyx_PyInt_From_npy_uint16((*((npy_uint16 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 758, __pyx_L1_error)
   36124          42 :       __Pyx_GOTREF(__pyx_t_9);
   36125          42 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 758, __pyx_L1_error)
   36126          42 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   36127             :     }
   36128             :   }
   36129             : 
   36130             :   /* "_csparsetools.pyx":743
   36131             :  *             j = j_idx[x,y]
   36132             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   36133             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   36134             :  * @cython.wraparound(False)
   36135             :  * def _lil_fancy_set_int64_uint16(cnp.npy_intp M, cnp.npy_intp N,
   36136             :  */
   36137             : 
   36138             :   /* function exit code */
   36139          14 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   36140          14 :   goto __pyx_L0;
   36141           0 :   __pyx_L1_error:;
   36142           0 :   __Pyx_XDECREF(__pyx_t_9);
   36143           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_uint16", __pyx_clineno, __pyx_lineno, __pyx_filename);
   36144           0 :   __pyx_r = NULL;
   36145          14 :   __pyx_L0:;
   36146          14 :   __Pyx_XGIVEREF(__pyx_r);
   36147          14 :   __Pyx_RefNannyFinishContext();
   36148          14 :   return __pyx_r;
   36149             : }
   36150             : 
   36151             : /* "_csparsetools.pyx":759
   36152             :  *             j = j_idx[x,y]
   36153             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   36154             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   36155             :  * @cython.wraparound(False)
   36156             :  * def _lil_fancy_set_int64_int32(cnp.npy_intp M, cnp.npy_intp N,
   36157             :  */
   36158             : 
   36159             : /* Python wrapper */
   36160             : static PyObject *__pyx_pw_13_csparsetools_91_lil_fancy_set_int64_int32(PyObject *__pyx_self, 
   36161             : #if CYTHON_METH_FASTCALL
   36162             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   36163             : #else
   36164             : PyObject *__pyx_args, PyObject *__pyx_kwds
   36165             : #endif
   36166             : ); /*proto*/
   36167             : static PyMethodDef __pyx_mdef_13_csparsetools_91_lil_fancy_set_int64_int32 = {"_lil_fancy_set_int64_int32", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_91_lil_fancy_set_int64_int32, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   36168          14 : static PyObject *__pyx_pw_13_csparsetools_91_lil_fancy_set_int64_int32(PyObject *__pyx_self, 
   36169             : #if CYTHON_METH_FASTCALL
   36170             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   36171             : #else
   36172             : PyObject *__pyx_args, PyObject *__pyx_kwds
   36173             : #endif
   36174             : ) {
   36175          14 :   npy_intp __pyx_v_M;
   36176          14 :   npy_intp __pyx_v_N;
   36177          14 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   36178          14 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   36179          14 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   36180          14 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   36181          14 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   36182             :   #if !CYTHON_METH_FASTCALL
   36183             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   36184             :   #endif
   36185          14 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   36186          14 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   36187          14 :   int __pyx_lineno = 0;
   36188          14 :   const char *__pyx_filename = NULL;
   36189          14 :   int __pyx_clineno = 0;
   36190          14 :   PyObject *__pyx_r = 0;
   36191             :   __Pyx_RefNannyDeclarations
   36192          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_int32 (wrapper)", 0);
   36193             :   #if !CYTHON_METH_FASTCALL
   36194             :   #if CYTHON_ASSUME_SAFE_MACROS
   36195             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   36196             :   #else
   36197             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   36198             :   #endif
   36199             :   #endif
   36200          14 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   36201             :   {
   36202          14 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   36203          14 :     if (__pyx_kwds) {
   36204           0 :       Py_ssize_t kw_args;
   36205           0 :       switch (__pyx_nargs) {
   36206           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   36207           0 :         CYTHON_FALLTHROUGH;
   36208           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   36209           0 :         CYTHON_FALLTHROUGH;
   36210           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   36211           0 :         CYTHON_FALLTHROUGH;
   36212           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   36213           0 :         CYTHON_FALLTHROUGH;
   36214           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   36215           0 :         CYTHON_FALLTHROUGH;
   36216           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   36217           0 :         CYTHON_FALLTHROUGH;
   36218           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   36219           0 :         CYTHON_FALLTHROUGH;
   36220           0 :         case  0: break;
   36221           0 :         default: goto __pyx_L5_argtuple_error;
   36222             :       }
   36223           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   36224           0 :       switch (__pyx_nargs) {
   36225           0 :         case  0:
   36226           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   36227           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   36228           0 :           kw_args--;
   36229             :         }
   36230           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 759, __pyx_L3_error)
   36231           0 :         else goto __pyx_L5_argtuple_error;
   36232           0 :         CYTHON_FALLTHROUGH;
   36233             :         case  1:
   36234           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   36235           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   36236           0 :           kw_args--;
   36237             :         }
   36238           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 759, __pyx_L3_error)
   36239             :         else {
   36240           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int32", 1, 7, 7, 1); __PYX_ERR(0, 759, __pyx_L3_error)
   36241             :         }
   36242           0 :         CYTHON_FALLTHROUGH;
   36243             :         case  2:
   36244           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   36245           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   36246           0 :           kw_args--;
   36247             :         }
   36248           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 759, __pyx_L3_error)
   36249             :         else {
   36250           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int32", 1, 7, 7, 2); __PYX_ERR(0, 759, __pyx_L3_error)
   36251             :         }
   36252           0 :         CYTHON_FALLTHROUGH;
   36253             :         case  3:
   36254           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   36255           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   36256           0 :           kw_args--;
   36257             :         }
   36258           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 759, __pyx_L3_error)
   36259             :         else {
   36260           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int32", 1, 7, 7, 3); __PYX_ERR(0, 759, __pyx_L3_error)
   36261             :         }
   36262           0 :         CYTHON_FALLTHROUGH;
   36263             :         case  4:
   36264           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   36265           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   36266           0 :           kw_args--;
   36267             :         }
   36268           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 759, __pyx_L3_error)
   36269             :         else {
   36270           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int32", 1, 7, 7, 4); __PYX_ERR(0, 759, __pyx_L3_error)
   36271             :         }
   36272           0 :         CYTHON_FALLTHROUGH;
   36273             :         case  5:
   36274           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   36275           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   36276           0 :           kw_args--;
   36277             :         }
   36278           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 759, __pyx_L3_error)
   36279             :         else {
   36280           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int32", 1, 7, 7, 5); __PYX_ERR(0, 759, __pyx_L3_error)
   36281             :         }
   36282           0 :         CYTHON_FALLTHROUGH;
   36283             :         case  6:
   36284           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   36285           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   36286           0 :           kw_args--;
   36287             :         }
   36288           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 759, __pyx_L3_error)
   36289             :         else {
   36290           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int32", 1, 7, 7, 6); __PYX_ERR(0, 759, __pyx_L3_error)
   36291             :         }
   36292             :       }
   36293           0 :       if (unlikely(kw_args > 0)) {
   36294           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   36295           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int64_int32") < 0)) __PYX_ERR(0, 759, __pyx_L3_error)
   36296             :       }
   36297          14 :     } else if (unlikely(__pyx_nargs != 7)) {
   36298           0 :       goto __pyx_L5_argtuple_error;
   36299             :     } else {
   36300          14 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   36301          14 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   36302          14 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   36303          14 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   36304          14 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   36305          14 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   36306          14 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   36307             :     }
   36308          14 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 761, __pyx_L3_error)
   36309          14 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 761, __pyx_L3_error)
   36310          14 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 762, __pyx_L3_error)
   36311          14 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 763, __pyx_L3_error)
   36312          14 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 764, __pyx_L3_error)
   36313          14 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 765, __pyx_L3_error)
   36314          14 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 766, __pyx_L3_error)
   36315             :   }
   36316          14 :   goto __pyx_L6_skip;
   36317           0 :   __pyx_L5_argtuple_error:;
   36318           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int32", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 759, __pyx_L3_error)
   36319          14 :   __pyx_L6_skip:;
   36320          14 :   goto __pyx_L4_argument_unpacking_done;
   36321           0 :   __pyx_L3_error:;
   36322             :   {
   36323           0 :     Py_ssize_t __pyx_temp;
   36324           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   36325             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   36326             :     }
   36327             :   }
   36328           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   36329           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   36330           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   36331           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   36332           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   36333           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_int32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   36334           0 :   __Pyx_RefNannyFinishContext();
   36335           0 :   return NULL;
   36336          14 :   __pyx_L4_argument_unpacking_done:;
   36337          14 :   __pyx_r = __pyx_pf_13_csparsetools_90_lil_fancy_set_int64_int32(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   36338             : 
   36339             :   /* function exit code */
   36340          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   36341          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   36342          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   36343          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   36344          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   36345             :   {
   36346          14 :     Py_ssize_t __pyx_temp;
   36347          14 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   36348             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   36349             :     }
   36350             :   }
   36351             :   __Pyx_RefNannyFinishContext();
   36352             :   return __pyx_r;
   36353             : }
   36354             : 
   36355          14 : static PyObject *__pyx_pf_13_csparsetools_90_lil_fancy_set_int64_int32(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   36356          14 :   npy_intp __pyx_v_x;
   36357          14 :   npy_intp __pyx_v_y;
   36358          14 :   npy_intp __pyx_v_i;
   36359          14 :   npy_intp __pyx_v_j;
   36360          14 :   PyObject *__pyx_r = NULL;
   36361             :   __Pyx_RefNannyDeclarations
   36362          14 :   Py_ssize_t __pyx_t_1;
   36363          14 :   Py_ssize_t __pyx_t_2;
   36364          14 :   npy_intp __pyx_t_3;
   36365          14 :   Py_ssize_t __pyx_t_4;
   36366          14 :   Py_ssize_t __pyx_t_5;
   36367          14 :   npy_intp __pyx_t_6;
   36368          14 :   Py_ssize_t __pyx_t_7;
   36369          14 :   Py_ssize_t __pyx_t_8;
   36370          14 :   PyObject *__pyx_t_9 = NULL;
   36371          14 :   int __pyx_t_10;
   36372          14 :   int __pyx_lineno = 0;
   36373          14 :   const char *__pyx_filename = NULL;
   36374          14 :   int __pyx_clineno = 0;
   36375          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_int32", 1);
   36376             : 
   36377             :   /* "_csparsetools.pyx":770
   36378             :  *     cdef cnp.npy_intp i, j
   36379             :  * 
   36380             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   36381             :  *         for y in range(i_idx.shape[1]):
   36382             :  *             i = i_idx[x,y]
   36383             :  */
   36384          14 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   36385          14 :   __pyx_t_2 = __pyx_t_1;
   36386          35 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   36387          21 :     __pyx_v_x = __pyx_t_3;
   36388             : 
   36389             :     /* "_csparsetools.pyx":771
   36390             :  * 
   36391             :  *     for x in range(i_idx.shape[0]):
   36392             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   36393             :  *             i = i_idx[x,y]
   36394             :  *             j = j_idx[x,y]
   36395             :  */
   36396          21 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   36397          21 :     __pyx_t_5 = __pyx_t_4;
   36398          63 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   36399          42 :       __pyx_v_y = __pyx_t_6;
   36400             : 
   36401             :       /* "_csparsetools.pyx":772
   36402             :  *     for x in range(i_idx.shape[0]):
   36403             :  *         for y in range(i_idx.shape[1]):
   36404             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   36405             :  *             j = j_idx[x,y]
   36406             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   36407             :  */
   36408          42 :       __pyx_t_7 = __pyx_v_x;
   36409          42 :       __pyx_t_8 = __pyx_v_y;
   36410          42 :       __pyx_v_i = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   36411             : 
   36412             :       /* "_csparsetools.pyx":773
   36413             :  *         for y in range(i_idx.shape[1]):
   36414             :  *             i = i_idx[x,y]
   36415             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   36416             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   36417             :  * @cython.boundscheck(False)
   36418             :  */
   36419          42 :       __pyx_t_8 = __pyx_v_x;
   36420          42 :       __pyx_t_7 = __pyx_v_y;
   36421          42 :       __pyx_v_j = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   36422             : 
   36423             :       /* "_csparsetools.pyx":774
   36424             :  *             i = i_idx[x,y]
   36425             :  *             j = j_idx[x,y]
   36426             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   36427             :  * @cython.boundscheck(False)
   36428             :  * @cython.wraparound(False)
   36429             :  */
   36430          42 :       __pyx_t_7 = __pyx_v_x;
   36431          42 :       __pyx_t_8 = __pyx_v_y;
   36432          42 :       __pyx_t_9 = __Pyx_PyInt_From_npy_int32((*((npy_int32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 774, __pyx_L1_error)
   36433          42 :       __Pyx_GOTREF(__pyx_t_9);
   36434          42 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 774, __pyx_L1_error)
   36435          42 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   36436             :     }
   36437             :   }
   36438             : 
   36439             :   /* "_csparsetools.pyx":759
   36440             :  *             j = j_idx[x,y]
   36441             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   36442             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   36443             :  * @cython.wraparound(False)
   36444             :  * def _lil_fancy_set_int64_int32(cnp.npy_intp M, cnp.npy_intp N,
   36445             :  */
   36446             : 
   36447             :   /* function exit code */
   36448          14 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   36449          14 :   goto __pyx_L0;
   36450           0 :   __pyx_L1_error:;
   36451           0 :   __Pyx_XDECREF(__pyx_t_9);
   36452           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_int32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   36453           0 :   __pyx_r = NULL;
   36454          14 :   __pyx_L0:;
   36455          14 :   __Pyx_XGIVEREF(__pyx_r);
   36456          14 :   __Pyx_RefNannyFinishContext();
   36457          14 :   return __pyx_r;
   36458             : }
   36459             : 
   36460             : /* "_csparsetools.pyx":775
   36461             :  *             j = j_idx[x,y]
   36462             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   36463             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   36464             :  * @cython.wraparound(False)
   36465             :  * def _lil_fancy_set_int64_uint32(cnp.npy_intp M, cnp.npy_intp N,
   36466             :  */
   36467             : 
   36468             : /* Python wrapper */
   36469             : static PyObject *__pyx_pw_13_csparsetools_93_lil_fancy_set_int64_uint32(PyObject *__pyx_self, 
   36470             : #if CYTHON_METH_FASTCALL
   36471             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   36472             : #else
   36473             : PyObject *__pyx_args, PyObject *__pyx_kwds
   36474             : #endif
   36475             : ); /*proto*/
   36476             : static PyMethodDef __pyx_mdef_13_csparsetools_93_lil_fancy_set_int64_uint32 = {"_lil_fancy_set_int64_uint32", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_93_lil_fancy_set_int64_uint32, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   36477          14 : static PyObject *__pyx_pw_13_csparsetools_93_lil_fancy_set_int64_uint32(PyObject *__pyx_self, 
   36478             : #if CYTHON_METH_FASTCALL
   36479             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   36480             : #else
   36481             : PyObject *__pyx_args, PyObject *__pyx_kwds
   36482             : #endif
   36483             : ) {
   36484          14 :   npy_intp __pyx_v_M;
   36485          14 :   npy_intp __pyx_v_N;
   36486          14 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   36487          14 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   36488          14 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   36489          14 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   36490          14 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   36491             :   #if !CYTHON_METH_FASTCALL
   36492             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   36493             :   #endif
   36494          14 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   36495          14 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   36496          14 :   int __pyx_lineno = 0;
   36497          14 :   const char *__pyx_filename = NULL;
   36498          14 :   int __pyx_clineno = 0;
   36499          14 :   PyObject *__pyx_r = 0;
   36500             :   __Pyx_RefNannyDeclarations
   36501          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_uint32 (wrapper)", 0);
   36502             :   #if !CYTHON_METH_FASTCALL
   36503             :   #if CYTHON_ASSUME_SAFE_MACROS
   36504             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   36505             :   #else
   36506             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   36507             :   #endif
   36508             :   #endif
   36509          14 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   36510             :   {
   36511          14 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   36512          14 :     if (__pyx_kwds) {
   36513           0 :       Py_ssize_t kw_args;
   36514           0 :       switch (__pyx_nargs) {
   36515           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   36516           0 :         CYTHON_FALLTHROUGH;
   36517           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   36518           0 :         CYTHON_FALLTHROUGH;
   36519           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   36520           0 :         CYTHON_FALLTHROUGH;
   36521           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   36522           0 :         CYTHON_FALLTHROUGH;
   36523           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   36524           0 :         CYTHON_FALLTHROUGH;
   36525           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   36526           0 :         CYTHON_FALLTHROUGH;
   36527           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   36528           0 :         CYTHON_FALLTHROUGH;
   36529           0 :         case  0: break;
   36530           0 :         default: goto __pyx_L5_argtuple_error;
   36531             :       }
   36532           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   36533           0 :       switch (__pyx_nargs) {
   36534           0 :         case  0:
   36535           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   36536           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   36537           0 :           kw_args--;
   36538             :         }
   36539           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 775, __pyx_L3_error)
   36540           0 :         else goto __pyx_L5_argtuple_error;
   36541           0 :         CYTHON_FALLTHROUGH;
   36542             :         case  1:
   36543           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   36544           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   36545           0 :           kw_args--;
   36546             :         }
   36547           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 775, __pyx_L3_error)
   36548             :         else {
   36549           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint32", 1, 7, 7, 1); __PYX_ERR(0, 775, __pyx_L3_error)
   36550             :         }
   36551           0 :         CYTHON_FALLTHROUGH;
   36552             :         case  2:
   36553           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   36554           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   36555           0 :           kw_args--;
   36556             :         }
   36557           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 775, __pyx_L3_error)
   36558             :         else {
   36559           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint32", 1, 7, 7, 2); __PYX_ERR(0, 775, __pyx_L3_error)
   36560             :         }
   36561           0 :         CYTHON_FALLTHROUGH;
   36562             :         case  3:
   36563           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   36564           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   36565           0 :           kw_args--;
   36566             :         }
   36567           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 775, __pyx_L3_error)
   36568             :         else {
   36569           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint32", 1, 7, 7, 3); __PYX_ERR(0, 775, __pyx_L3_error)
   36570             :         }
   36571           0 :         CYTHON_FALLTHROUGH;
   36572             :         case  4:
   36573           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   36574           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   36575           0 :           kw_args--;
   36576             :         }
   36577           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 775, __pyx_L3_error)
   36578             :         else {
   36579           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint32", 1, 7, 7, 4); __PYX_ERR(0, 775, __pyx_L3_error)
   36580             :         }
   36581           0 :         CYTHON_FALLTHROUGH;
   36582             :         case  5:
   36583           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   36584           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   36585           0 :           kw_args--;
   36586             :         }
   36587           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 775, __pyx_L3_error)
   36588             :         else {
   36589           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint32", 1, 7, 7, 5); __PYX_ERR(0, 775, __pyx_L3_error)
   36590             :         }
   36591           0 :         CYTHON_FALLTHROUGH;
   36592             :         case  6:
   36593           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   36594           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   36595           0 :           kw_args--;
   36596             :         }
   36597           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 775, __pyx_L3_error)
   36598             :         else {
   36599           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint32", 1, 7, 7, 6); __PYX_ERR(0, 775, __pyx_L3_error)
   36600             :         }
   36601             :       }
   36602           0 :       if (unlikely(kw_args > 0)) {
   36603           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   36604           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int64_uint32") < 0)) __PYX_ERR(0, 775, __pyx_L3_error)
   36605             :       }
   36606          14 :     } else if (unlikely(__pyx_nargs != 7)) {
   36607           0 :       goto __pyx_L5_argtuple_error;
   36608             :     } else {
   36609          14 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   36610          14 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   36611          14 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   36612          14 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   36613          14 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   36614          14 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   36615          14 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   36616             :     }
   36617          14 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 777, __pyx_L3_error)
   36618          14 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 777, __pyx_L3_error)
   36619          14 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 778, __pyx_L3_error)
   36620          14 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 779, __pyx_L3_error)
   36621          14 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 780, __pyx_L3_error)
   36622          14 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 781, __pyx_L3_error)
   36623          14 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_uint32(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 782, __pyx_L3_error)
   36624             :   }
   36625          14 :   goto __pyx_L6_skip;
   36626           0 :   __pyx_L5_argtuple_error:;
   36627           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint32", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 775, __pyx_L3_error)
   36628          14 :   __pyx_L6_skip:;
   36629          14 :   goto __pyx_L4_argument_unpacking_done;
   36630           0 :   __pyx_L3_error:;
   36631             :   {
   36632           0 :     Py_ssize_t __pyx_temp;
   36633           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   36634             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   36635             :     }
   36636             :   }
   36637           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   36638           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   36639           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   36640           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   36641           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   36642           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_uint32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   36643           0 :   __Pyx_RefNannyFinishContext();
   36644           0 :   return NULL;
   36645          14 :   __pyx_L4_argument_unpacking_done:;
   36646          14 :   __pyx_r = __pyx_pf_13_csparsetools_92_lil_fancy_set_int64_uint32(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   36647             : 
   36648             :   /* function exit code */
   36649          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   36650          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   36651          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   36652          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   36653          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   36654             :   {
   36655          14 :     Py_ssize_t __pyx_temp;
   36656          14 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   36657             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   36658             :     }
   36659             :   }
   36660             :   __Pyx_RefNannyFinishContext();
   36661             :   return __pyx_r;
   36662             : }
   36663             : 
   36664          14 : static PyObject *__pyx_pf_13_csparsetools_92_lil_fancy_set_int64_uint32(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   36665          14 :   npy_intp __pyx_v_x;
   36666          14 :   npy_intp __pyx_v_y;
   36667          14 :   npy_intp __pyx_v_i;
   36668          14 :   npy_intp __pyx_v_j;
   36669          14 :   PyObject *__pyx_r = NULL;
   36670             :   __Pyx_RefNannyDeclarations
   36671          14 :   Py_ssize_t __pyx_t_1;
   36672          14 :   Py_ssize_t __pyx_t_2;
   36673          14 :   npy_intp __pyx_t_3;
   36674          14 :   Py_ssize_t __pyx_t_4;
   36675          14 :   Py_ssize_t __pyx_t_5;
   36676          14 :   npy_intp __pyx_t_6;
   36677          14 :   Py_ssize_t __pyx_t_7;
   36678          14 :   Py_ssize_t __pyx_t_8;
   36679          14 :   PyObject *__pyx_t_9 = NULL;
   36680          14 :   int __pyx_t_10;
   36681          14 :   int __pyx_lineno = 0;
   36682          14 :   const char *__pyx_filename = NULL;
   36683          14 :   int __pyx_clineno = 0;
   36684          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_uint32", 1);
   36685             : 
   36686             :   /* "_csparsetools.pyx":786
   36687             :  *     cdef cnp.npy_intp i, j
   36688             :  * 
   36689             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   36690             :  *         for y in range(i_idx.shape[1]):
   36691             :  *             i = i_idx[x,y]
   36692             :  */
   36693          14 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   36694          14 :   __pyx_t_2 = __pyx_t_1;
   36695          35 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   36696          21 :     __pyx_v_x = __pyx_t_3;
   36697             : 
   36698             :     /* "_csparsetools.pyx":787
   36699             :  * 
   36700             :  *     for x in range(i_idx.shape[0]):
   36701             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   36702             :  *             i = i_idx[x,y]
   36703             :  *             j = j_idx[x,y]
   36704             :  */
   36705          21 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   36706          21 :     __pyx_t_5 = __pyx_t_4;
   36707          63 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   36708          42 :       __pyx_v_y = __pyx_t_6;
   36709             : 
   36710             :       /* "_csparsetools.pyx":788
   36711             :  *     for x in range(i_idx.shape[0]):
   36712             :  *         for y in range(i_idx.shape[1]):
   36713             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   36714             :  *             j = j_idx[x,y]
   36715             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   36716             :  */
   36717          42 :       __pyx_t_7 = __pyx_v_x;
   36718          42 :       __pyx_t_8 = __pyx_v_y;
   36719          42 :       __pyx_v_i = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   36720             : 
   36721             :       /* "_csparsetools.pyx":789
   36722             :  *         for y in range(i_idx.shape[1]):
   36723             :  *             i = i_idx[x,y]
   36724             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   36725             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   36726             :  * @cython.boundscheck(False)
   36727             :  */
   36728          42 :       __pyx_t_8 = __pyx_v_x;
   36729          42 :       __pyx_t_7 = __pyx_v_y;
   36730          42 :       __pyx_v_j = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   36731             : 
   36732             :       /* "_csparsetools.pyx":790
   36733             :  *             i = i_idx[x,y]
   36734             :  *             j = j_idx[x,y]
   36735             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   36736             :  * @cython.boundscheck(False)
   36737             :  * @cython.wraparound(False)
   36738             :  */
   36739          42 :       __pyx_t_7 = __pyx_v_x;
   36740          42 :       __pyx_t_8 = __pyx_v_y;
   36741          42 :       __pyx_t_9 = __Pyx_PyInt_From_npy_uint32((*((npy_uint32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
   36742          42 :       __Pyx_GOTREF(__pyx_t_9);
   36743          42 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 790, __pyx_L1_error)
   36744          42 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   36745             :     }
   36746             :   }
   36747             : 
   36748             :   /* "_csparsetools.pyx":775
   36749             :  *             j = j_idx[x,y]
   36750             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   36751             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   36752             :  * @cython.wraparound(False)
   36753             :  * def _lil_fancy_set_int64_uint32(cnp.npy_intp M, cnp.npy_intp N,
   36754             :  */
   36755             : 
   36756             :   /* function exit code */
   36757          14 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   36758          14 :   goto __pyx_L0;
   36759           0 :   __pyx_L1_error:;
   36760           0 :   __Pyx_XDECREF(__pyx_t_9);
   36761           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_uint32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   36762           0 :   __pyx_r = NULL;
   36763          14 :   __pyx_L0:;
   36764          14 :   __Pyx_XGIVEREF(__pyx_r);
   36765          14 :   __Pyx_RefNannyFinishContext();
   36766          14 :   return __pyx_r;
   36767             : }
   36768             : 
   36769             : /* "_csparsetools.pyx":791
   36770             :  *             j = j_idx[x,y]
   36771             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   36772             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   36773             :  * @cython.wraparound(False)
   36774             :  * def _lil_fancy_set_int64_int64(cnp.npy_intp M, cnp.npy_intp N,
   36775             :  */
   36776             : 
   36777             : /* Python wrapper */
   36778             : static PyObject *__pyx_pw_13_csparsetools_95_lil_fancy_set_int64_int64(PyObject *__pyx_self, 
   36779             : #if CYTHON_METH_FASTCALL
   36780             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   36781             : #else
   36782             : PyObject *__pyx_args, PyObject *__pyx_kwds
   36783             : #endif
   36784             : ); /*proto*/
   36785             : static PyMethodDef __pyx_mdef_13_csparsetools_95_lil_fancy_set_int64_int64 = {"_lil_fancy_set_int64_int64", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_95_lil_fancy_set_int64_int64, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   36786          95 : static PyObject *__pyx_pw_13_csparsetools_95_lil_fancy_set_int64_int64(PyObject *__pyx_self, 
   36787             : #if CYTHON_METH_FASTCALL
   36788             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   36789             : #else
   36790             : PyObject *__pyx_args, PyObject *__pyx_kwds
   36791             : #endif
   36792             : ) {
   36793          95 :   npy_intp __pyx_v_M;
   36794          95 :   npy_intp __pyx_v_N;
   36795          95 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   36796          95 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   36797          95 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   36798          95 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   36799          95 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   36800             :   #if !CYTHON_METH_FASTCALL
   36801             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   36802             :   #endif
   36803          95 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   36804          95 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   36805          95 :   int __pyx_lineno = 0;
   36806          95 :   const char *__pyx_filename = NULL;
   36807          95 :   int __pyx_clineno = 0;
   36808          95 :   PyObject *__pyx_r = 0;
   36809             :   __Pyx_RefNannyDeclarations
   36810          95 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_int64 (wrapper)", 0);
   36811             :   #if !CYTHON_METH_FASTCALL
   36812             :   #if CYTHON_ASSUME_SAFE_MACROS
   36813             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   36814             :   #else
   36815             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   36816             :   #endif
   36817             :   #endif
   36818          95 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   36819             :   {
   36820          95 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   36821          95 :     if (__pyx_kwds) {
   36822           0 :       Py_ssize_t kw_args;
   36823           0 :       switch (__pyx_nargs) {
   36824           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   36825           0 :         CYTHON_FALLTHROUGH;
   36826           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   36827           0 :         CYTHON_FALLTHROUGH;
   36828           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   36829           0 :         CYTHON_FALLTHROUGH;
   36830           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   36831           0 :         CYTHON_FALLTHROUGH;
   36832           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   36833           0 :         CYTHON_FALLTHROUGH;
   36834           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   36835           0 :         CYTHON_FALLTHROUGH;
   36836           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   36837           0 :         CYTHON_FALLTHROUGH;
   36838           0 :         case  0: break;
   36839           0 :         default: goto __pyx_L5_argtuple_error;
   36840             :       }
   36841           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   36842           0 :       switch (__pyx_nargs) {
   36843           0 :         case  0:
   36844           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   36845           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   36846           0 :           kw_args--;
   36847             :         }
   36848           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 791, __pyx_L3_error)
   36849           0 :         else goto __pyx_L5_argtuple_error;
   36850           0 :         CYTHON_FALLTHROUGH;
   36851             :         case  1:
   36852           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   36853           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   36854           0 :           kw_args--;
   36855             :         }
   36856           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 791, __pyx_L3_error)
   36857             :         else {
   36858           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int64", 1, 7, 7, 1); __PYX_ERR(0, 791, __pyx_L3_error)
   36859             :         }
   36860           0 :         CYTHON_FALLTHROUGH;
   36861             :         case  2:
   36862           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   36863           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   36864           0 :           kw_args--;
   36865             :         }
   36866           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 791, __pyx_L3_error)
   36867             :         else {
   36868           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int64", 1, 7, 7, 2); __PYX_ERR(0, 791, __pyx_L3_error)
   36869             :         }
   36870           0 :         CYTHON_FALLTHROUGH;
   36871             :         case  3:
   36872           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   36873           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   36874           0 :           kw_args--;
   36875             :         }
   36876           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 791, __pyx_L3_error)
   36877             :         else {
   36878           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int64", 1, 7, 7, 3); __PYX_ERR(0, 791, __pyx_L3_error)
   36879             :         }
   36880           0 :         CYTHON_FALLTHROUGH;
   36881             :         case  4:
   36882           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   36883           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   36884           0 :           kw_args--;
   36885             :         }
   36886           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 791, __pyx_L3_error)
   36887             :         else {
   36888           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int64", 1, 7, 7, 4); __PYX_ERR(0, 791, __pyx_L3_error)
   36889             :         }
   36890           0 :         CYTHON_FALLTHROUGH;
   36891             :         case  5:
   36892           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   36893           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   36894           0 :           kw_args--;
   36895             :         }
   36896           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 791, __pyx_L3_error)
   36897             :         else {
   36898           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int64", 1, 7, 7, 5); __PYX_ERR(0, 791, __pyx_L3_error)
   36899             :         }
   36900           0 :         CYTHON_FALLTHROUGH;
   36901             :         case  6:
   36902           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   36903           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   36904           0 :           kw_args--;
   36905             :         }
   36906           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 791, __pyx_L3_error)
   36907             :         else {
   36908           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int64", 1, 7, 7, 6); __PYX_ERR(0, 791, __pyx_L3_error)
   36909             :         }
   36910             :       }
   36911           0 :       if (unlikely(kw_args > 0)) {
   36912           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   36913           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int64_int64") < 0)) __PYX_ERR(0, 791, __pyx_L3_error)
   36914             :       }
   36915          95 :     } else if (unlikely(__pyx_nargs != 7)) {
   36916           0 :       goto __pyx_L5_argtuple_error;
   36917             :     } else {
   36918          95 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   36919          95 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   36920          95 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   36921          95 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   36922          95 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   36923          95 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   36924          95 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   36925             :     }
   36926          95 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 793, __pyx_L3_error)
   36927          95 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 793, __pyx_L3_error)
   36928          95 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 794, __pyx_L3_error)
   36929          95 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 795, __pyx_L3_error)
   36930          95 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 796, __pyx_L3_error)
   36931          95 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 797, __pyx_L3_error)
   36932          95 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 798, __pyx_L3_error)
   36933             :   }
   36934          95 :   goto __pyx_L6_skip;
   36935           0 :   __pyx_L5_argtuple_error:;
   36936           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_int64", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 791, __pyx_L3_error)
   36937          95 :   __pyx_L6_skip:;
   36938          95 :   goto __pyx_L4_argument_unpacking_done;
   36939           0 :   __pyx_L3_error:;
   36940             :   {
   36941           0 :     Py_ssize_t __pyx_temp;
   36942           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   36943             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   36944             :     }
   36945             :   }
   36946           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   36947           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   36948           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   36949           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   36950           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   36951           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_int64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   36952           0 :   __Pyx_RefNannyFinishContext();
   36953           0 :   return NULL;
   36954          95 :   __pyx_L4_argument_unpacking_done:;
   36955          95 :   __pyx_r = __pyx_pf_13_csparsetools_94_lil_fancy_set_int64_int64(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   36956             : 
   36957             :   /* function exit code */
   36958          95 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   36959          95 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   36960          95 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   36961          95 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   36962          95 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   36963             :   {
   36964          95 :     Py_ssize_t __pyx_temp;
   36965          95 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   36966             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   36967             :     }
   36968             :   }
   36969             :   __Pyx_RefNannyFinishContext();
   36970             :   return __pyx_r;
   36971             : }
   36972             : 
   36973          95 : static PyObject *__pyx_pf_13_csparsetools_94_lil_fancy_set_int64_int64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   36974          95 :   npy_intp __pyx_v_x;
   36975          95 :   npy_intp __pyx_v_y;
   36976          95 :   npy_intp __pyx_v_i;
   36977          95 :   npy_intp __pyx_v_j;
   36978          95 :   PyObject *__pyx_r = NULL;
   36979             :   __Pyx_RefNannyDeclarations
   36980          95 :   Py_ssize_t __pyx_t_1;
   36981          95 :   Py_ssize_t __pyx_t_2;
   36982          95 :   npy_intp __pyx_t_3;
   36983          95 :   Py_ssize_t __pyx_t_4;
   36984          95 :   Py_ssize_t __pyx_t_5;
   36985          95 :   npy_intp __pyx_t_6;
   36986          95 :   Py_ssize_t __pyx_t_7;
   36987          95 :   Py_ssize_t __pyx_t_8;
   36988          95 :   PyObject *__pyx_t_9 = NULL;
   36989          95 :   int __pyx_t_10;
   36990          95 :   int __pyx_lineno = 0;
   36991          95 :   const char *__pyx_filename = NULL;
   36992          95 :   int __pyx_clineno = 0;
   36993          95 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_int64", 1);
   36994             : 
   36995             :   /* "_csparsetools.pyx":802
   36996             :  *     cdef cnp.npy_intp i, j
   36997             :  * 
   36998             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   36999             :  *         for y in range(i_idx.shape[1]):
   37000             :  *             i = i_idx[x,y]
   37001             :  */
   37002          95 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   37003          95 :   __pyx_t_2 = __pyx_t_1;
   37004         204 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   37005         109 :     __pyx_v_x = __pyx_t_3;
   37006             : 
   37007             :     /* "_csparsetools.pyx":803
   37008             :  * 
   37009             :  *     for x in range(i_idx.shape[0]):
   37010             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   37011             :  *             i = i_idx[x,y]
   37012             :  *             j = j_idx[x,y]
   37013             :  */
   37014         109 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   37015         109 :     __pyx_t_5 = __pyx_t_4;
   37016        6167 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   37017        6058 :       __pyx_v_y = __pyx_t_6;
   37018             : 
   37019             :       /* "_csparsetools.pyx":804
   37020             :  *     for x in range(i_idx.shape[0]):
   37021             :  *         for y in range(i_idx.shape[1]):
   37022             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   37023             :  *             j = j_idx[x,y]
   37024             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   37025             :  */
   37026        6058 :       __pyx_t_7 = __pyx_v_x;
   37027        6058 :       __pyx_t_8 = __pyx_v_y;
   37028        6058 :       __pyx_v_i = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   37029             : 
   37030             :       /* "_csparsetools.pyx":805
   37031             :  *         for y in range(i_idx.shape[1]):
   37032             :  *             i = i_idx[x,y]
   37033             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   37034             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   37035             :  * @cython.boundscheck(False)
   37036             :  */
   37037        6058 :       __pyx_t_8 = __pyx_v_x;
   37038        6058 :       __pyx_t_7 = __pyx_v_y;
   37039        6058 :       __pyx_v_j = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   37040             : 
   37041             :       /* "_csparsetools.pyx":806
   37042             :  *             i = i_idx[x,y]
   37043             :  *             j = j_idx[x,y]
   37044             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   37045             :  * @cython.boundscheck(False)
   37046             :  * @cython.wraparound(False)
   37047             :  */
   37048        6058 :       __pyx_t_7 = __pyx_v_x;
   37049        6058 :       __pyx_t_8 = __pyx_v_y;
   37050        6058 :       __pyx_t_9 = __Pyx_PyInt_From_npy_int64((*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 806, __pyx_L1_error)
   37051        6058 :       __Pyx_GOTREF(__pyx_t_9);
   37052        6058 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 806, __pyx_L1_error)
   37053        6058 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   37054             :     }
   37055             :   }
   37056             : 
   37057             :   /* "_csparsetools.pyx":791
   37058             :  *             j = j_idx[x,y]
   37059             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   37060             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   37061             :  * @cython.wraparound(False)
   37062             :  * def _lil_fancy_set_int64_int64(cnp.npy_intp M, cnp.npy_intp N,
   37063             :  */
   37064             : 
   37065             :   /* function exit code */
   37066          95 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   37067          95 :   goto __pyx_L0;
   37068           0 :   __pyx_L1_error:;
   37069           0 :   __Pyx_XDECREF(__pyx_t_9);
   37070           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_int64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   37071           0 :   __pyx_r = NULL;
   37072          95 :   __pyx_L0:;
   37073          95 :   __Pyx_XGIVEREF(__pyx_r);
   37074          95 :   __Pyx_RefNannyFinishContext();
   37075          95 :   return __pyx_r;
   37076             : }
   37077             : 
   37078             : /* "_csparsetools.pyx":807
   37079             :  *             j = j_idx[x,y]
   37080             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   37081             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   37082             :  * @cython.wraparound(False)
   37083             :  * def _lil_fancy_set_int64_uint64(cnp.npy_intp M, cnp.npy_intp N,
   37084             :  */
   37085             : 
   37086             : /* Python wrapper */
   37087             : static PyObject *__pyx_pw_13_csparsetools_97_lil_fancy_set_int64_uint64(PyObject *__pyx_self, 
   37088             : #if CYTHON_METH_FASTCALL
   37089             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   37090             : #else
   37091             : PyObject *__pyx_args, PyObject *__pyx_kwds
   37092             : #endif
   37093             : ); /*proto*/
   37094             : static PyMethodDef __pyx_mdef_13_csparsetools_97_lil_fancy_set_int64_uint64 = {"_lil_fancy_set_int64_uint64", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_97_lil_fancy_set_int64_uint64, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   37095          28 : static PyObject *__pyx_pw_13_csparsetools_97_lil_fancy_set_int64_uint64(PyObject *__pyx_self, 
   37096             : #if CYTHON_METH_FASTCALL
   37097             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   37098             : #else
   37099             : PyObject *__pyx_args, PyObject *__pyx_kwds
   37100             : #endif
   37101             : ) {
   37102          28 :   npy_intp __pyx_v_M;
   37103          28 :   npy_intp __pyx_v_N;
   37104          28 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   37105          28 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   37106          28 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   37107          28 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   37108          28 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   37109             :   #if !CYTHON_METH_FASTCALL
   37110             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   37111             :   #endif
   37112          28 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   37113          28 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   37114          28 :   int __pyx_lineno = 0;
   37115          28 :   const char *__pyx_filename = NULL;
   37116          28 :   int __pyx_clineno = 0;
   37117          28 :   PyObject *__pyx_r = 0;
   37118             :   __Pyx_RefNannyDeclarations
   37119          28 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_uint64 (wrapper)", 0);
   37120             :   #if !CYTHON_METH_FASTCALL
   37121             :   #if CYTHON_ASSUME_SAFE_MACROS
   37122             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   37123             :   #else
   37124             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   37125             :   #endif
   37126             :   #endif
   37127          28 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   37128             :   {
   37129          28 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   37130          28 :     if (__pyx_kwds) {
   37131           0 :       Py_ssize_t kw_args;
   37132           0 :       switch (__pyx_nargs) {
   37133           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   37134           0 :         CYTHON_FALLTHROUGH;
   37135           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   37136           0 :         CYTHON_FALLTHROUGH;
   37137           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   37138           0 :         CYTHON_FALLTHROUGH;
   37139           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   37140           0 :         CYTHON_FALLTHROUGH;
   37141           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   37142           0 :         CYTHON_FALLTHROUGH;
   37143           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   37144           0 :         CYTHON_FALLTHROUGH;
   37145           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   37146           0 :         CYTHON_FALLTHROUGH;
   37147           0 :         case  0: break;
   37148           0 :         default: goto __pyx_L5_argtuple_error;
   37149             :       }
   37150           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   37151           0 :       switch (__pyx_nargs) {
   37152           0 :         case  0:
   37153           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   37154           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   37155           0 :           kw_args--;
   37156             :         }
   37157           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 807, __pyx_L3_error)
   37158           0 :         else goto __pyx_L5_argtuple_error;
   37159           0 :         CYTHON_FALLTHROUGH;
   37160             :         case  1:
   37161           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   37162           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   37163           0 :           kw_args--;
   37164             :         }
   37165           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 807, __pyx_L3_error)
   37166             :         else {
   37167           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint64", 1, 7, 7, 1); __PYX_ERR(0, 807, __pyx_L3_error)
   37168             :         }
   37169           0 :         CYTHON_FALLTHROUGH;
   37170             :         case  2:
   37171           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   37172           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   37173           0 :           kw_args--;
   37174             :         }
   37175           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 807, __pyx_L3_error)
   37176             :         else {
   37177           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint64", 1, 7, 7, 2); __PYX_ERR(0, 807, __pyx_L3_error)
   37178             :         }
   37179           0 :         CYTHON_FALLTHROUGH;
   37180             :         case  3:
   37181           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   37182           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   37183           0 :           kw_args--;
   37184             :         }
   37185           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 807, __pyx_L3_error)
   37186             :         else {
   37187           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint64", 1, 7, 7, 3); __PYX_ERR(0, 807, __pyx_L3_error)
   37188             :         }
   37189           0 :         CYTHON_FALLTHROUGH;
   37190             :         case  4:
   37191           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   37192           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   37193           0 :           kw_args--;
   37194             :         }
   37195           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 807, __pyx_L3_error)
   37196             :         else {
   37197           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint64", 1, 7, 7, 4); __PYX_ERR(0, 807, __pyx_L3_error)
   37198             :         }
   37199           0 :         CYTHON_FALLTHROUGH;
   37200             :         case  5:
   37201           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   37202           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   37203           0 :           kw_args--;
   37204             :         }
   37205           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 807, __pyx_L3_error)
   37206             :         else {
   37207           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint64", 1, 7, 7, 5); __PYX_ERR(0, 807, __pyx_L3_error)
   37208             :         }
   37209           0 :         CYTHON_FALLTHROUGH;
   37210             :         case  6:
   37211           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   37212           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   37213           0 :           kw_args--;
   37214             :         }
   37215           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 807, __pyx_L3_error)
   37216             :         else {
   37217           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint64", 1, 7, 7, 6); __PYX_ERR(0, 807, __pyx_L3_error)
   37218             :         }
   37219             :       }
   37220           0 :       if (unlikely(kw_args > 0)) {
   37221           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   37222           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int64_uint64") < 0)) __PYX_ERR(0, 807, __pyx_L3_error)
   37223             :       }
   37224          28 :     } else if (unlikely(__pyx_nargs != 7)) {
   37225           0 :       goto __pyx_L5_argtuple_error;
   37226             :     } else {
   37227          28 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   37228          28 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   37229          28 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   37230          28 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   37231          28 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   37232          28 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   37233          28 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   37234             :     }
   37235          28 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 809, __pyx_L3_error)
   37236          28 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 809, __pyx_L3_error)
   37237          28 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 810, __pyx_L3_error)
   37238          28 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 811, __pyx_L3_error)
   37239          28 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 812, __pyx_L3_error)
   37240          28 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 813, __pyx_L3_error)
   37241          28 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_uint64(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 814, __pyx_L3_error)
   37242             :   }
   37243          28 :   goto __pyx_L6_skip;
   37244           0 :   __pyx_L5_argtuple_error:;
   37245           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_uint64", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 807, __pyx_L3_error)
   37246          28 :   __pyx_L6_skip:;
   37247          28 :   goto __pyx_L4_argument_unpacking_done;
   37248           0 :   __pyx_L3_error:;
   37249             :   {
   37250           0 :     Py_ssize_t __pyx_temp;
   37251           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   37252             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   37253             :     }
   37254             :   }
   37255           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   37256           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   37257           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   37258           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   37259           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   37260           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_uint64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   37261           0 :   __Pyx_RefNannyFinishContext();
   37262           0 :   return NULL;
   37263          28 :   __pyx_L4_argument_unpacking_done:;
   37264          28 :   __pyx_r = __pyx_pf_13_csparsetools_96_lil_fancy_set_int64_uint64(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   37265             : 
   37266             :   /* function exit code */
   37267          28 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   37268          28 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   37269          28 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   37270          28 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   37271          28 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   37272             :   {
   37273          28 :     Py_ssize_t __pyx_temp;
   37274          28 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   37275             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   37276             :     }
   37277             :   }
   37278             :   __Pyx_RefNannyFinishContext();
   37279             :   return __pyx_r;
   37280             : }
   37281             : 
   37282          28 : static PyObject *__pyx_pf_13_csparsetools_96_lil_fancy_set_int64_uint64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   37283          28 :   npy_intp __pyx_v_x;
   37284          28 :   npy_intp __pyx_v_y;
   37285          28 :   npy_intp __pyx_v_i;
   37286          28 :   npy_intp __pyx_v_j;
   37287          28 :   PyObject *__pyx_r = NULL;
   37288             :   __Pyx_RefNannyDeclarations
   37289          28 :   Py_ssize_t __pyx_t_1;
   37290          28 :   Py_ssize_t __pyx_t_2;
   37291          28 :   npy_intp __pyx_t_3;
   37292          28 :   Py_ssize_t __pyx_t_4;
   37293          28 :   Py_ssize_t __pyx_t_5;
   37294          28 :   npy_intp __pyx_t_6;
   37295          28 :   Py_ssize_t __pyx_t_7;
   37296          28 :   Py_ssize_t __pyx_t_8;
   37297          28 :   PyObject *__pyx_t_9 = NULL;
   37298          28 :   int __pyx_t_10;
   37299          28 :   int __pyx_lineno = 0;
   37300          28 :   const char *__pyx_filename = NULL;
   37301          28 :   int __pyx_clineno = 0;
   37302          28 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_uint64", 1);
   37303             : 
   37304             :   /* "_csparsetools.pyx":818
   37305             :  *     cdef cnp.npy_intp i, j
   37306             :  * 
   37307             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   37308             :  *         for y in range(i_idx.shape[1]):
   37309             :  *             i = i_idx[x,y]
   37310             :  */
   37311          28 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   37312          28 :   __pyx_t_2 = __pyx_t_1;
   37313          70 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   37314          42 :     __pyx_v_x = __pyx_t_3;
   37315             : 
   37316             :     /* "_csparsetools.pyx":819
   37317             :  * 
   37318             :  *     for x in range(i_idx.shape[0]):
   37319             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   37320             :  *             i = i_idx[x,y]
   37321             :  *             j = j_idx[x,y]
   37322             :  */
   37323          42 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   37324          42 :     __pyx_t_5 = __pyx_t_4;
   37325         126 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   37326          84 :       __pyx_v_y = __pyx_t_6;
   37327             : 
   37328             :       /* "_csparsetools.pyx":820
   37329             :  *     for x in range(i_idx.shape[0]):
   37330             :  *         for y in range(i_idx.shape[1]):
   37331             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   37332             :  *             j = j_idx[x,y]
   37333             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   37334             :  */
   37335          84 :       __pyx_t_7 = __pyx_v_x;
   37336          84 :       __pyx_t_8 = __pyx_v_y;
   37337          84 :       __pyx_v_i = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   37338             : 
   37339             :       /* "_csparsetools.pyx":821
   37340             :  *         for y in range(i_idx.shape[1]):
   37341             :  *             i = i_idx[x,y]
   37342             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   37343             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   37344             :  * @cython.boundscheck(False)
   37345             :  */
   37346          84 :       __pyx_t_8 = __pyx_v_x;
   37347          84 :       __pyx_t_7 = __pyx_v_y;
   37348          84 :       __pyx_v_j = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   37349             : 
   37350             :       /* "_csparsetools.pyx":822
   37351             :  *             i = i_idx[x,y]
   37352             :  *             j = j_idx[x,y]
   37353             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   37354             :  * @cython.boundscheck(False)
   37355             :  * @cython.wraparound(False)
   37356             :  */
   37357          84 :       __pyx_t_7 = __pyx_v_x;
   37358          84 :       __pyx_t_8 = __pyx_v_y;
   37359          84 :       __pyx_t_9 = __Pyx_PyInt_From_npy_uint64((*((npy_uint64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 822, __pyx_L1_error)
   37360          84 :       __Pyx_GOTREF(__pyx_t_9);
   37361          84 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 822, __pyx_L1_error)
   37362          84 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   37363             :     }
   37364             :   }
   37365             : 
   37366             :   /* "_csparsetools.pyx":807
   37367             :  *             j = j_idx[x,y]
   37368             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   37369             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   37370             :  * @cython.wraparound(False)
   37371             :  * def _lil_fancy_set_int64_uint64(cnp.npy_intp M, cnp.npy_intp N,
   37372             :  */
   37373             : 
   37374             :   /* function exit code */
   37375          28 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   37376          28 :   goto __pyx_L0;
   37377           0 :   __pyx_L1_error:;
   37378           0 :   __Pyx_XDECREF(__pyx_t_9);
   37379           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_uint64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   37380           0 :   __pyx_r = NULL;
   37381          28 :   __pyx_L0:;
   37382          28 :   __Pyx_XGIVEREF(__pyx_r);
   37383          28 :   __Pyx_RefNannyFinishContext();
   37384          28 :   return __pyx_r;
   37385             : }
   37386             : 
   37387             : /* "_csparsetools.pyx":823
   37388             :  *             j = j_idx[x,y]
   37389             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   37390             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   37391             :  * @cython.wraparound(False)
   37392             :  * def _lil_fancy_set_int64_float32(cnp.npy_intp M, cnp.npy_intp N,
   37393             :  */
   37394             : 
   37395             : /* Python wrapper */
   37396             : static PyObject *__pyx_pw_13_csparsetools_99_lil_fancy_set_int64_float32(PyObject *__pyx_self, 
   37397             : #if CYTHON_METH_FASTCALL
   37398             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   37399             : #else
   37400             : PyObject *__pyx_args, PyObject *__pyx_kwds
   37401             : #endif
   37402             : ); /*proto*/
   37403             : static PyMethodDef __pyx_mdef_13_csparsetools_99_lil_fancy_set_int64_float32 = {"_lil_fancy_set_int64_float32", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_99_lil_fancy_set_int64_float32, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   37404          14 : static PyObject *__pyx_pw_13_csparsetools_99_lil_fancy_set_int64_float32(PyObject *__pyx_self, 
   37405             : #if CYTHON_METH_FASTCALL
   37406             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   37407             : #else
   37408             : PyObject *__pyx_args, PyObject *__pyx_kwds
   37409             : #endif
   37410             : ) {
   37411          14 :   npy_intp __pyx_v_M;
   37412          14 :   npy_intp __pyx_v_N;
   37413          14 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   37414          14 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   37415          14 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   37416          14 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   37417          14 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   37418             :   #if !CYTHON_METH_FASTCALL
   37419             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   37420             :   #endif
   37421          14 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   37422          14 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   37423          14 :   int __pyx_lineno = 0;
   37424          14 :   const char *__pyx_filename = NULL;
   37425          14 :   int __pyx_clineno = 0;
   37426          14 :   PyObject *__pyx_r = 0;
   37427             :   __Pyx_RefNannyDeclarations
   37428          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_float32 (wrapper)", 0);
   37429             :   #if !CYTHON_METH_FASTCALL
   37430             :   #if CYTHON_ASSUME_SAFE_MACROS
   37431             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   37432             :   #else
   37433             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   37434             :   #endif
   37435             :   #endif
   37436          14 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   37437             :   {
   37438          14 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   37439          14 :     if (__pyx_kwds) {
   37440           0 :       Py_ssize_t kw_args;
   37441           0 :       switch (__pyx_nargs) {
   37442           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   37443           0 :         CYTHON_FALLTHROUGH;
   37444           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   37445           0 :         CYTHON_FALLTHROUGH;
   37446           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   37447           0 :         CYTHON_FALLTHROUGH;
   37448           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   37449           0 :         CYTHON_FALLTHROUGH;
   37450           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   37451           0 :         CYTHON_FALLTHROUGH;
   37452           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   37453           0 :         CYTHON_FALLTHROUGH;
   37454           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   37455           0 :         CYTHON_FALLTHROUGH;
   37456           0 :         case  0: break;
   37457           0 :         default: goto __pyx_L5_argtuple_error;
   37458             :       }
   37459           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   37460           0 :       switch (__pyx_nargs) {
   37461           0 :         case  0:
   37462           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   37463           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   37464           0 :           kw_args--;
   37465             :         }
   37466           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 823, __pyx_L3_error)
   37467           0 :         else goto __pyx_L5_argtuple_error;
   37468           0 :         CYTHON_FALLTHROUGH;
   37469             :         case  1:
   37470           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   37471           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   37472           0 :           kw_args--;
   37473             :         }
   37474           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 823, __pyx_L3_error)
   37475             :         else {
   37476           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_float32", 1, 7, 7, 1); __PYX_ERR(0, 823, __pyx_L3_error)
   37477             :         }
   37478           0 :         CYTHON_FALLTHROUGH;
   37479             :         case  2:
   37480           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   37481           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   37482           0 :           kw_args--;
   37483             :         }
   37484           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 823, __pyx_L3_error)
   37485             :         else {
   37486           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_float32", 1, 7, 7, 2); __PYX_ERR(0, 823, __pyx_L3_error)
   37487             :         }
   37488           0 :         CYTHON_FALLTHROUGH;
   37489             :         case  3:
   37490           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   37491           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   37492           0 :           kw_args--;
   37493             :         }
   37494           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 823, __pyx_L3_error)
   37495             :         else {
   37496           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_float32", 1, 7, 7, 3); __PYX_ERR(0, 823, __pyx_L3_error)
   37497             :         }
   37498           0 :         CYTHON_FALLTHROUGH;
   37499             :         case  4:
   37500           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   37501           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   37502           0 :           kw_args--;
   37503             :         }
   37504           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 823, __pyx_L3_error)
   37505             :         else {
   37506           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_float32", 1, 7, 7, 4); __PYX_ERR(0, 823, __pyx_L3_error)
   37507             :         }
   37508           0 :         CYTHON_FALLTHROUGH;
   37509             :         case  5:
   37510           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   37511           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   37512           0 :           kw_args--;
   37513             :         }
   37514           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 823, __pyx_L3_error)
   37515             :         else {
   37516           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_float32", 1, 7, 7, 5); __PYX_ERR(0, 823, __pyx_L3_error)
   37517             :         }
   37518           0 :         CYTHON_FALLTHROUGH;
   37519             :         case  6:
   37520           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   37521           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   37522           0 :           kw_args--;
   37523             :         }
   37524           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 823, __pyx_L3_error)
   37525             :         else {
   37526           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_float32", 1, 7, 7, 6); __PYX_ERR(0, 823, __pyx_L3_error)
   37527             :         }
   37528             :       }
   37529           0 :       if (unlikely(kw_args > 0)) {
   37530           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   37531           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int64_float32") < 0)) __PYX_ERR(0, 823, __pyx_L3_error)
   37532             :       }
   37533          14 :     } else if (unlikely(__pyx_nargs != 7)) {
   37534           0 :       goto __pyx_L5_argtuple_error;
   37535             :     } else {
   37536          14 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   37537          14 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   37538          14 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   37539          14 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   37540          14 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   37541          14 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   37542          14 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   37543             :     }
   37544          14 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 825, __pyx_L3_error)
   37545          14 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 825, __pyx_L3_error)
   37546          14 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 826, __pyx_L3_error)
   37547          14 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 827, __pyx_L3_error)
   37548          14 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 828, __pyx_L3_error)
   37549          14 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 829, __pyx_L3_error)
   37550          14 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_float32(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 830, __pyx_L3_error)
   37551             :   }
   37552          14 :   goto __pyx_L6_skip;
   37553           0 :   __pyx_L5_argtuple_error:;
   37554           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_float32", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 823, __pyx_L3_error)
   37555          14 :   __pyx_L6_skip:;
   37556          14 :   goto __pyx_L4_argument_unpacking_done;
   37557           0 :   __pyx_L3_error:;
   37558             :   {
   37559           0 :     Py_ssize_t __pyx_temp;
   37560           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   37561             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   37562             :     }
   37563             :   }
   37564           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   37565           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   37566           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   37567           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   37568           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   37569           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_float32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   37570           0 :   __Pyx_RefNannyFinishContext();
   37571           0 :   return NULL;
   37572          14 :   __pyx_L4_argument_unpacking_done:;
   37573          14 :   __pyx_r = __pyx_pf_13_csparsetools_98_lil_fancy_set_int64_float32(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   37574             : 
   37575             :   /* function exit code */
   37576          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   37577          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   37578          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   37579          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   37580          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   37581             :   {
   37582          14 :     Py_ssize_t __pyx_temp;
   37583          14 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   37584             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   37585             :     }
   37586             :   }
   37587             :   __Pyx_RefNannyFinishContext();
   37588             :   return __pyx_r;
   37589             : }
   37590             : 
   37591          14 : static PyObject *__pyx_pf_13_csparsetools_98_lil_fancy_set_int64_float32(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   37592          14 :   npy_intp __pyx_v_x;
   37593          14 :   npy_intp __pyx_v_y;
   37594          14 :   npy_intp __pyx_v_i;
   37595          14 :   npy_intp __pyx_v_j;
   37596          14 :   PyObject *__pyx_r = NULL;
   37597             :   __Pyx_RefNannyDeclarations
   37598          14 :   Py_ssize_t __pyx_t_1;
   37599          14 :   Py_ssize_t __pyx_t_2;
   37600          14 :   npy_intp __pyx_t_3;
   37601          14 :   Py_ssize_t __pyx_t_4;
   37602          14 :   Py_ssize_t __pyx_t_5;
   37603          14 :   npy_intp __pyx_t_6;
   37604          14 :   Py_ssize_t __pyx_t_7;
   37605          14 :   Py_ssize_t __pyx_t_8;
   37606          14 :   PyObject *__pyx_t_9 = NULL;
   37607          14 :   int __pyx_t_10;
   37608          14 :   int __pyx_lineno = 0;
   37609          14 :   const char *__pyx_filename = NULL;
   37610          14 :   int __pyx_clineno = 0;
   37611          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_float32", 1);
   37612             : 
   37613             :   /* "_csparsetools.pyx":834
   37614             :  *     cdef cnp.npy_intp i, j
   37615             :  * 
   37616             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   37617             :  *         for y in range(i_idx.shape[1]):
   37618             :  *             i = i_idx[x,y]
   37619             :  */
   37620          14 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   37621          14 :   __pyx_t_2 = __pyx_t_1;
   37622          35 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   37623          21 :     __pyx_v_x = __pyx_t_3;
   37624             : 
   37625             :     /* "_csparsetools.pyx":835
   37626             :  * 
   37627             :  *     for x in range(i_idx.shape[0]):
   37628             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   37629             :  *             i = i_idx[x,y]
   37630             :  *             j = j_idx[x,y]
   37631             :  */
   37632          21 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   37633          21 :     __pyx_t_5 = __pyx_t_4;
   37634          63 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   37635          42 :       __pyx_v_y = __pyx_t_6;
   37636             : 
   37637             :       /* "_csparsetools.pyx":836
   37638             :  *     for x in range(i_idx.shape[0]):
   37639             :  *         for y in range(i_idx.shape[1]):
   37640             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   37641             :  *             j = j_idx[x,y]
   37642             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   37643             :  */
   37644          42 :       __pyx_t_7 = __pyx_v_x;
   37645          42 :       __pyx_t_8 = __pyx_v_y;
   37646          42 :       __pyx_v_i = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   37647             : 
   37648             :       /* "_csparsetools.pyx":837
   37649             :  *         for y in range(i_idx.shape[1]):
   37650             :  *             i = i_idx[x,y]
   37651             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   37652             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   37653             :  * @cython.boundscheck(False)
   37654             :  */
   37655          42 :       __pyx_t_8 = __pyx_v_x;
   37656          42 :       __pyx_t_7 = __pyx_v_y;
   37657          42 :       __pyx_v_j = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   37658             : 
   37659             :       /* "_csparsetools.pyx":838
   37660             :  *             i = i_idx[x,y]
   37661             :  *             j = j_idx[x,y]
   37662             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   37663             :  * @cython.boundscheck(False)
   37664             :  * @cython.wraparound(False)
   37665             :  */
   37666          42 :       __pyx_t_7 = __pyx_v_x;
   37667          42 :       __pyx_t_8 = __pyx_v_y;
   37668          42 :       __pyx_t_9 = PyFloat_FromDouble((*((npy_float32 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 838, __pyx_L1_error)
   37669          42 :       __Pyx_GOTREF(__pyx_t_9);
   37670          42 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 838, __pyx_L1_error)
   37671          84 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   37672             :     }
   37673             :   }
   37674             : 
   37675             :   /* "_csparsetools.pyx":823
   37676             :  *             j = j_idx[x,y]
   37677             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   37678             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   37679             :  * @cython.wraparound(False)
   37680             :  * def _lil_fancy_set_int64_float32(cnp.npy_intp M, cnp.npy_intp N,
   37681             :  */
   37682             : 
   37683             :   /* function exit code */
   37684          14 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   37685          14 :   goto __pyx_L0;
   37686           0 :   __pyx_L1_error:;
   37687           0 :   __Pyx_XDECREF(__pyx_t_9);
   37688           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_float32", __pyx_clineno, __pyx_lineno, __pyx_filename);
   37689           0 :   __pyx_r = NULL;
   37690          14 :   __pyx_L0:;
   37691          14 :   __Pyx_XGIVEREF(__pyx_r);
   37692          14 :   __Pyx_RefNannyFinishContext();
   37693          14 :   return __pyx_r;
   37694             : }
   37695             : 
   37696             : /* "_csparsetools.pyx":839
   37697             :  *             j = j_idx[x,y]
   37698             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   37699             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   37700             :  * @cython.wraparound(False)
   37701             :  * def _lil_fancy_set_int64_float64(cnp.npy_intp M, cnp.npy_intp N,
   37702             :  */
   37703             : 
   37704             : /* Python wrapper */
   37705             : static PyObject *__pyx_pw_13_csparsetools_101_lil_fancy_set_int64_float64(PyObject *__pyx_self, 
   37706             : #if CYTHON_METH_FASTCALL
   37707             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   37708             : #else
   37709             : PyObject *__pyx_args, PyObject *__pyx_kwds
   37710             : #endif
   37711             : ); /*proto*/
   37712             : static PyMethodDef __pyx_mdef_13_csparsetools_101_lil_fancy_set_int64_float64 = {"_lil_fancy_set_int64_float64", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_101_lil_fancy_set_int64_float64, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   37713        2471 : static PyObject *__pyx_pw_13_csparsetools_101_lil_fancy_set_int64_float64(PyObject *__pyx_self, 
   37714             : #if CYTHON_METH_FASTCALL
   37715             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   37716             : #else
   37717             : PyObject *__pyx_args, PyObject *__pyx_kwds
   37718             : #endif
   37719             : ) {
   37720        2471 :   npy_intp __pyx_v_M;
   37721        2471 :   npy_intp __pyx_v_N;
   37722        2471 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   37723        2471 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   37724        2471 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   37725        2471 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   37726        2471 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   37727             :   #if !CYTHON_METH_FASTCALL
   37728             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   37729             :   #endif
   37730        2471 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   37731        2471 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   37732        2471 :   int __pyx_lineno = 0;
   37733        2471 :   const char *__pyx_filename = NULL;
   37734        2471 :   int __pyx_clineno = 0;
   37735        2471 :   PyObject *__pyx_r = 0;
   37736             :   __Pyx_RefNannyDeclarations
   37737        2471 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_float64 (wrapper)", 0);
   37738             :   #if !CYTHON_METH_FASTCALL
   37739             :   #if CYTHON_ASSUME_SAFE_MACROS
   37740             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   37741             :   #else
   37742             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   37743             :   #endif
   37744             :   #endif
   37745        2471 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   37746             :   {
   37747        2471 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   37748        2471 :     if (__pyx_kwds) {
   37749           0 :       Py_ssize_t kw_args;
   37750           0 :       switch (__pyx_nargs) {
   37751           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   37752           0 :         CYTHON_FALLTHROUGH;
   37753           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   37754           0 :         CYTHON_FALLTHROUGH;
   37755           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   37756           0 :         CYTHON_FALLTHROUGH;
   37757           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   37758           0 :         CYTHON_FALLTHROUGH;
   37759           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   37760           0 :         CYTHON_FALLTHROUGH;
   37761           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   37762           0 :         CYTHON_FALLTHROUGH;
   37763           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   37764           0 :         CYTHON_FALLTHROUGH;
   37765           0 :         case  0: break;
   37766           0 :         default: goto __pyx_L5_argtuple_error;
   37767             :       }
   37768           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   37769           0 :       switch (__pyx_nargs) {
   37770           0 :         case  0:
   37771           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   37772           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   37773           0 :           kw_args--;
   37774             :         }
   37775           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 839, __pyx_L3_error)
   37776           0 :         else goto __pyx_L5_argtuple_error;
   37777           0 :         CYTHON_FALLTHROUGH;
   37778             :         case  1:
   37779           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   37780           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   37781           0 :           kw_args--;
   37782             :         }
   37783           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 839, __pyx_L3_error)
   37784             :         else {
   37785           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_float64", 1, 7, 7, 1); __PYX_ERR(0, 839, __pyx_L3_error)
   37786             :         }
   37787           0 :         CYTHON_FALLTHROUGH;
   37788             :         case  2:
   37789           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   37790           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   37791           0 :           kw_args--;
   37792             :         }
   37793           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 839, __pyx_L3_error)
   37794             :         else {
   37795           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_float64", 1, 7, 7, 2); __PYX_ERR(0, 839, __pyx_L3_error)
   37796             :         }
   37797           0 :         CYTHON_FALLTHROUGH;
   37798             :         case  3:
   37799           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   37800           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   37801           0 :           kw_args--;
   37802             :         }
   37803           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 839, __pyx_L3_error)
   37804             :         else {
   37805           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_float64", 1, 7, 7, 3); __PYX_ERR(0, 839, __pyx_L3_error)
   37806             :         }
   37807           0 :         CYTHON_FALLTHROUGH;
   37808             :         case  4:
   37809           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   37810           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   37811           0 :           kw_args--;
   37812             :         }
   37813           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 839, __pyx_L3_error)
   37814             :         else {
   37815           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_float64", 1, 7, 7, 4); __PYX_ERR(0, 839, __pyx_L3_error)
   37816             :         }
   37817           0 :         CYTHON_FALLTHROUGH;
   37818             :         case  5:
   37819           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   37820           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   37821           0 :           kw_args--;
   37822             :         }
   37823           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 839, __pyx_L3_error)
   37824             :         else {
   37825           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_float64", 1, 7, 7, 5); __PYX_ERR(0, 839, __pyx_L3_error)
   37826             :         }
   37827           0 :         CYTHON_FALLTHROUGH;
   37828             :         case  6:
   37829           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   37830           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   37831           0 :           kw_args--;
   37832             :         }
   37833           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 839, __pyx_L3_error)
   37834             :         else {
   37835           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_float64", 1, 7, 7, 6); __PYX_ERR(0, 839, __pyx_L3_error)
   37836             :         }
   37837             :       }
   37838           0 :       if (unlikely(kw_args > 0)) {
   37839           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   37840           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int64_float64") < 0)) __PYX_ERR(0, 839, __pyx_L3_error)
   37841             :       }
   37842        2471 :     } else if (unlikely(__pyx_nargs != 7)) {
   37843           0 :       goto __pyx_L5_argtuple_error;
   37844             :     } else {
   37845        2471 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   37846        2471 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   37847        2471 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   37848        2471 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   37849        2471 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   37850        2471 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   37851        2471 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   37852             :     }
   37853        2471 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 841, __pyx_L3_error)
   37854        2471 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 841, __pyx_L3_error)
   37855        2471 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 842, __pyx_L3_error)
   37856        2471 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 843, __pyx_L3_error)
   37857        2471 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 844, __pyx_L3_error)
   37858        2471 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 845, __pyx_L3_error)
   37859        2471 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_float64(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 846, __pyx_L3_error)
   37860             :   }
   37861        2471 :   goto __pyx_L6_skip;
   37862           0 :   __pyx_L5_argtuple_error:;
   37863           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_float64", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 839, __pyx_L3_error)
   37864        2471 :   __pyx_L6_skip:;
   37865        2471 :   goto __pyx_L4_argument_unpacking_done;
   37866           0 :   __pyx_L3_error:;
   37867             :   {
   37868           0 :     Py_ssize_t __pyx_temp;
   37869           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   37870             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   37871             :     }
   37872             :   }
   37873           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   37874           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   37875           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   37876           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   37877           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   37878           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_float64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   37879           0 :   __Pyx_RefNannyFinishContext();
   37880           0 :   return NULL;
   37881        2471 :   __pyx_L4_argument_unpacking_done:;
   37882        2471 :   __pyx_r = __pyx_pf_13_csparsetools_100_lil_fancy_set_int64_float64(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   37883             : 
   37884             :   /* function exit code */
   37885        2471 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   37886        2471 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   37887        2471 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   37888        2471 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   37889        2471 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   37890             :   {
   37891        2471 :     Py_ssize_t __pyx_temp;
   37892        2471 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   37893             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   37894             :     }
   37895             :   }
   37896             :   __Pyx_RefNannyFinishContext();
   37897             :   return __pyx_r;
   37898             : }
   37899             : 
   37900        2471 : static PyObject *__pyx_pf_13_csparsetools_100_lil_fancy_set_int64_float64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   37901        2471 :   npy_intp __pyx_v_x;
   37902        2471 :   npy_intp __pyx_v_y;
   37903        2471 :   npy_intp __pyx_v_i;
   37904        2471 :   npy_intp __pyx_v_j;
   37905        2471 :   PyObject *__pyx_r = NULL;
   37906             :   __Pyx_RefNannyDeclarations
   37907        2471 :   Py_ssize_t __pyx_t_1;
   37908        2471 :   Py_ssize_t __pyx_t_2;
   37909        2471 :   npy_intp __pyx_t_3;
   37910        2471 :   Py_ssize_t __pyx_t_4;
   37911        2471 :   Py_ssize_t __pyx_t_5;
   37912        2471 :   npy_intp __pyx_t_6;
   37913        2471 :   Py_ssize_t __pyx_t_7;
   37914        2471 :   Py_ssize_t __pyx_t_8;
   37915        2471 :   PyObject *__pyx_t_9 = NULL;
   37916        2471 :   int __pyx_t_10;
   37917        2471 :   int __pyx_lineno = 0;
   37918        2471 :   const char *__pyx_filename = NULL;
   37919        2471 :   int __pyx_clineno = 0;
   37920        2471 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_float64", 1);
   37921             : 
   37922             :   /* "_csparsetools.pyx":850
   37923             :  *     cdef cnp.npy_intp i, j
   37924             :  * 
   37925             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   37926             :  *         for y in range(i_idx.shape[1]):
   37927             :  *             i = i_idx[x,y]
   37928             :  */
   37929        2471 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   37930        2471 :   __pyx_t_2 = __pyx_t_1;
   37931        6426 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   37932        3997 :     __pyx_v_x = __pyx_t_3;
   37933             : 
   37934             :     /* "_csparsetools.pyx":851
   37935             :  * 
   37936             :  *     for x in range(i_idx.shape[0]):
   37937             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   37938             :  *             i = i_idx[x,y]
   37939             :  *             j = j_idx[x,y]
   37940             :  */
   37941        3997 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   37942        3997 :     __pyx_t_5 = __pyx_t_4;
   37943       64579 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   37944       60624 :       __pyx_v_y = __pyx_t_6;
   37945             : 
   37946             :       /* "_csparsetools.pyx":852
   37947             :  *     for x in range(i_idx.shape[0]):
   37948             :  *         for y in range(i_idx.shape[1]):
   37949             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   37950             :  *             j = j_idx[x,y]
   37951             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   37952             :  */
   37953       60624 :       __pyx_t_7 = __pyx_v_x;
   37954       60624 :       __pyx_t_8 = __pyx_v_y;
   37955       60624 :       __pyx_v_i = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   37956             : 
   37957             :       /* "_csparsetools.pyx":853
   37958             :  *         for y in range(i_idx.shape[1]):
   37959             :  *             i = i_idx[x,y]
   37960             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   37961             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   37962             :  * @cython.boundscheck(False)
   37963             :  */
   37964       60624 :       __pyx_t_8 = __pyx_v_x;
   37965       60624 :       __pyx_t_7 = __pyx_v_y;
   37966       60624 :       __pyx_v_j = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   37967             : 
   37968             :       /* "_csparsetools.pyx":854
   37969             :  *             i = i_idx[x,y]
   37970             :  *             j = j_idx[x,y]
   37971             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   37972             :  * @cython.boundscheck(False)
   37973             :  * @cython.wraparound(False)
   37974             :  */
   37975       60624 :       __pyx_t_7 = __pyx_v_x;
   37976       60624 :       __pyx_t_8 = __pyx_v_y;
   37977       60624 :       __pyx_t_9 = PyFloat_FromDouble((*((npy_float64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 854, __pyx_L1_error)
   37978       60624 :       __Pyx_GOTREF(__pyx_t_9);
   37979       60624 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 854, __pyx_L1_error)
   37980      121164 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   37981             :     }
   37982             :   }
   37983             : 
   37984             :   /* "_csparsetools.pyx":839
   37985             :  *             j = j_idx[x,y]
   37986             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   37987             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   37988             :  * @cython.wraparound(False)
   37989             :  * def _lil_fancy_set_int64_float64(cnp.npy_intp M, cnp.npy_intp N,
   37990             :  */
   37991             : 
   37992             :   /* function exit code */
   37993        2429 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   37994        2429 :   goto __pyx_L0;
   37995          42 :   __pyx_L1_error:;
   37996          42 :   __Pyx_XDECREF(__pyx_t_9);
   37997          42 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_float64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   37998          42 :   __pyx_r = NULL;
   37999        2471 :   __pyx_L0:;
   38000        2471 :   __Pyx_XGIVEREF(__pyx_r);
   38001        2471 :   __Pyx_RefNannyFinishContext();
   38002        2471 :   return __pyx_r;
   38003             : }
   38004             : 
   38005             : /* "_csparsetools.pyx":855
   38006             :  *             j = j_idx[x,y]
   38007             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   38008             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   38009             :  * @cython.wraparound(False)
   38010             :  * def _lil_fancy_set_int64_longdouble(cnp.npy_intp M, cnp.npy_intp N,
   38011             :  */
   38012             : 
   38013             : /* Python wrapper */
   38014             : static PyObject *__pyx_pw_13_csparsetools_103_lil_fancy_set_int64_longdouble(PyObject *__pyx_self, 
   38015             : #if CYTHON_METH_FASTCALL
   38016             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   38017             : #else
   38018             : PyObject *__pyx_args, PyObject *__pyx_kwds
   38019             : #endif
   38020             : ); /*proto*/
   38021             : static PyMethodDef __pyx_mdef_13_csparsetools_103_lil_fancy_set_int64_longdouble = {"_lil_fancy_set_int64_longdouble", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_103_lil_fancy_set_int64_longdouble, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   38022          14 : static PyObject *__pyx_pw_13_csparsetools_103_lil_fancy_set_int64_longdouble(PyObject *__pyx_self, 
   38023             : #if CYTHON_METH_FASTCALL
   38024             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   38025             : #else
   38026             : PyObject *__pyx_args, PyObject *__pyx_kwds
   38027             : #endif
   38028             : ) {
   38029          14 :   npy_intp __pyx_v_M;
   38030          14 :   npy_intp __pyx_v_N;
   38031          14 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   38032          14 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   38033          14 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   38034          14 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   38035          14 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   38036             :   #if !CYTHON_METH_FASTCALL
   38037             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   38038             :   #endif
   38039          14 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   38040          14 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   38041          14 :   int __pyx_lineno = 0;
   38042          14 :   const char *__pyx_filename = NULL;
   38043          14 :   int __pyx_clineno = 0;
   38044          14 :   PyObject *__pyx_r = 0;
   38045             :   __Pyx_RefNannyDeclarations
   38046          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_longdouble (wrapper)", 0);
   38047             :   #if !CYTHON_METH_FASTCALL
   38048             :   #if CYTHON_ASSUME_SAFE_MACROS
   38049             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   38050             :   #else
   38051             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   38052             :   #endif
   38053             :   #endif
   38054          14 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   38055             :   {
   38056          14 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   38057          14 :     if (__pyx_kwds) {
   38058           0 :       Py_ssize_t kw_args;
   38059           0 :       switch (__pyx_nargs) {
   38060           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   38061           0 :         CYTHON_FALLTHROUGH;
   38062           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   38063           0 :         CYTHON_FALLTHROUGH;
   38064           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   38065           0 :         CYTHON_FALLTHROUGH;
   38066           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   38067           0 :         CYTHON_FALLTHROUGH;
   38068           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   38069           0 :         CYTHON_FALLTHROUGH;
   38070           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   38071           0 :         CYTHON_FALLTHROUGH;
   38072           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   38073           0 :         CYTHON_FALLTHROUGH;
   38074           0 :         case  0: break;
   38075           0 :         default: goto __pyx_L5_argtuple_error;
   38076             :       }
   38077           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   38078           0 :       switch (__pyx_nargs) {
   38079           0 :         case  0:
   38080           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   38081           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   38082           0 :           kw_args--;
   38083             :         }
   38084           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L3_error)
   38085           0 :         else goto __pyx_L5_argtuple_error;
   38086           0 :         CYTHON_FALLTHROUGH;
   38087             :         case  1:
   38088           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   38089           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   38090           0 :           kw_args--;
   38091             :         }
   38092           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L3_error)
   38093             :         else {
   38094           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_longdouble", 1, 7, 7, 1); __PYX_ERR(0, 855, __pyx_L3_error)
   38095             :         }
   38096           0 :         CYTHON_FALLTHROUGH;
   38097             :         case  2:
   38098           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   38099           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   38100           0 :           kw_args--;
   38101             :         }
   38102           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L3_error)
   38103             :         else {
   38104           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_longdouble", 1, 7, 7, 2); __PYX_ERR(0, 855, __pyx_L3_error)
   38105             :         }
   38106           0 :         CYTHON_FALLTHROUGH;
   38107             :         case  3:
   38108           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   38109           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   38110           0 :           kw_args--;
   38111             :         }
   38112           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L3_error)
   38113             :         else {
   38114           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_longdouble", 1, 7, 7, 3); __PYX_ERR(0, 855, __pyx_L3_error)
   38115             :         }
   38116           0 :         CYTHON_FALLTHROUGH;
   38117             :         case  4:
   38118           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   38119           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   38120           0 :           kw_args--;
   38121             :         }
   38122           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L3_error)
   38123             :         else {
   38124           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_longdouble", 1, 7, 7, 4); __PYX_ERR(0, 855, __pyx_L3_error)
   38125             :         }
   38126           0 :         CYTHON_FALLTHROUGH;
   38127             :         case  5:
   38128           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   38129           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   38130           0 :           kw_args--;
   38131             :         }
   38132           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L3_error)
   38133             :         else {
   38134           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_longdouble", 1, 7, 7, 5); __PYX_ERR(0, 855, __pyx_L3_error)
   38135             :         }
   38136           0 :         CYTHON_FALLTHROUGH;
   38137             :         case  6:
   38138           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   38139           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   38140           0 :           kw_args--;
   38141             :         }
   38142           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L3_error)
   38143             :         else {
   38144           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_longdouble", 1, 7, 7, 6); __PYX_ERR(0, 855, __pyx_L3_error)
   38145             :         }
   38146             :       }
   38147           0 :       if (unlikely(kw_args > 0)) {
   38148           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   38149           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int64_longdouble") < 0)) __PYX_ERR(0, 855, __pyx_L3_error)
   38150             :       }
   38151          14 :     } else if (unlikely(__pyx_nargs != 7)) {
   38152           0 :       goto __pyx_L5_argtuple_error;
   38153             :     } else {
   38154          14 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   38155          14 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   38156          14 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   38157          14 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   38158          14 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   38159          14 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   38160          14 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   38161             :     }
   38162          14 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
   38163          14 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
   38164          14 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 858, __pyx_L3_error)
   38165          14 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 859, __pyx_L3_error)
   38166          14 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 860, __pyx_L3_error)
   38167          14 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 861, __pyx_L3_error)
   38168          14 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds_long__double(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 862, __pyx_L3_error)
   38169             :   }
   38170          14 :   goto __pyx_L6_skip;
   38171           0 :   __pyx_L5_argtuple_error:;
   38172           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_longdouble", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 855, __pyx_L3_error)
   38173          14 :   __pyx_L6_skip:;
   38174          14 :   goto __pyx_L4_argument_unpacking_done;
   38175           0 :   __pyx_L3_error:;
   38176             :   {
   38177           0 :     Py_ssize_t __pyx_temp;
   38178           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   38179             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   38180             :     }
   38181             :   }
   38182           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   38183           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   38184           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   38185           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   38186           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   38187           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_longdouble", __pyx_clineno, __pyx_lineno, __pyx_filename);
   38188           0 :   __Pyx_RefNannyFinishContext();
   38189           0 :   return NULL;
   38190          14 :   __pyx_L4_argument_unpacking_done:;
   38191          14 :   __pyx_r = __pyx_pf_13_csparsetools_102_lil_fancy_set_int64_longdouble(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   38192             : 
   38193             :   /* function exit code */
   38194          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   38195          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   38196          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   38197          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   38198          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   38199             :   {
   38200          14 :     Py_ssize_t __pyx_temp;
   38201          14 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   38202             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   38203             :     }
   38204             :   }
   38205             :   __Pyx_RefNannyFinishContext();
   38206             :   return __pyx_r;
   38207             : }
   38208             : 
   38209          14 : static PyObject *__pyx_pf_13_csparsetools_102_lil_fancy_set_int64_longdouble(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   38210          14 :   npy_intp __pyx_v_x;
   38211          14 :   npy_intp __pyx_v_y;
   38212          14 :   npy_intp __pyx_v_i;
   38213          14 :   npy_intp __pyx_v_j;
   38214          14 :   PyObject *__pyx_r = NULL;
   38215             :   __Pyx_RefNannyDeclarations
   38216          14 :   Py_ssize_t __pyx_t_1;
   38217          14 :   Py_ssize_t __pyx_t_2;
   38218          14 :   npy_intp __pyx_t_3;
   38219          14 :   Py_ssize_t __pyx_t_4;
   38220          14 :   Py_ssize_t __pyx_t_5;
   38221          14 :   npy_intp __pyx_t_6;
   38222          14 :   Py_ssize_t __pyx_t_7;
   38223          14 :   Py_ssize_t __pyx_t_8;
   38224          14 :   PyObject *__pyx_t_9 = NULL;
   38225          14 :   int __pyx_t_10;
   38226          14 :   int __pyx_lineno = 0;
   38227          14 :   const char *__pyx_filename = NULL;
   38228          14 :   int __pyx_clineno = 0;
   38229          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_longdouble", 1);
   38230             : 
   38231             :   /* "_csparsetools.pyx":866
   38232             :  *     cdef cnp.npy_intp i, j
   38233             :  * 
   38234             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   38235             :  *         for y in range(i_idx.shape[1]):
   38236             :  *             i = i_idx[x,y]
   38237             :  */
   38238          14 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   38239          14 :   __pyx_t_2 = __pyx_t_1;
   38240          35 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   38241          21 :     __pyx_v_x = __pyx_t_3;
   38242             : 
   38243             :     /* "_csparsetools.pyx":867
   38244             :  * 
   38245             :  *     for x in range(i_idx.shape[0]):
   38246             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   38247             :  *             i = i_idx[x,y]
   38248             :  *             j = j_idx[x,y]
   38249             :  */
   38250          21 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   38251          21 :     __pyx_t_5 = __pyx_t_4;
   38252          63 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   38253          42 :       __pyx_v_y = __pyx_t_6;
   38254             : 
   38255             :       /* "_csparsetools.pyx":868
   38256             :  *     for x in range(i_idx.shape[0]):
   38257             :  *         for y in range(i_idx.shape[1]):
   38258             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   38259             :  *             j = j_idx[x,y]
   38260             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   38261             :  */
   38262          42 :       __pyx_t_7 = __pyx_v_x;
   38263          42 :       __pyx_t_8 = __pyx_v_y;
   38264          42 :       __pyx_v_i = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   38265             : 
   38266             :       /* "_csparsetools.pyx":869
   38267             :  *         for y in range(i_idx.shape[1]):
   38268             :  *             i = i_idx[x,y]
   38269             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   38270             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   38271             :  * @cython.boundscheck(False)
   38272             :  */
   38273          42 :       __pyx_t_8 = __pyx_v_x;
   38274          42 :       __pyx_t_7 = __pyx_v_y;
   38275          42 :       __pyx_v_j = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   38276             : 
   38277             :       /* "_csparsetools.pyx":870
   38278             :  *             i = i_idx[x,y]
   38279             :  *             j = j_idx[x,y]
   38280             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   38281             :  * @cython.boundscheck(False)
   38282             :  * @cython.wraparound(False)
   38283             :  */
   38284          42 :       __pyx_t_7 = __pyx_v_x;
   38285          42 :       __pyx_t_8 = __pyx_v_y;
   38286          42 :       __pyx_t_9 = PyFloat_FromDouble((*((long double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 870, __pyx_L1_error)
   38287          42 :       __Pyx_GOTREF(__pyx_t_9);
   38288          42 :       __pyx_t_10 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_9, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 870, __pyx_L1_error)
   38289          84 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   38290             :     }
   38291             :   }
   38292             : 
   38293             :   /* "_csparsetools.pyx":855
   38294             :  *             j = j_idx[x,y]
   38295             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   38296             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   38297             :  * @cython.wraparound(False)
   38298             :  * def _lil_fancy_set_int64_longdouble(cnp.npy_intp M, cnp.npy_intp N,
   38299             :  */
   38300             : 
   38301             :   /* function exit code */
   38302          14 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   38303          14 :   goto __pyx_L0;
   38304           0 :   __pyx_L1_error:;
   38305           0 :   __Pyx_XDECREF(__pyx_t_9);
   38306           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_longdouble", __pyx_clineno, __pyx_lineno, __pyx_filename);
   38307           0 :   __pyx_r = NULL;
   38308          14 :   __pyx_L0:;
   38309          14 :   __Pyx_XGIVEREF(__pyx_r);
   38310          14 :   __Pyx_RefNannyFinishContext();
   38311          14 :   return __pyx_r;
   38312             : }
   38313             : 
   38314             : /* "_csparsetools.pyx":871
   38315             :  *             j = j_idx[x,y]
   38316             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   38317             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   38318             :  * @cython.wraparound(False)
   38319             :  * def _lil_fancy_set_int64_complex64(cnp.npy_intp M, cnp.npy_intp N,
   38320             :  */
   38321             : 
   38322             : /* Python wrapper */
   38323             : static PyObject *__pyx_pw_13_csparsetools_105_lil_fancy_set_int64_complex64(PyObject *__pyx_self, 
   38324             : #if CYTHON_METH_FASTCALL
   38325             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   38326             : #else
   38327             : PyObject *__pyx_args, PyObject *__pyx_kwds
   38328             : #endif
   38329             : ); /*proto*/
   38330             : static PyMethodDef __pyx_mdef_13_csparsetools_105_lil_fancy_set_int64_complex64 = {"_lil_fancy_set_int64_complex64", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_105_lil_fancy_set_int64_complex64, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   38331          14 : static PyObject *__pyx_pw_13_csparsetools_105_lil_fancy_set_int64_complex64(PyObject *__pyx_self, 
   38332             : #if CYTHON_METH_FASTCALL
   38333             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   38334             : #else
   38335             : PyObject *__pyx_args, PyObject *__pyx_kwds
   38336             : #endif
   38337             : ) {
   38338          14 :   npy_intp __pyx_v_M;
   38339          14 :   npy_intp __pyx_v_N;
   38340          14 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   38341          14 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   38342          14 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   38343          14 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   38344          14 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   38345             :   #if !CYTHON_METH_FASTCALL
   38346             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   38347             :   #endif
   38348          14 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   38349          14 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   38350          14 :   int __pyx_lineno = 0;
   38351          14 :   const char *__pyx_filename = NULL;
   38352          14 :   int __pyx_clineno = 0;
   38353          14 :   PyObject *__pyx_r = 0;
   38354             :   __Pyx_RefNannyDeclarations
   38355          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_complex64 (wrapper)", 0);
   38356             :   #if !CYTHON_METH_FASTCALL
   38357             :   #if CYTHON_ASSUME_SAFE_MACROS
   38358             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   38359             :   #else
   38360             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   38361             :   #endif
   38362             :   #endif
   38363          14 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   38364             :   {
   38365          14 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   38366          14 :     if (__pyx_kwds) {
   38367           0 :       Py_ssize_t kw_args;
   38368           0 :       switch (__pyx_nargs) {
   38369           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   38370           0 :         CYTHON_FALLTHROUGH;
   38371           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   38372           0 :         CYTHON_FALLTHROUGH;
   38373           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   38374           0 :         CYTHON_FALLTHROUGH;
   38375           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   38376           0 :         CYTHON_FALLTHROUGH;
   38377           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   38378           0 :         CYTHON_FALLTHROUGH;
   38379           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   38380           0 :         CYTHON_FALLTHROUGH;
   38381           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   38382           0 :         CYTHON_FALLTHROUGH;
   38383           0 :         case  0: break;
   38384           0 :         default: goto __pyx_L5_argtuple_error;
   38385             :       }
   38386           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   38387           0 :       switch (__pyx_nargs) {
   38388           0 :         case  0:
   38389           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   38390           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   38391           0 :           kw_args--;
   38392             :         }
   38393           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 871, __pyx_L3_error)
   38394           0 :         else goto __pyx_L5_argtuple_error;
   38395           0 :         CYTHON_FALLTHROUGH;
   38396             :         case  1:
   38397           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   38398           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   38399           0 :           kw_args--;
   38400             :         }
   38401           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 871, __pyx_L3_error)
   38402             :         else {
   38403           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_complex64", 1, 7, 7, 1); __PYX_ERR(0, 871, __pyx_L3_error)
   38404             :         }
   38405           0 :         CYTHON_FALLTHROUGH;
   38406             :         case  2:
   38407           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   38408           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   38409           0 :           kw_args--;
   38410             :         }
   38411           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 871, __pyx_L3_error)
   38412             :         else {
   38413           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_complex64", 1, 7, 7, 2); __PYX_ERR(0, 871, __pyx_L3_error)
   38414             :         }
   38415           0 :         CYTHON_FALLTHROUGH;
   38416             :         case  3:
   38417           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   38418           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   38419           0 :           kw_args--;
   38420             :         }
   38421           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 871, __pyx_L3_error)
   38422             :         else {
   38423           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_complex64", 1, 7, 7, 3); __PYX_ERR(0, 871, __pyx_L3_error)
   38424             :         }
   38425           0 :         CYTHON_FALLTHROUGH;
   38426             :         case  4:
   38427           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   38428           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   38429           0 :           kw_args--;
   38430             :         }
   38431           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 871, __pyx_L3_error)
   38432             :         else {
   38433           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_complex64", 1, 7, 7, 4); __PYX_ERR(0, 871, __pyx_L3_error)
   38434             :         }
   38435           0 :         CYTHON_FALLTHROUGH;
   38436             :         case  5:
   38437           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   38438           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   38439           0 :           kw_args--;
   38440             :         }
   38441           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 871, __pyx_L3_error)
   38442             :         else {
   38443           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_complex64", 1, 7, 7, 5); __PYX_ERR(0, 871, __pyx_L3_error)
   38444             :         }
   38445           0 :         CYTHON_FALLTHROUGH;
   38446             :         case  6:
   38447           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   38448           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   38449           0 :           kw_args--;
   38450             :         }
   38451           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 871, __pyx_L3_error)
   38452             :         else {
   38453           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_complex64", 1, 7, 7, 6); __PYX_ERR(0, 871, __pyx_L3_error)
   38454             :         }
   38455             :       }
   38456           0 :       if (unlikely(kw_args > 0)) {
   38457           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   38458           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int64_complex64") < 0)) __PYX_ERR(0, 871, __pyx_L3_error)
   38459             :       }
   38460          14 :     } else if (unlikely(__pyx_nargs != 7)) {
   38461           0 :       goto __pyx_L5_argtuple_error;
   38462             :     } else {
   38463          14 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   38464          14 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   38465          14 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   38466          14 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   38467          14 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   38468          14 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   38469          14 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   38470             :     }
   38471          14 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 873, __pyx_L3_error)
   38472          14 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 873, __pyx_L3_error)
   38473          14 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 874, __pyx_L3_error)
   38474          14 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 875, __pyx_L3_error)
   38475          14 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 876, __pyx_L3_error)
   38476          14 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 877, __pyx_L3_error)
   38477          14 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds___pyx_t_float_complex(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 878, __pyx_L3_error)
   38478             :   }
   38479          14 :   goto __pyx_L6_skip;
   38480           0 :   __pyx_L5_argtuple_error:;
   38481           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_complex64", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 871, __pyx_L3_error)
   38482          14 :   __pyx_L6_skip:;
   38483          14 :   goto __pyx_L4_argument_unpacking_done;
   38484           0 :   __pyx_L3_error:;
   38485             :   {
   38486           0 :     Py_ssize_t __pyx_temp;
   38487           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   38488             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   38489             :     }
   38490             :   }
   38491           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   38492           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   38493           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   38494           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   38495           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   38496           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_complex64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   38497           0 :   __Pyx_RefNannyFinishContext();
   38498           0 :   return NULL;
   38499          14 :   __pyx_L4_argument_unpacking_done:;
   38500          14 :   __pyx_r = __pyx_pf_13_csparsetools_104_lil_fancy_set_int64_complex64(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   38501             : 
   38502             :   /* function exit code */
   38503          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   38504          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   38505          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   38506          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   38507          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   38508             :   {
   38509          14 :     Py_ssize_t __pyx_temp;
   38510          14 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   38511             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   38512             :     }
   38513             :   }
   38514             :   __Pyx_RefNannyFinishContext();
   38515             :   return __pyx_r;
   38516             : }
   38517             : 
   38518          14 : static PyObject *__pyx_pf_13_csparsetools_104_lil_fancy_set_int64_complex64(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   38519          14 :   npy_intp __pyx_v_x;
   38520          14 :   npy_intp __pyx_v_y;
   38521          14 :   npy_intp __pyx_v_i;
   38522          14 :   npy_intp __pyx_v_j;
   38523          14 :   PyObject *__pyx_r = NULL;
   38524             :   __Pyx_RefNannyDeclarations
   38525          14 :   Py_ssize_t __pyx_t_1;
   38526          14 :   Py_ssize_t __pyx_t_2;
   38527          14 :   npy_intp __pyx_t_3;
   38528          14 :   Py_ssize_t __pyx_t_4;
   38529          14 :   Py_ssize_t __pyx_t_5;
   38530          14 :   npy_intp __pyx_t_6;
   38531          14 :   Py_ssize_t __pyx_t_7;
   38532          14 :   Py_ssize_t __pyx_t_8;
   38533          14 :   __pyx_t_float_complex __pyx_t_9;
   38534          14 :   PyObject *__pyx_t_10 = NULL;
   38535          14 :   int __pyx_t_11;
   38536          14 :   int __pyx_lineno = 0;
   38537          14 :   const char *__pyx_filename = NULL;
   38538          14 :   int __pyx_clineno = 0;
   38539          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_complex64", 1);
   38540             : 
   38541             :   /* "_csparsetools.pyx":882
   38542             :  *     cdef cnp.npy_intp i, j
   38543             :  * 
   38544             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   38545             :  *         for y in range(i_idx.shape[1]):
   38546             :  *             i = i_idx[x,y]
   38547             :  */
   38548          14 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   38549          14 :   __pyx_t_2 = __pyx_t_1;
   38550          35 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   38551          21 :     __pyx_v_x = __pyx_t_3;
   38552             : 
   38553             :     /* "_csparsetools.pyx":883
   38554             :  * 
   38555             :  *     for x in range(i_idx.shape[0]):
   38556             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   38557             :  *             i = i_idx[x,y]
   38558             :  *             j = j_idx[x,y]
   38559             :  */
   38560          21 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   38561          21 :     __pyx_t_5 = __pyx_t_4;
   38562          63 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   38563          42 :       __pyx_v_y = __pyx_t_6;
   38564             : 
   38565             :       /* "_csparsetools.pyx":884
   38566             :  *     for x in range(i_idx.shape[0]):
   38567             :  *         for y in range(i_idx.shape[1]):
   38568             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   38569             :  *             j = j_idx[x,y]
   38570             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   38571             :  */
   38572          42 :       __pyx_t_7 = __pyx_v_x;
   38573          42 :       __pyx_t_8 = __pyx_v_y;
   38574          42 :       __pyx_v_i = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   38575             : 
   38576             :       /* "_csparsetools.pyx":885
   38577             :  *         for y in range(i_idx.shape[1]):
   38578             :  *             i = i_idx[x,y]
   38579             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   38580             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   38581             :  * @cython.boundscheck(False)
   38582             :  */
   38583          42 :       __pyx_t_8 = __pyx_v_x;
   38584          42 :       __pyx_t_7 = __pyx_v_y;
   38585          42 :       __pyx_v_j = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   38586             : 
   38587             :       /* "_csparsetools.pyx":886
   38588             :  *             i = i_idx[x,y]
   38589             :  *             j = j_idx[x,y]
   38590             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   38591             :  * @cython.boundscheck(False)
   38592             :  * @cython.wraparound(False)
   38593             :  */
   38594          42 :       __pyx_t_7 = __pyx_v_x;
   38595          42 :       __pyx_t_8 = __pyx_v_y;
   38596          42 :       __pyx_t_9 = (*((__pyx_t_float_complex *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )));
   38597          42 :       __pyx_t_10 = __pyx_PyComplex_FromComplex(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 886, __pyx_L1_error)
   38598          42 :       __Pyx_GOTREF(__pyx_t_10);
   38599          42 :       __pyx_t_11 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_10, 0); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 886, __pyx_L1_error)
   38600          84 :       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   38601             :     }
   38602             :   }
   38603             : 
   38604             :   /* "_csparsetools.pyx":871
   38605             :  *             j = j_idx[x,y]
   38606             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   38607             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   38608             :  * @cython.wraparound(False)
   38609             :  * def _lil_fancy_set_int64_complex64(cnp.npy_intp M, cnp.npy_intp N,
   38610             :  */
   38611             : 
   38612             :   /* function exit code */
   38613          14 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   38614          14 :   goto __pyx_L0;
   38615           0 :   __pyx_L1_error:;
   38616           0 :   __Pyx_XDECREF(__pyx_t_10);
   38617           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_complex64", __pyx_clineno, __pyx_lineno, __pyx_filename);
   38618           0 :   __pyx_r = NULL;
   38619          14 :   __pyx_L0:;
   38620          14 :   __Pyx_XGIVEREF(__pyx_r);
   38621          14 :   __Pyx_RefNannyFinishContext();
   38622          14 :   return __pyx_r;
   38623             : }
   38624             : 
   38625             : /* "_csparsetools.pyx":887
   38626             :  *             j = j_idx[x,y]
   38627             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   38628             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   38629             :  * @cython.wraparound(False)
   38630             :  * def _lil_fancy_set_int64_complex128(cnp.npy_intp M, cnp.npy_intp N,
   38631             :  */
   38632             : 
   38633             : /* Python wrapper */
   38634             : static PyObject *__pyx_pw_13_csparsetools_107_lil_fancy_set_int64_complex128(PyObject *__pyx_self, 
   38635             : #if CYTHON_METH_FASTCALL
   38636             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   38637             : #else
   38638             : PyObject *__pyx_args, PyObject *__pyx_kwds
   38639             : #endif
   38640             : ); /*proto*/
   38641             : static PyMethodDef __pyx_mdef_13_csparsetools_107_lil_fancy_set_int64_complex128 = {"_lil_fancy_set_int64_complex128", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_107_lil_fancy_set_int64_complex128, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   38642          14 : static PyObject *__pyx_pw_13_csparsetools_107_lil_fancy_set_int64_complex128(PyObject *__pyx_self, 
   38643             : #if CYTHON_METH_FASTCALL
   38644             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   38645             : #else
   38646             : PyObject *__pyx_args, PyObject *__pyx_kwds
   38647             : #endif
   38648             : ) {
   38649          14 :   npy_intp __pyx_v_M;
   38650          14 :   npy_intp __pyx_v_N;
   38651          14 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   38652          14 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   38653          14 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   38654          14 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   38655          14 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   38656             :   #if !CYTHON_METH_FASTCALL
   38657             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   38658             :   #endif
   38659          14 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   38660          14 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   38661          14 :   int __pyx_lineno = 0;
   38662          14 :   const char *__pyx_filename = NULL;
   38663          14 :   int __pyx_clineno = 0;
   38664          14 :   PyObject *__pyx_r = 0;
   38665             :   __Pyx_RefNannyDeclarations
   38666          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_complex128 (wrapper)", 0);
   38667             :   #if !CYTHON_METH_FASTCALL
   38668             :   #if CYTHON_ASSUME_SAFE_MACROS
   38669             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   38670             :   #else
   38671             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   38672             :   #endif
   38673             :   #endif
   38674          14 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   38675             :   {
   38676          14 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   38677          14 :     if (__pyx_kwds) {
   38678           0 :       Py_ssize_t kw_args;
   38679           0 :       switch (__pyx_nargs) {
   38680           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   38681           0 :         CYTHON_FALLTHROUGH;
   38682           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   38683           0 :         CYTHON_FALLTHROUGH;
   38684           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   38685           0 :         CYTHON_FALLTHROUGH;
   38686           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   38687           0 :         CYTHON_FALLTHROUGH;
   38688           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   38689           0 :         CYTHON_FALLTHROUGH;
   38690           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   38691           0 :         CYTHON_FALLTHROUGH;
   38692           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   38693           0 :         CYTHON_FALLTHROUGH;
   38694           0 :         case  0: break;
   38695           0 :         default: goto __pyx_L5_argtuple_error;
   38696             :       }
   38697           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   38698           0 :       switch (__pyx_nargs) {
   38699           0 :         case  0:
   38700           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   38701           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   38702           0 :           kw_args--;
   38703             :         }
   38704           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 887, __pyx_L3_error)
   38705           0 :         else goto __pyx_L5_argtuple_error;
   38706           0 :         CYTHON_FALLTHROUGH;
   38707             :         case  1:
   38708           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   38709           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   38710           0 :           kw_args--;
   38711             :         }
   38712           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 887, __pyx_L3_error)
   38713             :         else {
   38714           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_complex128", 1, 7, 7, 1); __PYX_ERR(0, 887, __pyx_L3_error)
   38715             :         }
   38716           0 :         CYTHON_FALLTHROUGH;
   38717             :         case  2:
   38718           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   38719           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   38720           0 :           kw_args--;
   38721             :         }
   38722           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 887, __pyx_L3_error)
   38723             :         else {
   38724           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_complex128", 1, 7, 7, 2); __PYX_ERR(0, 887, __pyx_L3_error)
   38725             :         }
   38726           0 :         CYTHON_FALLTHROUGH;
   38727             :         case  3:
   38728           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   38729           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   38730           0 :           kw_args--;
   38731             :         }
   38732           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 887, __pyx_L3_error)
   38733             :         else {
   38734           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_complex128", 1, 7, 7, 3); __PYX_ERR(0, 887, __pyx_L3_error)
   38735             :         }
   38736           0 :         CYTHON_FALLTHROUGH;
   38737             :         case  4:
   38738           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   38739           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   38740           0 :           kw_args--;
   38741             :         }
   38742           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 887, __pyx_L3_error)
   38743             :         else {
   38744           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_complex128", 1, 7, 7, 4); __PYX_ERR(0, 887, __pyx_L3_error)
   38745             :         }
   38746           0 :         CYTHON_FALLTHROUGH;
   38747             :         case  5:
   38748           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   38749           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   38750           0 :           kw_args--;
   38751             :         }
   38752           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 887, __pyx_L3_error)
   38753             :         else {
   38754           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_complex128", 1, 7, 7, 5); __PYX_ERR(0, 887, __pyx_L3_error)
   38755             :         }
   38756           0 :         CYTHON_FALLTHROUGH;
   38757             :         case  6:
   38758           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   38759           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   38760           0 :           kw_args--;
   38761             :         }
   38762           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 887, __pyx_L3_error)
   38763             :         else {
   38764           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_complex128", 1, 7, 7, 6); __PYX_ERR(0, 887, __pyx_L3_error)
   38765             :         }
   38766             :       }
   38767           0 :       if (unlikely(kw_args > 0)) {
   38768           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   38769           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int64_complex128") < 0)) __PYX_ERR(0, 887, __pyx_L3_error)
   38770             :       }
   38771          14 :     } else if (unlikely(__pyx_nargs != 7)) {
   38772           0 :       goto __pyx_L5_argtuple_error;
   38773             :     } else {
   38774          14 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   38775          14 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   38776          14 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   38777          14 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   38778          14 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   38779          14 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   38780          14 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   38781             :     }
   38782          14 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 889, __pyx_L3_error)
   38783          14 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 889, __pyx_L3_error)
   38784          14 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 890, __pyx_L3_error)
   38785          14 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 891, __pyx_L3_error)
   38786          14 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 892, __pyx_L3_error)
   38787          14 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 893, __pyx_L3_error)
   38788          14 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds___pyx_t_double_complex(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 894, __pyx_L3_error)
   38789             :   }
   38790          14 :   goto __pyx_L6_skip;
   38791           0 :   __pyx_L5_argtuple_error:;
   38792           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_complex128", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 887, __pyx_L3_error)
   38793          14 :   __pyx_L6_skip:;
   38794          14 :   goto __pyx_L4_argument_unpacking_done;
   38795           0 :   __pyx_L3_error:;
   38796             :   {
   38797           0 :     Py_ssize_t __pyx_temp;
   38798           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   38799             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   38800             :     }
   38801             :   }
   38802           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   38803           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   38804           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   38805           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   38806           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   38807           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_complex128", __pyx_clineno, __pyx_lineno, __pyx_filename);
   38808           0 :   __Pyx_RefNannyFinishContext();
   38809           0 :   return NULL;
   38810          14 :   __pyx_L4_argument_unpacking_done:;
   38811          14 :   __pyx_r = __pyx_pf_13_csparsetools_106_lil_fancy_set_int64_complex128(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   38812             : 
   38813             :   /* function exit code */
   38814          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   38815          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   38816          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   38817          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   38818          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   38819             :   {
   38820          14 :     Py_ssize_t __pyx_temp;
   38821          14 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   38822             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   38823             :     }
   38824             :   }
   38825             :   __Pyx_RefNannyFinishContext();
   38826             :   return __pyx_r;
   38827             : }
   38828             : 
   38829          14 : static PyObject *__pyx_pf_13_csparsetools_106_lil_fancy_set_int64_complex128(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   38830          14 :   npy_intp __pyx_v_x;
   38831          14 :   npy_intp __pyx_v_y;
   38832          14 :   npy_intp __pyx_v_i;
   38833          14 :   npy_intp __pyx_v_j;
   38834          14 :   PyObject *__pyx_r = NULL;
   38835             :   __Pyx_RefNannyDeclarations
   38836          14 :   Py_ssize_t __pyx_t_1;
   38837          14 :   Py_ssize_t __pyx_t_2;
   38838          14 :   npy_intp __pyx_t_3;
   38839          14 :   Py_ssize_t __pyx_t_4;
   38840          14 :   Py_ssize_t __pyx_t_5;
   38841          14 :   npy_intp __pyx_t_6;
   38842          14 :   Py_ssize_t __pyx_t_7;
   38843          14 :   Py_ssize_t __pyx_t_8;
   38844          14 :   __pyx_t_double_complex __pyx_t_9;
   38845          14 :   PyObject *__pyx_t_10 = NULL;
   38846          14 :   int __pyx_t_11;
   38847          14 :   int __pyx_lineno = 0;
   38848          14 :   const char *__pyx_filename = NULL;
   38849          14 :   int __pyx_clineno = 0;
   38850          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_complex128", 1);
   38851             : 
   38852             :   /* "_csparsetools.pyx":898
   38853             :  *     cdef cnp.npy_intp i, j
   38854             :  * 
   38855             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   38856             :  *         for y in range(i_idx.shape[1]):
   38857             :  *             i = i_idx[x,y]
   38858             :  */
   38859          14 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   38860          14 :   __pyx_t_2 = __pyx_t_1;
   38861          35 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   38862          21 :     __pyx_v_x = __pyx_t_3;
   38863             : 
   38864             :     /* "_csparsetools.pyx":899
   38865             :  * 
   38866             :  *     for x in range(i_idx.shape[0]):
   38867             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   38868             :  *             i = i_idx[x,y]
   38869             :  *             j = j_idx[x,y]
   38870             :  */
   38871          21 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   38872          21 :     __pyx_t_5 = __pyx_t_4;
   38873          63 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   38874          42 :       __pyx_v_y = __pyx_t_6;
   38875             : 
   38876             :       /* "_csparsetools.pyx":900
   38877             :  *     for x in range(i_idx.shape[0]):
   38878             :  *         for y in range(i_idx.shape[1]):
   38879             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   38880             :  *             j = j_idx[x,y]
   38881             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   38882             :  */
   38883          42 :       __pyx_t_7 = __pyx_v_x;
   38884          42 :       __pyx_t_8 = __pyx_v_y;
   38885          42 :       __pyx_v_i = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   38886             : 
   38887             :       /* "_csparsetools.pyx":901
   38888             :  *         for y in range(i_idx.shape[1]):
   38889             :  *             i = i_idx[x,y]
   38890             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   38891             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   38892             :  * @cython.boundscheck(False)
   38893             :  */
   38894          42 :       __pyx_t_8 = __pyx_v_x;
   38895          42 :       __pyx_t_7 = __pyx_v_y;
   38896          42 :       __pyx_v_j = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   38897             : 
   38898             :       /* "_csparsetools.pyx":902
   38899             :  *             i = i_idx[x,y]
   38900             :  *             j = j_idx[x,y]
   38901             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   38902             :  * @cython.boundscheck(False)
   38903             :  * @cython.wraparound(False)
   38904             :  */
   38905          42 :       __pyx_t_7 = __pyx_v_x;
   38906          42 :       __pyx_t_8 = __pyx_v_y;
   38907          42 :       __pyx_t_9 = (*((__pyx_t_double_complex *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )));
   38908          42 :       __pyx_t_10 = __pyx_PyComplex_FromComplex(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 902, __pyx_L1_error)
   38909          42 :       __Pyx_GOTREF(__pyx_t_10);
   38910          42 :       __pyx_t_11 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_10, 0); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 902, __pyx_L1_error)
   38911          84 :       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   38912             :     }
   38913             :   }
   38914             : 
   38915             :   /* "_csparsetools.pyx":887
   38916             :  *             j = j_idx[x,y]
   38917             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   38918             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   38919             :  * @cython.wraparound(False)
   38920             :  * def _lil_fancy_set_int64_complex128(cnp.npy_intp M, cnp.npy_intp N,
   38921             :  */
   38922             : 
   38923             :   /* function exit code */
   38924          14 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   38925          14 :   goto __pyx_L0;
   38926           0 :   __pyx_L1_error:;
   38927           0 :   __Pyx_XDECREF(__pyx_t_10);
   38928           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_complex128", __pyx_clineno, __pyx_lineno, __pyx_filename);
   38929           0 :   __pyx_r = NULL;
   38930          14 :   __pyx_L0:;
   38931          14 :   __Pyx_XGIVEREF(__pyx_r);
   38932          14 :   __Pyx_RefNannyFinishContext();
   38933          14 :   return __pyx_r;
   38934             : }
   38935             : 
   38936             : /* "_csparsetools.pyx":903
   38937             :  *             j = j_idx[x,y]
   38938             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   38939             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   38940             :  * @cython.wraparound(False)
   38941             :  * def _lil_fancy_set_int64_clongdouble(cnp.npy_intp M, cnp.npy_intp N,
   38942             :  */
   38943             : 
   38944             : /* Python wrapper */
   38945             : static PyObject *__pyx_pw_13_csparsetools_109_lil_fancy_set_int64_clongdouble(PyObject *__pyx_self, 
   38946             : #if CYTHON_METH_FASTCALL
   38947             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   38948             : #else
   38949             : PyObject *__pyx_args, PyObject *__pyx_kwds
   38950             : #endif
   38951             : ); /*proto*/
   38952             : static PyMethodDef __pyx_mdef_13_csparsetools_109_lil_fancy_set_int64_clongdouble = {"_lil_fancy_set_int64_clongdouble", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_13_csparsetools_109_lil_fancy_set_int64_clongdouble, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
   38953          14 : static PyObject *__pyx_pw_13_csparsetools_109_lil_fancy_set_int64_clongdouble(PyObject *__pyx_self, 
   38954             : #if CYTHON_METH_FASTCALL
   38955             : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
   38956             : #else
   38957             : PyObject *__pyx_args, PyObject *__pyx_kwds
   38958             : #endif
   38959             : ) {
   38960          14 :   npy_intp __pyx_v_M;
   38961          14 :   npy_intp __pyx_v_N;
   38962          14 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   38963          14 :   __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } };
   38964          14 :   __Pyx_memviewslice __pyx_v_i_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   38965          14 :   __Pyx_memviewslice __pyx_v_j_idx = { 0, 0, { 0 }, { 0 }, { 0 } };
   38966          14 :   __Pyx_memviewslice __pyx_v_values = { 0, 0, { 0 }, { 0 }, { 0 } };
   38967             :   #if !CYTHON_METH_FASTCALL
   38968             :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   38969             :   #endif
   38970          14 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   38971          14 :   PyObject* values[7] = {0,0,0,0,0,0,0};
   38972          14 :   int __pyx_lineno = 0;
   38973          14 :   const char *__pyx_filename = NULL;
   38974          14 :   int __pyx_clineno = 0;
   38975          14 :   PyObject *__pyx_r = 0;
   38976             :   __Pyx_RefNannyDeclarations
   38977          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_clongdouble (wrapper)", 0);
   38978             :   #if !CYTHON_METH_FASTCALL
   38979             :   #if CYTHON_ASSUME_SAFE_MACROS
   38980             :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   38981             :   #else
   38982             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   38983             :   #endif
   38984             :   #endif
   38985          14 :   __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
   38986             :   {
   38987          14 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_data,&__pyx_n_s_i_idx,&__pyx_n_s_j_idx,&__pyx_n_s_values,0};
   38988          14 :     if (__pyx_kwds) {
   38989           0 :       Py_ssize_t kw_args;
   38990           0 :       switch (__pyx_nargs) {
   38991           0 :         case  7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   38992           0 :         CYTHON_FALLTHROUGH;
   38993           0 :         case  6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   38994           0 :         CYTHON_FALLTHROUGH;
   38995           0 :         case  5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   38996           0 :         CYTHON_FALLTHROUGH;
   38997           0 :         case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   38998           0 :         CYTHON_FALLTHROUGH;
   38999           0 :         case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   39000           0 :         CYTHON_FALLTHROUGH;
   39001           0 :         case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   39002           0 :         CYTHON_FALLTHROUGH;
   39003           0 :         case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   39004           0 :         CYTHON_FALLTHROUGH;
   39005           0 :         case  0: break;
   39006           0 :         default: goto __pyx_L5_argtuple_error;
   39007             :       }
   39008           0 :       kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
   39009           0 :       switch (__pyx_nargs) {
   39010           0 :         case  0:
   39011           0 :         if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   39012           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
   39013           0 :           kw_args--;
   39014             :         }
   39015           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 903, __pyx_L3_error)
   39016           0 :         else goto __pyx_L5_argtuple_error;
   39017           0 :         CYTHON_FALLTHROUGH;
   39018             :         case  1:
   39019           0 :         if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   39020           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
   39021           0 :           kw_args--;
   39022             :         }
   39023           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 903, __pyx_L3_error)
   39024             :         else {
   39025           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_clongdouble", 1, 7, 7, 1); __PYX_ERR(0, 903, __pyx_L3_error)
   39026             :         }
   39027           0 :         CYTHON_FALLTHROUGH;
   39028             :         case  2:
   39029           0 :         if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   39030           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
   39031           0 :           kw_args--;
   39032             :         }
   39033           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 903, __pyx_L3_error)
   39034             :         else {
   39035           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_clongdouble", 1, 7, 7, 2); __PYX_ERR(0, 903, __pyx_L3_error)
   39036             :         }
   39037           0 :         CYTHON_FALLTHROUGH;
   39038             :         case  3:
   39039           0 :         if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_data)) != 0)) {
   39040           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[3]);
   39041           0 :           kw_args--;
   39042             :         }
   39043           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 903, __pyx_L3_error)
   39044             :         else {
   39045           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_clongdouble", 1, 7, 7, 3); __PYX_ERR(0, 903, __pyx_L3_error)
   39046             :         }
   39047           0 :         CYTHON_FALLTHROUGH;
   39048             :         case  4:
   39049           0 :         if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_i_idx)) != 0)) {
   39050           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[4]);
   39051           0 :           kw_args--;
   39052             :         }
   39053           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 903, __pyx_L3_error)
   39054             :         else {
   39055           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_clongdouble", 1, 7, 7, 4); __PYX_ERR(0, 903, __pyx_L3_error)
   39056             :         }
   39057           0 :         CYTHON_FALLTHROUGH;
   39058             :         case  5:
   39059           0 :         if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_idx)) != 0)) {
   39060           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[5]);
   39061           0 :           kw_args--;
   39062             :         }
   39063           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 903, __pyx_L3_error)
   39064             :         else {
   39065           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_clongdouble", 1, 7, 7, 5); __PYX_ERR(0, 903, __pyx_L3_error)
   39066             :         }
   39067           0 :         CYTHON_FALLTHROUGH;
   39068             :         case  6:
   39069           0 :         if (likely((values[6] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_values)) != 0)) {
   39070           0 :           (void)__Pyx_Arg_NewRef_FASTCALL(values[6]);
   39071           0 :           kw_args--;
   39072             :         }
   39073           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 903, __pyx_L3_error)
   39074             :         else {
   39075           0 :           __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_clongdouble", 1, 7, 7, 6); __PYX_ERR(0, 903, __pyx_L3_error)
   39076             :         }
   39077             :       }
   39078           0 :       if (unlikely(kw_args > 0)) {
   39079           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   39080           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_lil_fancy_set_int64_clongdouble") < 0)) __PYX_ERR(0, 903, __pyx_L3_error)
   39081             :       }
   39082          14 :     } else if (unlikely(__pyx_nargs != 7)) {
   39083           0 :       goto __pyx_L5_argtuple_error;
   39084             :     } else {
   39085          14 :       values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
   39086          14 :       values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
   39087          14 :       values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
   39088          14 :       values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
   39089          14 :       values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4);
   39090          14 :       values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5);
   39091          14 :       values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6);
   39092             :     }
   39093          14 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 905, __pyx_L3_error)
   39094          14 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 905, __pyx_L3_error)
   39095          14 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 906, __pyx_L3_error)
   39096          14 :     __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 907, __pyx_L3_error)
   39097          14 :     __pyx_v_i_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_i_idx.memview)) __PYX_ERR(0, 908, __pyx_L3_error)
   39098          14 :     __pyx_v_j_idx = __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_j_idx.memview)) __PYX_ERR(0, 909, __pyx_L3_error)
   39099          14 :     __pyx_v_values = __Pyx_PyObject_to_MemoryviewSlice_dsds___pyx_t_long_double_complex(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_values.memview)) __PYX_ERR(0, 910, __pyx_L3_error)
   39100             :   }
   39101          14 :   goto __pyx_L6_skip;
   39102           0 :   __pyx_L5_argtuple_error:;
   39103           0 :   __Pyx_RaiseArgtupleInvalid("_lil_fancy_set_int64_clongdouble", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 903, __pyx_L3_error)
   39104          14 :   __pyx_L6_skip:;
   39105          14 :   goto __pyx_L4_argument_unpacking_done;
   39106           0 :   __pyx_L3_error:;
   39107             :   {
   39108           0 :     Py_ssize_t __pyx_temp;
   39109           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   39110             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   39111             :     }
   39112             :   }
   39113           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   39114           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   39115           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   39116           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   39117           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   39118           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_clongdouble", __pyx_clineno, __pyx_lineno, __pyx_filename);
   39119           0 :   __Pyx_RefNannyFinishContext();
   39120           0 :   return NULL;
   39121          14 :   __pyx_L4_argument_unpacking_done:;
   39122          14 :   __pyx_r = __pyx_pf_13_csparsetools_108_lil_fancy_set_int64_clongdouble(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i_idx, __pyx_v_j_idx, __pyx_v_values);
   39123             : 
   39124             :   /* function exit code */
   39125          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   39126          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_data, 1);
   39127          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_i_idx, 1);
   39128          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_j_idx, 1);
   39129          14 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_values, 1);
   39130             :   {
   39131          14 :     Py_ssize_t __pyx_temp;
   39132          14 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   39133             :       __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
   39134             :     }
   39135             :   }
   39136             :   __Pyx_RefNannyFinishContext();
   39137             :   return __pyx_r;
   39138             : }
   39139             : 
   39140          14 : static PyObject *__pyx_pf_13_csparsetools_108_lil_fancy_set_int64_clongdouble(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_data, __Pyx_memviewslice __pyx_v_i_idx, __Pyx_memviewslice __pyx_v_j_idx, __Pyx_memviewslice __pyx_v_values) {
   39141          14 :   npy_intp __pyx_v_x;
   39142          14 :   npy_intp __pyx_v_y;
   39143          14 :   npy_intp __pyx_v_i;
   39144          14 :   npy_intp __pyx_v_j;
   39145          14 :   PyObject *__pyx_r = NULL;
   39146             :   __Pyx_RefNannyDeclarations
   39147          14 :   Py_ssize_t __pyx_t_1;
   39148          14 :   Py_ssize_t __pyx_t_2;
   39149          14 :   npy_intp __pyx_t_3;
   39150          14 :   Py_ssize_t __pyx_t_4;
   39151          14 :   Py_ssize_t __pyx_t_5;
   39152          14 :   npy_intp __pyx_t_6;
   39153          14 :   Py_ssize_t __pyx_t_7;
   39154          14 :   Py_ssize_t __pyx_t_8;
   39155          14 :   __pyx_t_long_double_complex __pyx_t_9;
   39156          14 :   PyObject *__pyx_t_10 = NULL;
   39157          14 :   int __pyx_t_11;
   39158          14 :   int __pyx_lineno = 0;
   39159          14 :   const char *__pyx_filename = NULL;
   39160          14 :   int __pyx_clineno = 0;
   39161          14 :   __Pyx_RefNannySetupContext("_lil_fancy_set_int64_clongdouble", 1);
   39162             : 
   39163             :   /* "_csparsetools.pyx":914
   39164             :  *     cdef cnp.npy_intp i, j
   39165             :  * 
   39166             :  *     for x in range(i_idx.shape[0]):             # <<<<<<<<<<<<<<
   39167             :  *         for y in range(i_idx.shape[1]):
   39168             :  *             i = i_idx[x,y]
   39169             :  */
   39170          14 :   __pyx_t_1 = (__pyx_v_i_idx.shape[0]);
   39171          14 :   __pyx_t_2 = __pyx_t_1;
   39172          35 :   for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
   39173          21 :     __pyx_v_x = __pyx_t_3;
   39174             : 
   39175             :     /* "_csparsetools.pyx":915
   39176             :  * 
   39177             :  *     for x in range(i_idx.shape[0]):
   39178             :  *         for y in range(i_idx.shape[1]):             # <<<<<<<<<<<<<<
   39179             :  *             i = i_idx[x,y]
   39180             :  *             j = j_idx[x,y]
   39181             :  */
   39182          21 :     __pyx_t_4 = (__pyx_v_i_idx.shape[1]);
   39183          21 :     __pyx_t_5 = __pyx_t_4;
   39184          63 :     for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
   39185          42 :       __pyx_v_y = __pyx_t_6;
   39186             : 
   39187             :       /* "_csparsetools.pyx":916
   39188             :  *     for x in range(i_idx.shape[0]):
   39189             :  *         for y in range(i_idx.shape[1]):
   39190             :  *             i = i_idx[x,y]             # <<<<<<<<<<<<<<
   39191             :  *             j = j_idx[x,y]
   39192             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   39193             :  */
   39194          42 :       __pyx_t_7 = __pyx_v_x;
   39195          42 :       __pyx_t_8 = __pyx_v_y;
   39196          42 :       __pyx_v_i = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_i_idx.data + __pyx_t_7 * __pyx_v_i_idx.strides[0]) ) + __pyx_t_8 * __pyx_v_i_idx.strides[1]) )));
   39197             : 
   39198             :       /* "_csparsetools.pyx":917
   39199             :  *         for y in range(i_idx.shape[1]):
   39200             :  *             i = i_idx[x,y]
   39201             :  *             j = j_idx[x,y]             # <<<<<<<<<<<<<<
   39202             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   39203             :  * 
   39204             :  */
   39205          42 :       __pyx_t_8 = __pyx_v_x;
   39206          42 :       __pyx_t_7 = __pyx_v_y;
   39207          42 :       __pyx_v_j = (*((npy_int64 *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_j_idx.data + __pyx_t_8 * __pyx_v_j_idx.strides[0]) ) + __pyx_t_7 * __pyx_v_j_idx.strides[1]) )));
   39208             : 
   39209             :       /* "_csparsetools.pyx":918
   39210             :  *             i = i_idx[x,y]
   39211             :  *             j = j_idx[x,y]
   39212             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])             # <<<<<<<<<<<<<<
   39213             :  * 
   39214             :  * 
   39215             :  */
   39216          42 :       __pyx_t_7 = __pyx_v_x;
   39217          42 :       __pyx_t_8 = __pyx_v_y;
   39218          42 :       __pyx_t_9 = (*((__pyx_t_long_double_complex *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_values.data + __pyx_t_7 * __pyx_v_values.strides[0]) ) + __pyx_t_8 * __pyx_v_values.strides[1]) )));
   39219          42 :       __pyx_t_10 = __pyx_PyComplex_FromComplex(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 918, __pyx_L1_error)
   39220          42 :       __Pyx_GOTREF(__pyx_t_10);
   39221          42 :       __pyx_t_11 = __pyx_f_13_csparsetools_lil_insert(__pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_data, __pyx_v_i, __pyx_v_j, __pyx_t_10, 0); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 918, __pyx_L1_error)
   39222          84 :       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   39223             :     }
   39224             :   }
   39225             : 
   39226             :   /* "_csparsetools.pyx":903
   39227             :  *             j = j_idx[x,y]
   39228             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   39229             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   39230             :  * @cython.wraparound(False)
   39231             :  * def _lil_fancy_set_int64_clongdouble(cnp.npy_intp M, cnp.npy_intp N,
   39232             :  */
   39233             : 
   39234             :   /* function exit code */
   39235          14 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   39236          14 :   goto __pyx_L0;
   39237           0 :   __pyx_L1_error:;
   39238           0 :   __Pyx_XDECREF(__pyx_t_10);
   39239           0 :   __Pyx_AddTraceback("_csparsetools._lil_fancy_set_int64_clongdouble", __pyx_clineno, __pyx_lineno, __pyx_filename);
   39240           0 :   __pyx_r = NULL;
   39241          14 :   __pyx_L0:;
   39242          14 :   __Pyx_XGIVEREF(__pyx_r);
   39243          14 :   __Pyx_RefNannyFinishContext();
   39244          14 :   return __pyx_r;
   39245             : }
   39246             : 
   39247             : /* "_csparsetools.pyx":958
   39248             :  * 
   39249             :  * 
   39250             :  * def lil_get_row_ranges(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   39251             :  *                        const obj_fused[:] rows, const obj_fused[:] datas,
   39252             :  *                        object[:] new_rows, object[:] new_datas,
   39253             :  */
   39254             : 
   39255             : /* Python wrapper */
   39256             : static PyObject *__pyx_pw_13_csparsetools_111lil_get_row_ranges(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
   39257             : PyDoc_STRVAR(__pyx_doc_13_csparsetools_110lil_get_row_ranges, "\n    Column-slicing fast path for LIL matrices.\n    Extracts values from rows/datas and inserts in to\n    new_rows/new_datas.\n    Parameters\n    ----------\n    M, N\n         Shape of input array\n    rows, datas\n         LIL data for input array, shape (M, N)\n    new_rows, new_datas\n         LIL data for output array, shape (len(irows), nj)\n    irows : iterator\n         Iterator yielding row indices\n    j_start, j_stop, j_stride\n         Column range(j_start, j_stop, j_stride) to get\n    nj : int\n         Number of columns corresponding to j_* variables.\n    ");
   39258             : static PyMethodDef __pyx_mdef_13_csparsetools_111lil_get_row_ranges = {"lil_get_row_ranges", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_13_csparsetools_111lil_get_row_ranges, METH_VARARGS|METH_KEYWORDS, __pyx_doc_13_csparsetools_110lil_get_row_ranges};
   39259       26446 : static PyObject *__pyx_pw_13_csparsetools_111lil_get_row_ranges(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
   39260       26446 :   PyObject *__pyx_v_signatures = 0;
   39261       26446 :   PyObject *__pyx_v_args = 0;
   39262       26446 :   PyObject *__pyx_v_kwargs = 0;
   39263       26446 :   CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
   39264       26446 :   PyObject *__pyx_v__fused_sigindex = 0;
   39265       26446 :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   39266       26446 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   39267       26446 :   PyObject* values[5] = {0,0,0,0,0};
   39268       26446 :   int __pyx_lineno = 0;
   39269       26446 :   const char *__pyx_filename = NULL;
   39270       26446 :   int __pyx_clineno = 0;
   39271       26446 :   PyObject *__pyx_r = 0;
   39272             :   __Pyx_RefNannyDeclarations
   39273       26446 :   __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
   39274             :   #if CYTHON_ASSUME_SAFE_MACROS
   39275       26446 :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   39276             :   #else
   39277             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   39278             :   #endif
   39279       26446 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   39280             :   {
   39281       26446 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
   39282       26446 :     __pyx_defaults1 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self);
   39283       26446 :     values[4] = __Pyx_Arg_NewRef_VARARGS(__pyx_dynamic_args->__pyx_arg__fused_sigindex);
   39284       26446 :     if (__pyx_kwds) {
   39285           0 :       Py_ssize_t kw_args;
   39286           0 :       switch (__pyx_nargs) {
   39287           0 :         case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
   39288           0 :         CYTHON_FALLTHROUGH;
   39289           0 :         case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
   39290           0 :         CYTHON_FALLTHROUGH;
   39291           0 :         case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
   39292           0 :         CYTHON_FALLTHROUGH;
   39293           0 :         case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
   39294           0 :         CYTHON_FALLTHROUGH;
   39295           0 :         case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
   39296           0 :         CYTHON_FALLTHROUGH;
   39297           0 :         case  0: break;
   39298           0 :         default: goto __pyx_L5_argtuple_error;
   39299             :       }
   39300           0 :       kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
   39301           0 :       switch (__pyx_nargs) {
   39302           0 :         case  0:
   39303           0 :         if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_signatures)) != 0)) {
   39304           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
   39305           0 :           kw_args--;
   39306             :         }
   39307           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   39308           0 :         else goto __pyx_L5_argtuple_error;
   39309           0 :         CYTHON_FALLTHROUGH;
   39310             :         case  1:
   39311           0 :         if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_args)) != 0)) {
   39312           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
   39313           0 :           kw_args--;
   39314             :         }
   39315           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   39316             :         else {
   39317           0 :           __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 1); __PYX_ERR(0, 958, __pyx_L3_error)
   39318             :         }
   39319           0 :         CYTHON_FALLTHROUGH;
   39320             :         case  2:
   39321           0 :         if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_kwargs)) != 0)) {
   39322           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
   39323           0 :           kw_args--;
   39324             :         }
   39325           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   39326             :         else {
   39327           0 :           __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 2); __PYX_ERR(0, 958, __pyx_L3_error)
   39328             :         }
   39329           0 :         CYTHON_FALLTHROUGH;
   39330             :         case  3:
   39331           0 :         if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_defaults)) != 0)) {
   39332           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[3]);
   39333           0 :           kw_args--;
   39334             :         }
   39335           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   39336             :         else {
   39337           0 :           __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 3); __PYX_ERR(0, 958, __pyx_L3_error)
   39338             :         }
   39339           0 :         CYTHON_FALLTHROUGH;
   39340             :         case  4:
   39341           0 :         if (kw_args > 0) {
   39342           0 :           PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fused_sigindex);
   39343           0 :           if (value) { values[4] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
   39344           0 :           else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   39345             :         }
   39346             :       }
   39347           0 :       if (unlikely(kw_args > 0)) {
   39348           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   39349           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 958, __pyx_L3_error)
   39350             :       }
   39351             :     } else {
   39352       26446 :       switch (__pyx_nargs) {
   39353           0 :         case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
   39354       26446 :         CYTHON_FALLTHROUGH;
   39355       26446 :         case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
   39356       26446 :         values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
   39357       26446 :         values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
   39358       26446 :         values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
   39359       26446 :         break;
   39360           0 :         default: goto __pyx_L5_argtuple_error;
   39361             :       }
   39362             :     }
   39363       26446 :     __pyx_v_signatures = values[0];
   39364       26446 :     __pyx_v_args = values[1];
   39365       26446 :     __pyx_v_kwargs = values[2];
   39366       26446 :     __pyx_v_defaults = values[3];
   39367       26446 :     __pyx_v__fused_sigindex = values[4];
   39368             :   }
   39369       26446 :   goto __pyx_L6_skip;
   39370           0 :   __pyx_L5_argtuple_error:;
   39371           0 :   __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, __pyx_nargs); __PYX_ERR(0, 958, __pyx_L3_error)
   39372       26446 :   __pyx_L6_skip:;
   39373       26446 :   goto __pyx_L4_argument_unpacking_done;
   39374           0 :   __pyx_L3_error:;
   39375             :   {
   39376           0 :     Py_ssize_t __pyx_temp;
   39377           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   39378             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
   39379             :     }
   39380             :   }
   39381           0 :   __Pyx_AddTraceback("_csparsetools.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
   39382           0 :   __Pyx_RefNannyFinishContext();
   39383           0 :   return NULL;
   39384       26446 :   __pyx_L4_argument_unpacking_done:;
   39385       26446 :   __pyx_r = __pyx_pf_13_csparsetools_110lil_get_row_ranges(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults, __pyx_v__fused_sigindex);
   39386             : 
   39387             :   /* function exit code */
   39388             :   {
   39389       26446 :     Py_ssize_t __pyx_temp;
   39390       26446 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   39391             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
   39392             :     }
   39393             :   }
   39394             :   __Pyx_RefNannyFinishContext();
   39395             :   return __pyx_r;
   39396             : }
   39397             : 
   39398       26446 : static PyObject *__pyx_pf_13_csparsetools_110lil_get_row_ranges(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults, PyObject *__pyx_v__fused_sigindex) {
   39399       26446 :   PyObject *__pyx_v_search_list = 0;
   39400       26446 :   PyObject *__pyx_v_sigindex_node = 0;
   39401       26446 :   PyObject *__pyx_v_dest_sig = NULL;
   39402       26446 :   PyTypeObject *__pyx_v_ndarray = 0;
   39403       26446 :   PyObject *__pyx_v_arg_as_memoryview = 0;
   39404       26446 :   __Pyx_memviewslice __pyx_v_memslice;
   39405       26446 :   Py_ssize_t __pyx_v_itemsize;
   39406       26446 :   CYTHON_UNUSED int __pyx_v_dtype_signed;
   39407       26446 :   Py_UCS4 __pyx_v_kind;
   39408       26446 :   PyObject *__pyx_v_arg = NULL;
   39409       26446 :   PyObject *__pyx_v_dtype = NULL;
   39410       26446 :   PyObject *__pyx_v_arg_base = NULL;
   39411       26446 :   PyObject *__pyx_v_sig = NULL;
   39412       26446 :   PyObject *__pyx_v_sig_series = NULL;
   39413       26446 :   PyObject *__pyx_v_last_type = NULL;
   39414       26446 :   PyObject *__pyx_v_sig_type = NULL;
   39415       26446 :   PyObject *__pyx_v_sigindex_matches = NULL;
   39416       26446 :   PyObject *__pyx_v_sigindex_candidates = NULL;
   39417       26446 :   PyObject *__pyx_v_dst_type = NULL;
   39418       26446 :   PyObject *__pyx_v_found_matches = NULL;
   39419       26446 :   PyObject *__pyx_v_found_candidates = NULL;
   39420       26446 :   PyObject *__pyx_v_sn = NULL;
   39421       26446 :   PyObject *__pyx_v_type_match = NULL;
   39422       26446 :   PyObject *__pyx_v_candidates = NULL;
   39423       26446 :   PyObject *__pyx_r = NULL;
   39424             :   __Pyx_RefNannyDeclarations
   39425       26446 :   PyObject *__pyx_t_1 = NULL;
   39426       26446 :   int __pyx_t_2;
   39427       26446 :   int __pyx_t_3;
   39428       26446 :   int __pyx_t_4;
   39429       26446 :   Py_ssize_t __pyx_t_5;
   39430       26446 :   PyObject *__pyx_t_6 = NULL;
   39431       26446 :   long __pyx_t_7;
   39432       26446 :   PyObject *__pyx_t_8 = NULL;
   39433       26446 :   PyObject *__pyx_t_9 = NULL;
   39434       26446 :   PyObject *__pyx_t_10 = NULL;
   39435       26446 :   int __pyx_t_11;
   39436       26446 :   __Pyx_memviewslice __pyx_t_12;
   39437       26446 :   PyObject *__pyx_t_13 = NULL;
   39438       26446 :   Py_ssize_t __pyx_t_14;
   39439       26446 :   int __pyx_t_15;
   39440       26446 :   PyObject *__pyx_t_16 = NULL;
   39441       26446 :   PyObject *__pyx_t_17 = NULL;
   39442       26446 :   unsigned int __pyx_t_18;
   39443       26446 :   Py_ssize_t __pyx_t_19;
   39444       26446 :   int __pyx_t_20;
   39445       26446 :   int __pyx_lineno = 0;
   39446       26446 :   const char *__pyx_filename = NULL;
   39447       26446 :   int __pyx_clineno = 0;
   39448       26446 :   __Pyx_RefNannySetupContext("lil_get_row_ranges", 0);
   39449       26446 :   __Pyx_INCREF(__pyx_v_kwargs);
   39450       26446 :   __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
   39451       26446 :   __Pyx_GOTREF(__pyx_t_1);
   39452       26446 :   __Pyx_INCREF(Py_None);
   39453       26446 :   __Pyx_GIVEREF(Py_None);
   39454       26446 :   if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, Py_None)) __PYX_ERR(0, 958, __pyx_L1_error);
   39455       26446 :   __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
   39456       26446 :   __pyx_t_1 = 0;
   39457       26446 :   __pyx_t_3 = (__pyx_v_kwargs != Py_None);
   39458       26446 :   if (__pyx_t_3) {
   39459           0 :   } else {
   39460       26446 :     __pyx_t_2 = __pyx_t_3;
   39461       26446 :     goto __pyx_L4_bool_binop_done;
   39462             :   }
   39463           0 :   __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   39464           0 :   __pyx_t_4 = (!__pyx_t_3);
   39465           0 :   __pyx_t_2 = __pyx_t_4;
   39466       26446 :   __pyx_L4_bool_binop_done:;
   39467       26446 :   if (__pyx_t_2) {
   39468           0 :     __Pyx_INCREF(Py_None);
   39469           0 :     __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
   39470             :   }
   39471       26446 :   __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
   39472       26446 :   __Pyx_GOTREF(__pyx_t_1);
   39473       26446 :   __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
   39474       26446 :   __pyx_t_1 = 0;
   39475       26446 :   __pyx_v_itemsize = -1L;
   39476       26446 :   if (unlikely(__pyx_v_args == Py_None)) {
   39477           0 :     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   39478           0 :     __PYX_ERR(0, 958, __pyx_L1_error)
   39479             :   }
   39480       26446 :   __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 958, __pyx_L1_error)
   39481       26446 :   __pyx_t_2 = (2 < __pyx_t_5);
   39482       26446 :   if (__pyx_t_2) {
   39483       26446 :     if (unlikely(__pyx_v_args == Py_None)) {
   39484             :       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   39485             :       __PYX_ERR(0, 958, __pyx_L1_error)
   39486             :     }
   39487       26446 :     __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
   39488       26446 :     __Pyx_GOTREF(__pyx_t_1);
   39489       26446 :     __pyx_v_arg = __pyx_t_1;
   39490       26446 :     __pyx_t_1 = 0;
   39491       26446 :     goto __pyx_L6;
   39492             :   }
   39493           0 :   __pyx_t_4 = (__pyx_v_kwargs != Py_None);
   39494           0 :   if (__pyx_t_4) {
   39495           0 :   } else {
   39496           0 :     __pyx_t_2 = __pyx_t_4;
   39497           0 :     goto __pyx_L7_bool_binop_done;
   39498             :   }
   39499           0 :   if (unlikely(__pyx_v_kwargs == Py_None)) {
   39500             :     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
   39501             :     __PYX_ERR(0, 958, __pyx_L1_error)
   39502             :   }
   39503           0 :   __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_rows, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   39504             :   __pyx_t_2 = __pyx_t_4;
   39505           0 :   __pyx_L7_bool_binop_done:;
   39506           0 :   if (likely(__pyx_t_2)) {
   39507           0 :     if (unlikely(__pyx_v_kwargs == Py_None)) {
   39508           0 :       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   39509           0 :       __PYX_ERR(0, 958, __pyx_L1_error)
   39510             :     }
   39511           0 :     __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_rows); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
   39512           0 :     __Pyx_GOTREF(__pyx_t_1);
   39513           0 :     __pyx_v_arg = __pyx_t_1;
   39514           0 :     __pyx_t_1 = 0;
   39515           0 :     goto __pyx_L6;
   39516             :   }
   39517             :   /*else*/ {
   39518           0 :     if (unlikely(__pyx_v_args == Py_None)) {
   39519             :       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   39520             :       __PYX_ERR(0, 958, __pyx_L1_error)
   39521             :     }
   39522           0 :     __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 958, __pyx_L1_error)
   39523           0 :     __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
   39524           0 :     __Pyx_GOTREF(__pyx_t_1);
   39525           0 :     __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
   39526           0 :     __Pyx_GOTREF(__pyx_t_6);
   39527           0 :     __Pyx_INCREF(__pyx_int_11);
   39528           0 :     __Pyx_GIVEREF(__pyx_int_11);
   39529           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_11)) __PYX_ERR(0, 958, __pyx_L1_error);
   39530           0 :     __Pyx_INCREF(__pyx_n_s_s);
   39531           0 :     __Pyx_GIVEREF(__pyx_n_s_s);
   39532           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s)) __PYX_ERR(0, 958, __pyx_L1_error);
   39533           0 :     __Pyx_GIVEREF(__pyx_t_1);
   39534           0 :     if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error);
   39535           0 :     __pyx_t_1 = 0;
   39536           0 :     __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
   39537           0 :     __Pyx_GOTREF(__pyx_t_1);
   39538           0 :     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   39539           0 :     __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
   39540           0 :     __Pyx_GOTREF(__pyx_t_6);
   39541           0 :     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   39542           0 :     __Pyx_Raise(__pyx_t_6, 0, 0, 0);
   39543           0 :     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   39544           0 :     __PYX_ERR(0, 958, __pyx_L1_error)
   39545             :   }
   39546       26446 :   __pyx_L6:;
   39547       26446 :   while (1) {
   39548       26446 :     __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
   39549       26446 :     if (__pyx_t_2) {
   39550       26446 :       __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
   39551       26446 :       if (__pyx_t_2) {
   39552       26446 :         __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
   39553       26446 :         __Pyx_GOTREF(__pyx_t_6);
   39554       26446 :         __pyx_v_dtype = __pyx_t_6;
   39555       26446 :         __pyx_t_6 = 0;
   39556       26446 :         goto __pyx_L12;
   39557             :       }
   39558           0 :       __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
   39559           0 :       if (__pyx_t_2) {
   39560           0 :         __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
   39561           0 :         __Pyx_GOTREF(__pyx_t_6);
   39562           0 :         __pyx_v_arg_base = __pyx_t_6;
   39563           0 :         __pyx_t_6 = 0;
   39564           0 :         __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
   39565           0 :         if (__pyx_t_2) {
   39566           0 :           __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
   39567           0 :           __Pyx_GOTREF(__pyx_t_6);
   39568           0 :           __pyx_v_dtype = __pyx_t_6;
   39569           0 :           __pyx_t_6 = 0;
   39570           0 :           goto __pyx_L13;
   39571             :         }
   39572             :         /*else*/ {
   39573           0 :           __Pyx_INCREF(Py_None);
   39574             :           __pyx_v_dtype = Py_None;
   39575             :         }
   39576           0 :         __pyx_L13:;
   39577           0 :         goto __pyx_L12;
   39578             :       }
   39579             :       /*else*/ {
   39580           0 :         __Pyx_INCREF(Py_None);
   39581             :         __pyx_v_dtype = Py_None;
   39582             :       }
   39583       26446 :       __pyx_L12:;
   39584       26446 :       __pyx_v_itemsize = -1L;
   39585       26446 :       __pyx_t_2 = (__pyx_v_dtype != Py_None);
   39586       26446 :       if (__pyx_t_2) {
   39587       26446 :         __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
   39588       26446 :         __Pyx_GOTREF(__pyx_t_6);
   39589       26446 :         __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L1_error)
   39590       26446 :         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   39591       26446 :         __pyx_v_itemsize = __pyx_t_5;
   39592       26446 :         __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
   39593       26446 :         __Pyx_GOTREF(__pyx_t_6);
   39594       26446 :         __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 958, __pyx_L1_error)
   39595       26446 :         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   39596       26446 :         __pyx_v_kind = __pyx_t_7;
   39597       26446 :         __pyx_v_dtype_signed = (__pyx_v_kind == 0x69);
   39598       26446 :         switch (__pyx_v_kind) {
   39599             :           case 0x69:
   39600             :           case 0x75:
   39601             :           break;
   39602           0 :           case 0x66:
   39603           0 :           __pyx_t_4 = ((sizeof(double const )) == __pyx_v_itemsize);
   39604           0 :           if (__pyx_t_4) {
   39605           0 :           } else {
   39606           0 :             __pyx_t_2 = __pyx_t_4;
   39607           0 :             goto __pyx_L16_bool_binop_done;
   39608             :           }
   39609           0 :           __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
   39610           0 :           __Pyx_GOTREF(__pyx_t_6);
   39611           0 :           __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L1_error)
   39612           0 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   39613           0 :           __pyx_t_4 = (((Py_ssize_t)__pyx_t_5) == 1);
   39614           0 :           __pyx_t_2 = __pyx_t_4;
   39615           0 :           __pyx_L16_bool_binop_done:;
   39616           0 :           if (__pyx_t_2) {
   39617           0 :             if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   39618           0 :             goto __pyx_L10_break;
   39619             :           }
   39620             :           break;
   39621             :           case 99:
   39622             :           break;
   39623             :           case 79:
   39624             :           break;
   39625             :           default: break;
   39626             :         }
   39627             :       }
   39628             :     }
   39629       26446 :     __pyx_t_2 = (__pyx_v_arg == Py_None);
   39630       26446 :     if (__pyx_t_2) {
   39631           0 :       if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   39632           0 :       goto __pyx_L10_break;
   39633             :     }
   39634             :     {
   39635       26446 :       __Pyx_PyThreadState_declare
   39636       26446 :       __Pyx_PyThreadState_assign
   39637       26446 :       __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
   39638       26446 :       __Pyx_XGOTREF(__pyx_t_8);
   39639       26446 :       __Pyx_XGOTREF(__pyx_t_9);
   39640       26446 :       __Pyx_XGOTREF(__pyx_t_10);
   39641             :       /*try:*/ {
   39642       26446 :         __pyx_t_6 = PyMemoryView_FromObject(__pyx_v_arg); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L19_error)
   39643       26446 :         __Pyx_GOTREF(__pyx_t_6);
   39644       26446 :         __pyx_v_arg_as_memoryview = ((PyObject*)__pyx_t_6);
   39645       26446 :         __pyx_t_6 = 0;
   39646             :       }
   39647             :       /*else:*/ {
   39648       26446 :         __pyx_t_4 = (__pyx_v_itemsize == -1L);
   39649       26446 :         if (!__pyx_t_4) {
   39650       26446 :           goto __pyx_L30_next_or;
   39651             :         } else {
   39652           0 :         }
   39653           0 :         __pyx_t_5 = __Pyx_PyMemoryView_Get_itemsize(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L21_except_error)
   39654           0 :         __pyx_t_4 = (__pyx_t_5 == (sizeof(void *)));
   39655           0 :         if (!__pyx_t_4) {
   39656             :         } else {
   39657           0 :           goto __pyx_L29_next_and;
   39658             :         }
   39659       26446 :         __pyx_L30_next_or:;
   39660       26446 :         __pyx_t_4 = (__pyx_v_itemsize == (sizeof(void *)));
   39661       26446 :         if (__pyx_t_4) {
   39662             :         } else {
   39663           0 :           __pyx_t_2 = __pyx_t_4;
   39664           0 :           goto __pyx_L28_bool_binop_done;
   39665             :         }
   39666       26446 :         __pyx_L29_next_and:;
   39667       26446 :         __pyx_t_11 = __Pyx_PyMemoryView_Get_ndim(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_11 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L21_except_error)
   39668       26446 :         __pyx_t_4 = (__pyx_t_11 == 1);
   39669       26446 :         __pyx_t_2 = __pyx_t_4;
   39670       26446 :         __pyx_L28_bool_binop_done:;
   39671       26446 :         if (__pyx_t_2) {
   39672       26446 :           if ((CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION == 2)) {
   39673             :             __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg, 0); 
   39674             :             __pyx_v_memslice = __pyx_t_12;
   39675             :             goto __pyx_L32;
   39676             :           }
   39677             :           /*else*/ {
   39678       26446 :             __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg_as_memoryview, 0); 
   39679       26446 :             __pyx_v_memslice = __pyx_t_12;
   39680             :           }
   39681       26446 :           __pyx_L32:;
   39682       26446 :           __pyx_t_2 = (__pyx_v_memslice.memview != 0);
   39683       26446 :           if (__pyx_t_2) {
   39684       26446 :             __PYX_XCLEAR_MEMVIEW((&__pyx_v_memslice), 1); 
   39685       26446 :             if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 958, __pyx_L21_except_error)
   39686       26446 :             goto __pyx_L24_try_break;
   39687             :           }
   39688             :           /*else*/ {
   39689           0 :             PyErr_Clear(); 
   39690             :           }
   39691             :         }
   39692           0 :         __pyx_t_4 = (__pyx_v_itemsize == -1L);
   39693           0 :         if (!__pyx_t_4) {
   39694           0 :           goto __pyx_L37_next_or;
   39695             :         } else {
   39696           0 :         }
   39697           0 :         __pyx_t_5 = __Pyx_PyMemoryView_Get_itemsize(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L21_except_error)
   39698           0 :         __pyx_t_4 = (__pyx_t_5 == (sizeof(double const )));
   39699           0 :         if (!__pyx_t_4) {
   39700             :         } else {
   39701           0 :           goto __pyx_L36_next_and;
   39702             :         }
   39703           0 :         __pyx_L37_next_or:;
   39704           0 :         __pyx_t_4 = (__pyx_v_itemsize == (sizeof(double const )));
   39705           0 :         if (__pyx_t_4) {
   39706             :         } else {
   39707           0 :           __pyx_t_2 = __pyx_t_4;
   39708           0 :           goto __pyx_L35_bool_binop_done;
   39709             :         }
   39710           0 :         __pyx_L36_next_and:;
   39711           0 :         __pyx_t_11 = __Pyx_PyMemoryView_Get_ndim(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_11 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L21_except_error)
   39712           0 :         __pyx_t_4 = (__pyx_t_11 == 1);
   39713           0 :         __pyx_t_2 = __pyx_t_4;
   39714           0 :         __pyx_L35_bool_binop_done:;
   39715           0 :         if (__pyx_t_2) {
   39716           0 :           __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_ds_double__const__(__pyx_v_arg_as_memoryview, 0); 
   39717           0 :           __pyx_v_memslice = __pyx_t_12;
   39718           0 :           __pyx_t_2 = (__pyx_v_memslice.memview != 0);
   39719           0 :           if (__pyx_t_2) {
   39720           0 :             __PYX_XCLEAR_MEMVIEW((&__pyx_v_memslice), 1); 
   39721           0 :             if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 958, __pyx_L21_except_error)
   39722           0 :             goto __pyx_L24_try_break;
   39723             :           }
   39724             :           /*else*/ {
   39725           0 :             PyErr_Clear(); 
   39726             :           }
   39727             :         }
   39728             :       }
   39729           0 :       __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
   39730           0 :       __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
   39731           0 :       __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
   39732           0 :       goto __pyx_L26_try_end;
   39733           0 :       __pyx_L19_error:;
   39734           0 :       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
   39735           0 :       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
   39736           0 :       __pyx_t_11 = __Pyx_PyErr_ExceptionMatches2(__pyx_builtin_ValueError, __pyx_builtin_TypeError);
   39737           0 :       if (__pyx_t_11) {
   39738           0 :         __Pyx_AddTraceback("_csparsetools.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
   39739           0 :         if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_13) < 0) __PYX_ERR(0, 958, __pyx_L21_except_error)
   39740           0 :         __Pyx_XGOTREF(__pyx_t_6);
   39741           0 :         __Pyx_XGOTREF(__pyx_t_1);
   39742           0 :         __Pyx_XGOTREF(__pyx_t_13);
   39743           0 :         __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
   39744           0 :         __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
   39745           0 :         __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
   39746           0 :         goto __pyx_L20_exception_handled;
   39747             :       }
   39748           0 :       goto __pyx_L21_except_error;
   39749           0 :       __pyx_L21_except_error:;
   39750           0 :       __Pyx_XGIVEREF(__pyx_t_8);
   39751           0 :       __Pyx_XGIVEREF(__pyx_t_9);
   39752           0 :       __Pyx_XGIVEREF(__pyx_t_10);
   39753           0 :       __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
   39754           0 :       goto __pyx_L1_error;
   39755       26446 :       __pyx_L24_try_break:;
   39756       26446 :       __Pyx_XGIVEREF(__pyx_t_8);
   39757       26446 :       __Pyx_XGIVEREF(__pyx_t_9);
   39758       26446 :       __Pyx_XGIVEREF(__pyx_t_10);
   39759       26446 :       __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
   39760       26446 :       goto __pyx_L10_break;
   39761           0 :       __pyx_L20_exception_handled:;
   39762           0 :       __Pyx_XGIVEREF(__pyx_t_8);
   39763           0 :       __Pyx_XGIVEREF(__pyx_t_9);
   39764           0 :       __Pyx_XGIVEREF(__pyx_t_10);
   39765           0 :       __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
   39766           0 :       __pyx_L26_try_end:;
   39767             :     }
   39768           0 :     if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   39769           0 :     goto __pyx_L10_break;
   39770             :   }
   39771       26446 :   __pyx_L10_break:;
   39772       26446 :   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v__fused_sigindex); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   39773       26446 :   __pyx_t_4 = (!__pyx_t_2);
   39774       26446 :   if (__pyx_t_4) {
   39775           3 :     __pyx_t_5 = 0;
   39776           3 :     if (unlikely(__pyx_v_signatures == Py_None)) {
   39777           0 :       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
   39778           0 :       __PYX_ERR(0, 958, __pyx_L1_error)
   39779             :     }
   39780           6 :     __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_14), (&__pyx_t_11)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
   39781           3 :     __Pyx_GOTREF(__pyx_t_1);
   39782           3 :     __Pyx_XDECREF(__pyx_t_13);
   39783           3 :     __pyx_t_13 = __pyx_t_1;
   39784           3 :     __pyx_t_1 = 0;
   39785           9 :     while (1) {
   39786           9 :       __pyx_t_15 = __Pyx_dict_iter_next(__pyx_t_13, __pyx_t_14, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_11);
   39787           9 :       if (unlikely(__pyx_t_15 == 0)) break;
   39788           6 :       if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 958, __pyx_L1_error)
   39789           6 :       __Pyx_GOTREF(__pyx_t_1);
   39790           6 :       __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
   39791           6 :       __pyx_t_1 = 0;
   39792           6 :       __pyx_t_1 = __pyx_v__fused_sigindex;
   39793           6 :       __Pyx_INCREF(__pyx_t_1);
   39794           6 :       __Pyx_XDECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
   39795           6 :       __pyx_t_1 = 0;
   39796           6 :       __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 958, __pyx_L1_error)
   39797           6 :       __Pyx_GOTREF(__pyx_t_16);
   39798           6 :       __pyx_t_17 = NULL;
   39799           6 :       __pyx_t_18 = 0;
   39800             :       #if CYTHON_UNPACK_METHODS
   39801           6 :       if (likely(PyMethod_Check(__pyx_t_16))) {
   39802           0 :         __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_16);
   39803           0 :         if (likely(__pyx_t_17)) {
   39804           0 :           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
   39805           0 :           __Pyx_INCREF(__pyx_t_17);
   39806           0 :           __Pyx_INCREF(function);
   39807           0 :           __Pyx_DECREF_SET(__pyx_t_16, function);
   39808             :           __pyx_t_18 = 1;
   39809             :         }
   39810             :       }
   39811             :       #endif
   39812             :       {
   39813           6 :         PyObject *__pyx_callargs[2] = {__pyx_t_17, __pyx_kp_s__11};
   39814           6 :         __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_16, __pyx_callargs+1-__pyx_t_18, 1+__pyx_t_18);
   39815           6 :         __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
   39816           6 :         if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
   39817           6 :         __Pyx_GOTREF(__pyx_t_6);
   39818           6 :         __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   39819             :       }
   39820           6 :       __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_split); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 958, __pyx_L1_error)
   39821           6 :       __Pyx_GOTREF(__pyx_t_16);
   39822           6 :       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   39823           6 :       __pyx_t_6 = NULL;
   39824           6 :       __pyx_t_18 = 0;
   39825             :       #if CYTHON_UNPACK_METHODS
   39826           6 :       if (likely(PyMethod_Check(__pyx_t_16))) {
   39827           0 :         __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_16);
   39828           0 :         if (likely(__pyx_t_6)) {
   39829           0 :           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
   39830           0 :           __Pyx_INCREF(__pyx_t_6);
   39831           0 :           __Pyx_INCREF(function);
   39832           0 :           __Pyx_DECREF_SET(__pyx_t_16, function);
   39833             :           __pyx_t_18 = 1;
   39834             :         }
   39835             :       }
   39836             :       #endif
   39837             :       {
   39838           6 :         PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_kp_s__12};
   39839           6 :         __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_16, __pyx_callargs+1-__pyx_t_18, 1+__pyx_t_18);
   39840           6 :         __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
   39841           6 :         if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
   39842           6 :         __Pyx_GOTREF(__pyx_t_1);
   39843           6 :         __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   39844             :       }
   39845          12 :       __pyx_t_16 = __Pyx_PySequence_ListKeepNew(__pyx_t_1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 958, __pyx_L1_error)
   39846           6 :       __Pyx_GOTREF(__pyx_t_16);
   39847           6 :       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   39848           6 :       __pyx_t_19 = PyList_GET_SIZE(__pyx_t_16);
   39849           6 :       if (unlikely(__pyx_t_19 < 1)) {
   39850           0 :         __Pyx_RaiseNeedMoreValuesError(0+__pyx_t_19); __PYX_ERR(0, 958, __pyx_L1_error)
   39851             :       }
   39852             :       #if CYTHON_COMPILING_IN_CPYTHON
   39853           6 :       __pyx_t_6 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_19-1); 
   39854           6 :       ((PyVarObject*)__pyx_t_16)->ob_size--;
   39855             :       #else
   39856             :       __pyx_t_6 = PySequence_ITEM(__pyx_t_16, __pyx_t_19-1); 
   39857             :       #endif
   39858           6 :       __Pyx_GOTREF(__pyx_t_6);
   39859             :       #if !CYTHON_COMPILING_IN_CPYTHON
   39860             :       __pyx_t_17 = PySequence_GetSlice(__pyx_t_16, 0, __pyx_t_19-1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 958, __pyx_L1_error)
   39861             :       __Pyx_GOTREF(__pyx_t_17);
   39862             :       __Pyx_DECREF(__pyx_t_16);
   39863             :       __pyx_t_16 = __pyx_t_17; __pyx_t_17 = NULL;
   39864             :       #else
   39865           6 :       CYTHON_UNUSED_VAR(__pyx_t_17);
   39866             :       #endif
   39867           6 :       __Pyx_XDECREF_SET(__pyx_v_sig_series, ((PyObject*)__pyx_t_16));
   39868           6 :       __pyx_t_16 = 0;
   39869           6 :       __Pyx_XDECREF_SET(__pyx_v_last_type, __pyx_t_6);
   39870           6 :       __pyx_t_6 = 0;
   39871           6 :       __pyx_t_1 = __pyx_v_sig_series; __Pyx_INCREF(__pyx_t_1);
   39872             :       __pyx_t_19 = 0;
   39873           6 :       for (;;) {
   39874             :         {
   39875           6 :           Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
   39876             :           #if !CYTHON_ASSUME_SAFE_MACROS
   39877             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   39878             :           #endif
   39879           6 :           if (__pyx_t_19 >= __pyx_temp) break;
   39880             :         }
   39881             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   39882           0 :         __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_19); __Pyx_INCREF(__pyx_t_6); __pyx_t_19++; if (unlikely((0 < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   39883             :         #else
   39884             :         __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
   39885             :         __Pyx_GOTREF(__pyx_t_6);
   39886             :         #endif
   39887           0 :         __Pyx_XDECREF_SET(__pyx_v_sig_type, __pyx_t_6);
   39888           0 :         __pyx_t_6 = 0;
   39889           0 :         if (unlikely(__pyx_v_sigindex_node == Py_None)) {
   39890           0 :           PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
   39891           0 :           __PYX_ERR(0, 958, __pyx_L1_error)
   39892             :         }
   39893           0 :         __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_v_sig_type, __pyx_v_sigindex_node, Py_NE)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   39894           0 :         if (__pyx_t_4) {
   39895           0 :           __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
   39896           0 :           __Pyx_GOTREF(__pyx_t_6);
   39897           0 :           if (unlikely(__pyx_v_sigindex_node == Py_None)) {
   39898             :             PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   39899             :             __PYX_ERR(0, 958, __pyx_L1_error)
   39900             :           }
   39901           0 :           if (unlikely((PyDict_SetItem(__pyx_v_sigindex_node, __pyx_v_sig_type, __pyx_t_6) < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   39902           0 :           __Pyx_INCREF(__pyx_t_6);
   39903           0 :           __Pyx_DECREF_SET(__pyx_v_sigindex_node, __pyx_t_6);
   39904           0 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   39905           0 :           goto __pyx_L47;
   39906             :         }
   39907             :         /*else*/ {
   39908           0 :           if (unlikely(__pyx_v_sigindex_node == Py_None)) {
   39909             :             PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   39910             :             __PYX_ERR(0, 958, __pyx_L1_error)
   39911             :           }
   39912           0 :           __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_sigindex_node, __pyx_v_sig_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
   39913           0 :           __Pyx_GOTREF(__pyx_t_6);
   39914           0 :           __pyx_t_16 = __pyx_t_6;
   39915           0 :           __Pyx_INCREF(__pyx_t_16);
   39916           0 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   39917           6 :           __Pyx_DECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_16));
   39918             :           __pyx_t_16 = 0;
   39919             :         }
   39920             :         __pyx_L47:;
   39921             :       }
   39922           6 :       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   39923           6 :       if (unlikely(__pyx_v_sigindex_node == Py_None)) {
   39924           0 :         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   39925           0 :         __PYX_ERR(0, 958, __pyx_L1_error)
   39926             :       }
   39927           6 :       if (unlikely((PyDict_SetItem(__pyx_v_sigindex_node, __pyx_v_last_type, __pyx_v_sig) < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   39928             :     }
   39929           6 :     __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
   39930             :   }
   39931       26446 :   __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 958, __pyx_L1_error)
   39932       26446 :   __Pyx_GOTREF(__pyx_t_13);
   39933       26446 :   __pyx_v_sigindex_matches = ((PyObject*)__pyx_t_13);
   39934       26446 :   __pyx_t_13 = 0;
   39935       26446 :   __pyx_t_13 = PyList_New(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 958, __pyx_L1_error)
   39936       26446 :   __Pyx_GOTREF(__pyx_t_13);
   39937       26446 :   __Pyx_INCREF(__pyx_v__fused_sigindex);
   39938       26446 :   __Pyx_GIVEREF(__pyx_v__fused_sigindex);
   39939       26446 :   if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 0, __pyx_v__fused_sigindex)) __PYX_ERR(0, 958, __pyx_L1_error);
   39940       26446 :   __pyx_v_sigindex_candidates = ((PyObject*)__pyx_t_13);
   39941       26446 :   __pyx_t_13 = 0;
   39942       26446 :   __pyx_t_13 = __pyx_v_dest_sig; __Pyx_INCREF(__pyx_t_13);
   39943             :   __pyx_t_14 = 0;
   39944       52892 :   for (;;) {
   39945             :     {
   39946       52892 :       Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_13);
   39947             :       #if !CYTHON_ASSUME_SAFE_MACROS
   39948             :       if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   39949             :       #endif
   39950       52892 :       if (__pyx_t_14 >= __pyx_temp) break;
   39951             :     }
   39952             :     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   39953       26446 :     __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely((0 < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   39954             :     #else
   39955             :     __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_13, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
   39956             :     __Pyx_GOTREF(__pyx_t_1);
   39957             :     #endif
   39958       26446 :     __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
   39959       26446 :     __pyx_t_1 = 0;
   39960       26446 :     __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
   39961       26446 :     __Pyx_GOTREF(__pyx_t_1);
   39962       26446 :     __Pyx_XDECREF_SET(__pyx_v_found_matches, ((PyObject*)__pyx_t_1));
   39963       26446 :     __pyx_t_1 = 0;
   39964       26446 :     __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
   39965       26446 :     __Pyx_GOTREF(__pyx_t_1);
   39966       26446 :     __Pyx_XDECREF_SET(__pyx_v_found_candidates, ((PyObject*)__pyx_t_1));
   39967       26446 :     __pyx_t_1 = 0;
   39968       26446 :     __pyx_t_4 = (__pyx_v_dst_type == Py_None);
   39969       26446 :     if (__pyx_t_4) {
   39970           0 :       __pyx_t_1 = __pyx_v_sigindex_matches; __Pyx_INCREF(__pyx_t_1);
   39971           0 :       __pyx_t_5 = 0;
   39972           0 :       for (;;) {
   39973             :         {
   39974           0 :           Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
   39975             :           #if !CYTHON_ASSUME_SAFE_MACROS
   39976             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   39977             :           #endif
   39978           0 :           if (__pyx_t_5 >= __pyx_temp) break;
   39979             :         }
   39980             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   39981           0 :         __pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_16); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   39982             :         #else
   39983             :         __pyx_t_16 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 958, __pyx_L1_error)
   39984             :         __Pyx_GOTREF(__pyx_t_16);
   39985             :         #endif
   39986           0 :         __Pyx_XDECREF_SET(__pyx_v_sn, __pyx_t_16);
   39987           0 :         __pyx_t_16 = 0;
   39988           0 :         if (unlikely(__pyx_v_sn == Py_None)) {
   39989           0 :           PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
   39990           0 :           __PYX_ERR(0, 958, __pyx_L1_error)
   39991             :         }
   39992           0 :         __pyx_t_16 = __Pyx_PyDict_Values(((PyObject*)__pyx_v_sn)); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 958, __pyx_L1_error)
   39993           0 :         __Pyx_GOTREF(__pyx_t_16);
   39994           0 :         __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_found_matches, __pyx_t_16); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 958, __pyx_L1_error)
   39995           0 :         __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   39996             :       }
   39997           0 :       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   39998           0 :       __pyx_t_1 = __pyx_v_sigindex_candidates; __Pyx_INCREF(__pyx_t_1);
   39999           0 :       __pyx_t_5 = 0;
   40000           0 :       for (;;) {
   40001             :         {
   40002           0 :           Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
   40003             :           #if !CYTHON_ASSUME_SAFE_MACROS
   40004             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   40005             :           #endif
   40006           0 :           if (__pyx_t_5 >= __pyx_temp) break;
   40007             :         }
   40008             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   40009           0 :         __pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_16); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   40010             :         #else
   40011             :         __pyx_t_16 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 958, __pyx_L1_error)
   40012             :         __Pyx_GOTREF(__pyx_t_16);
   40013             :         #endif
   40014           0 :         __Pyx_XDECREF_SET(__pyx_v_sn, __pyx_t_16);
   40015           0 :         __pyx_t_16 = 0;
   40016           0 :         if (unlikely(__pyx_v_sn == Py_None)) {
   40017           0 :           PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
   40018           0 :           __PYX_ERR(0, 958, __pyx_L1_error)
   40019             :         }
   40020           0 :         __pyx_t_16 = __Pyx_PyDict_Values(((PyObject*)__pyx_v_sn)); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 958, __pyx_L1_error)
   40021           0 :         __Pyx_GOTREF(__pyx_t_16);
   40022           0 :         __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_found_candidates, __pyx_t_16); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 958, __pyx_L1_error)
   40023           0 :         __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   40024             :       }
   40025           0 :       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   40026           0 :       goto __pyx_L51;
   40027             :     }
   40028             :     /*else*/ {
   40029       26446 :       __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
   40030       26446 :       __Pyx_GOTREF(__pyx_t_1);
   40031       26446 :       __Pyx_INCREF(__pyx_v_sigindex_matches);
   40032       26446 :       __Pyx_GIVEREF(__pyx_v_sigindex_matches);
   40033       26446 :       if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_sigindex_matches)) __PYX_ERR(0, 958, __pyx_L1_error);
   40034       26446 :       __Pyx_INCREF(__pyx_v_sigindex_candidates);
   40035       26446 :       __Pyx_GIVEREF(__pyx_v_sigindex_candidates);
   40036       26446 :       if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_sigindex_candidates)) __PYX_ERR(0, 958, __pyx_L1_error);
   40037       26446 :       __pyx_t_16 = __pyx_t_1; __Pyx_INCREF(__pyx_t_16);
   40038       26446 :       __pyx_t_5 = 0;
   40039       52892 :       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   40040      132230 :       for (;;) {
   40041       79338 :         if (__pyx_t_5 >= 2) break;
   40042             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   40043       52892 :         __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_16, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   40044             :         #else
   40045             :         __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_16, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
   40046             :         __Pyx_GOTREF(__pyx_t_1);
   40047             :         #endif
   40048       52892 :         __Pyx_XDECREF_SET(__pyx_v_search_list, ((PyObject*)__pyx_t_1));
   40049       52892 :         __pyx_t_1 = 0;
   40050       52892 :         if (unlikely(__pyx_v_search_list == Py_None)) {
   40051           0 :           PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
   40052           0 :           __PYX_ERR(0, 958, __pyx_L1_error)
   40053             :         }
   40054       52892 :         __pyx_t_1 = __pyx_v_search_list; __Pyx_INCREF(__pyx_t_1);
   40055             :         __pyx_t_19 = 0;
   40056       79338 :         for (;;) {
   40057             :           {
   40058       79338 :             Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
   40059             :             #if !CYTHON_ASSUME_SAFE_MACROS
   40060             :             if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   40061             :             #endif
   40062       79338 :             if (__pyx_t_19 >= __pyx_temp) break;
   40063             :           }
   40064             :           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   40065       26446 :           __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_19); __Pyx_INCREF(__pyx_t_6); __pyx_t_19++; if (unlikely((0 < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
   40066             :           #else
   40067             :           __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
   40068             :           __Pyx_GOTREF(__pyx_t_6);
   40069             :           #endif
   40070       26446 :           __Pyx_XDECREF_SET(__pyx_v_sn, __pyx_t_6);
   40071       26446 :           __pyx_t_6 = 0;
   40072       26446 :           if (unlikely(__pyx_v_sn == Py_None)) {
   40073           0 :             PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
   40074           0 :             __PYX_ERR(0, 958, __pyx_L1_error)
   40075             :           }
   40076       26446 :           __pyx_t_6 = __Pyx_PyDict_GetItemDefault(((PyObject*)__pyx_v_sn), __pyx_v_dst_type, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
   40077       26446 :           __Pyx_GOTREF(__pyx_t_6);
   40078       26446 :           __Pyx_XDECREF_SET(__pyx_v_type_match, __pyx_t_6);
   40079       26446 :           __pyx_t_6 = 0;
   40080       26446 :           __pyx_t_4 = (__pyx_v_type_match != Py_None);
   40081       26446 :           if (__pyx_t_4) {
   40082       26446 :             __pyx_t_20 = __Pyx_PyList_Append(__pyx_v_found_matches, __pyx_v_type_match); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 958, __pyx_L1_error)
   40083             :           }
   40084             :         }
   40085      105784 :         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   40086             :       }
   40087       26446 :       __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   40088             :     }
   40089       26446 :     __pyx_L51:;
   40090       26446 :     __Pyx_INCREF(__pyx_v_found_matches);
   40091       26446 :     __Pyx_DECREF_SET(__pyx_v_sigindex_matches, __pyx_v_found_matches);
   40092       26446 :     __Pyx_INCREF(__pyx_v_found_candidates);
   40093       26446 :     __Pyx_DECREF_SET(__pyx_v_sigindex_candidates, __pyx_v_found_candidates);
   40094       26446 :     __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_matches) != 0);
   40095       26446 :     if (!__pyx_t_2) {
   40096           0 :     } else {
   40097       26446 :       __pyx_t_4 = __pyx_t_2;
   40098       26446 :       goto __pyx_L66_bool_binop_done;
   40099             :     }
   40100           0 :     __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_candidates) != 0);
   40101           0 :     __pyx_t_4 = __pyx_t_2;
   40102       26446 :     __pyx_L66_bool_binop_done:;
   40103       26446 :     __pyx_t_2 = (!__pyx_t_4);
   40104       26446 :     if (__pyx_t_2) {
   40105           0 :       goto __pyx_L50_break;
   40106             :     }
   40107             :   }
   40108       26446 :   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
   40109       26446 :   goto __pyx_L68_for_end;
   40110           0 :   __pyx_L50_break:;
   40111           0 :   __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
   40112           0 :   goto __pyx_L68_for_end;
   40113       26446 :   __pyx_L68_for_end:;
   40114       26446 :   __Pyx_INCREF(__pyx_v_sigindex_matches);
   40115       26446 :   __pyx_v_candidates = __pyx_v_sigindex_matches;
   40116       26446 :   __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
   40117       26446 :   __pyx_t_4 = (!__pyx_t_2);
   40118       26446 :   if (unlikely(__pyx_t_4)) {
   40119           0 :     __pyx_t_13 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 958, __pyx_L1_error)
   40120           0 :     __Pyx_GOTREF(__pyx_t_13);
   40121           0 :     __Pyx_Raise(__pyx_t_13, 0, 0, 0);
   40122           0 :     __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
   40123           0 :     __PYX_ERR(0, 958, __pyx_L1_error)
   40124             :   }
   40125       26446 :   __pyx_t_14 = __Pyx_PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(0, 958, __pyx_L1_error)
   40126       26446 :   __pyx_t_4 = (__pyx_t_14 > 1);
   40127       26446 :   if (unlikely(__pyx_t_4)) {
   40128           0 :     __pyx_t_13 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 958, __pyx_L1_error)
   40129           0 :     __Pyx_GOTREF(__pyx_t_13);
   40130           0 :     __Pyx_Raise(__pyx_t_13, 0, 0, 0);
   40131           0 :     __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
   40132           0 :     __PYX_ERR(0, 958, __pyx_L1_error)
   40133             :   }
   40134             :   /*else*/ {
   40135       26446 :     __Pyx_XDECREF(__pyx_r);
   40136       26446 :     if (unlikely(__pyx_v_signatures == Py_None)) {
   40137           0 :       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   40138           0 :       __PYX_ERR(0, 958, __pyx_L1_error)
   40139             :     }
   40140       26446 :     __pyx_t_13 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 958, __pyx_L1_error)
   40141       26446 :     __Pyx_GOTREF(__pyx_t_13);
   40142       26446 :     __pyx_t_16 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_13); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 958, __pyx_L1_error)
   40143       26446 :     __Pyx_GOTREF(__pyx_t_16);
   40144       26446 :     __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
   40145       26446 :     __pyx_r = __pyx_t_16;
   40146       26446 :     __pyx_t_16 = 0;
   40147       26446 :     goto __pyx_L0;
   40148             :   }
   40149             : 
   40150             :   /* function exit code */
   40151           0 :   __pyx_L1_error:;
   40152           0 :   __Pyx_XDECREF(__pyx_t_1);
   40153           0 :   __Pyx_XDECREF(__pyx_t_6);
   40154           0 :   __Pyx_XDECREF(__pyx_t_13);
   40155           0 :   __Pyx_XDECREF(__pyx_t_16);
   40156           0 :   __Pyx_XDECREF(__pyx_t_17);
   40157           0 :   __Pyx_AddTraceback("_csparsetools.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
   40158           0 :   __pyx_r = NULL;
   40159       26446 :   __pyx_L0:;
   40160       26446 :   __Pyx_XDECREF(__pyx_v_search_list);
   40161       26446 :   __Pyx_XDECREF(__pyx_v_sigindex_node);
   40162       26446 :   __Pyx_XDECREF(__pyx_v_dest_sig);
   40163       26446 :   __Pyx_XDECREF((PyObject *)__pyx_v_ndarray);
   40164       26446 :   __Pyx_XDECREF(__pyx_v_arg_as_memoryview);
   40165       26446 :   __Pyx_XDECREF(__pyx_v_arg);
   40166       26446 :   __Pyx_XDECREF(__pyx_v_dtype);
   40167       26446 :   __Pyx_XDECREF(__pyx_v_arg_base);
   40168       26446 :   __Pyx_XDECREF(__pyx_v_sig);
   40169       26446 :   __Pyx_XDECREF(__pyx_v_sig_series);
   40170       26446 :   __Pyx_XDECREF(__pyx_v_last_type);
   40171       26446 :   __Pyx_XDECREF(__pyx_v_sig_type);
   40172       26446 :   __Pyx_XDECREF(__pyx_v_sigindex_matches);
   40173       26446 :   __Pyx_XDECREF(__pyx_v_sigindex_candidates);
   40174       26446 :   __Pyx_XDECREF(__pyx_v_dst_type);
   40175       26446 :   __Pyx_XDECREF(__pyx_v_found_matches);
   40176       26446 :   __Pyx_XDECREF(__pyx_v_found_candidates);
   40177       26446 :   __Pyx_XDECREF(__pyx_v_sn);
   40178       26446 :   __Pyx_XDECREF(__pyx_v_type_match);
   40179       26446 :   __Pyx_XDECREF(__pyx_v_candidates);
   40180       26446 :   __Pyx_XDECREF(__pyx_v_kwargs);
   40181       26446 :   __Pyx_XGIVEREF(__pyx_r);
   40182       26446 :   __Pyx_RefNannyFinishContext();
   40183       26446 :   return __pyx_r;
   40184             : }
   40185             : 
   40186             : /* Python wrapper */
   40187             : static PyObject *__pyx_fuse_0__pyx_pw_13_csparsetools_119lil_get_row_ranges(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
   40188             : static PyMethodDef __pyx_fuse_0__pyx_mdef_13_csparsetools_119lil_get_row_ranges = {"__pyx_fuse_0lil_get_row_ranges", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_13_csparsetools_119lil_get_row_ranges, METH_VARARGS|METH_KEYWORDS, __pyx_doc_13_csparsetools_110lil_get_row_ranges};
   40189       26446 : static PyObject *__pyx_fuse_0__pyx_pw_13_csparsetools_119lil_get_row_ranges(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
   40190       26446 :   npy_intp __pyx_v_M;
   40191       26446 :   npy_intp __pyx_v_N;
   40192       26446 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   40193       26446 :   __Pyx_memviewslice __pyx_v_datas = { 0, 0, { 0 }, { 0 }, { 0 } };
   40194       26446 :   __Pyx_memviewslice __pyx_v_new_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   40195       26446 :   __Pyx_memviewslice __pyx_v_new_datas = { 0, 0, { 0 }, { 0 }, { 0 } };
   40196       26446 :   PyObject *__pyx_v_irows = 0;
   40197       26446 :   npy_intp __pyx_v_j_start;
   40198       26446 :   npy_intp __pyx_v_j_stop;
   40199       26446 :   npy_intp __pyx_v_j_stride;
   40200       26446 :   npy_intp __pyx_v_nj;
   40201       26446 :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   40202       26446 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   40203       26446 :   PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
   40204       26446 :   int __pyx_lineno = 0;
   40205       26446 :   const char *__pyx_filename = NULL;
   40206       26446 :   int __pyx_clineno = 0;
   40207       26446 :   PyObject *__pyx_r = 0;
   40208             :   __Pyx_RefNannyDeclarations
   40209       26446 :   __Pyx_RefNannySetupContext("lil_get_row_ranges (wrapper)", 0);
   40210             :   #if CYTHON_ASSUME_SAFE_MACROS
   40211       26446 :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   40212             :   #else
   40213             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   40214             :   #endif
   40215       26446 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   40216             :   {
   40217       26446 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_datas,&__pyx_n_s_new_rows,&__pyx_n_s_new_datas,&__pyx_n_s_irows,&__pyx_n_s_j_start,&__pyx_n_s_j_stop,&__pyx_n_s_j_stride,&__pyx_n_s_nj,0};
   40218       26446 :     if (__pyx_kwds) {
   40219           0 :       Py_ssize_t kw_args;
   40220           0 :       switch (__pyx_nargs) {
   40221           0 :         case 11: values[10] = __Pyx_Arg_VARARGS(__pyx_args, 10);
   40222           0 :         CYTHON_FALLTHROUGH;
   40223           0 :         case 10: values[9] = __Pyx_Arg_VARARGS(__pyx_args, 9);
   40224           0 :         CYTHON_FALLTHROUGH;
   40225           0 :         case  9: values[8] = __Pyx_Arg_VARARGS(__pyx_args, 8);
   40226           0 :         CYTHON_FALLTHROUGH;
   40227           0 :         case  8: values[7] = __Pyx_Arg_VARARGS(__pyx_args, 7);
   40228           0 :         CYTHON_FALLTHROUGH;
   40229           0 :         case  7: values[6] = __Pyx_Arg_VARARGS(__pyx_args, 6);
   40230           0 :         CYTHON_FALLTHROUGH;
   40231           0 :         case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
   40232           0 :         CYTHON_FALLTHROUGH;
   40233           0 :         case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
   40234           0 :         CYTHON_FALLTHROUGH;
   40235           0 :         case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
   40236           0 :         CYTHON_FALLTHROUGH;
   40237           0 :         case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
   40238           0 :         CYTHON_FALLTHROUGH;
   40239           0 :         case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
   40240           0 :         CYTHON_FALLTHROUGH;
   40241           0 :         case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
   40242           0 :         CYTHON_FALLTHROUGH;
   40243           0 :         case  0: break;
   40244           0 :         default: goto __pyx_L5_argtuple_error;
   40245             :       }
   40246           0 :       kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
   40247           0 :       switch (__pyx_nargs) {
   40248           0 :         case  0:
   40249           0 :         if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   40250           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
   40251           0 :           kw_args--;
   40252             :         }
   40253           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   40254           0 :         else goto __pyx_L5_argtuple_error;
   40255           0 :         CYTHON_FALLTHROUGH;
   40256             :         case  1:
   40257           0 :         if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   40258           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
   40259           0 :           kw_args--;
   40260             :         }
   40261           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   40262             :         else {
   40263           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 1); __PYX_ERR(0, 958, __pyx_L3_error)
   40264             :         }
   40265           0 :         CYTHON_FALLTHROUGH;
   40266             :         case  2:
   40267           0 :         if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   40268           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
   40269           0 :           kw_args--;
   40270             :         }
   40271           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   40272             :         else {
   40273           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 2); __PYX_ERR(0, 958, __pyx_L3_error)
   40274             :         }
   40275           0 :         CYTHON_FALLTHROUGH;
   40276             :         case  3:
   40277           0 :         if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_datas)) != 0)) {
   40278           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[3]);
   40279           0 :           kw_args--;
   40280             :         }
   40281           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   40282             :         else {
   40283           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 3); __PYX_ERR(0, 958, __pyx_L3_error)
   40284             :         }
   40285           0 :         CYTHON_FALLTHROUGH;
   40286             :         case  4:
   40287           0 :         if (likely((values[4] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_new_rows)) != 0)) {
   40288           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[4]);
   40289           0 :           kw_args--;
   40290             :         }
   40291           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   40292             :         else {
   40293           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 4); __PYX_ERR(0, 958, __pyx_L3_error)
   40294             :         }
   40295           0 :         CYTHON_FALLTHROUGH;
   40296             :         case  5:
   40297           0 :         if (likely((values[5] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_new_datas)) != 0)) {
   40298           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[5]);
   40299           0 :           kw_args--;
   40300             :         }
   40301           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   40302             :         else {
   40303           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 5); __PYX_ERR(0, 958, __pyx_L3_error)
   40304             :         }
   40305           0 :         CYTHON_FALLTHROUGH;
   40306             :         case  6:
   40307           0 :         if (likely((values[6] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_irows)) != 0)) {
   40308           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[6]);
   40309           0 :           kw_args--;
   40310             :         }
   40311           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   40312             :         else {
   40313           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 6); __PYX_ERR(0, 958, __pyx_L3_error)
   40314             :         }
   40315           0 :         CYTHON_FALLTHROUGH;
   40316             :         case  7:
   40317           0 :         if (likely((values[7] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_start)) != 0)) {
   40318           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[7]);
   40319           0 :           kw_args--;
   40320             :         }
   40321           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   40322             :         else {
   40323           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 7); __PYX_ERR(0, 958, __pyx_L3_error)
   40324             :         }
   40325           0 :         CYTHON_FALLTHROUGH;
   40326             :         case  8:
   40327           0 :         if (likely((values[8] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_stop)) != 0)) {
   40328           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[8]);
   40329           0 :           kw_args--;
   40330             :         }
   40331           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   40332             :         else {
   40333           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 8); __PYX_ERR(0, 958, __pyx_L3_error)
   40334             :         }
   40335           0 :         CYTHON_FALLTHROUGH;
   40336             :         case  9:
   40337           0 :         if (likely((values[9] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_stride)) != 0)) {
   40338           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[9]);
   40339           0 :           kw_args--;
   40340             :         }
   40341           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   40342             :         else {
   40343           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 9); __PYX_ERR(0, 958, __pyx_L3_error)
   40344             :         }
   40345           0 :         CYTHON_FALLTHROUGH;
   40346             :         case 10:
   40347           0 :         if (likely((values[10] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nj)) != 0)) {
   40348           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[10]);
   40349           0 :           kw_args--;
   40350             :         }
   40351           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   40352             :         else {
   40353           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 10); __PYX_ERR(0, 958, __pyx_L3_error)
   40354             :         }
   40355             :       }
   40356           0 :       if (unlikely(kw_args > 0)) {
   40357           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   40358           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "lil_get_row_ranges") < 0)) __PYX_ERR(0, 958, __pyx_L3_error)
   40359             :       }
   40360       26446 :     } else if (unlikely(__pyx_nargs != 11)) {
   40361           0 :       goto __pyx_L5_argtuple_error;
   40362             :     } else {
   40363       26446 :       values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
   40364       26446 :       values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
   40365       26446 :       values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
   40366       26446 :       values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
   40367       26446 :       values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
   40368       26446 :       values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
   40369       26446 :       values[6] = __Pyx_Arg_VARARGS(__pyx_args, 6);
   40370       26446 :       values[7] = __Pyx_Arg_VARARGS(__pyx_args, 7);
   40371       26446 :       values[8] = __Pyx_Arg_VARARGS(__pyx_args, 8);
   40372       26446 :       values[9] = __Pyx_Arg_VARARGS(__pyx_args, 9);
   40373       26446 :       values[10] = __Pyx_Arg_VARARGS(__pyx_args, 10);
   40374             :     }
   40375       26446 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   40376       26446 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   40377       26446 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], 0); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 959, __pyx_L3_error)
   40378       26446 :     __pyx_v_datas = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], 0); if (unlikely(!__pyx_v_datas.memview)) __PYX_ERR(0, 959, __pyx_L3_error)
   40379       26446 :     __pyx_v_new_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_new_rows.memview)) __PYX_ERR(0, 960, __pyx_L3_error)
   40380       26446 :     __pyx_v_new_datas = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_new_datas.memview)) __PYX_ERR(0, 960, __pyx_L3_error)
   40381       26446 :     __pyx_v_irows = values[6];
   40382       26446 :     __pyx_v_j_start = __Pyx_PyInt_As_npy_intp(values[7]); if (unlikely((__pyx_v_j_start == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 962, __pyx_L3_error)
   40383       26446 :     __pyx_v_j_stop = __Pyx_PyInt_As_npy_intp(values[8]); if (unlikely((__pyx_v_j_stop == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L3_error)
   40384       26446 :     __pyx_v_j_stride = __Pyx_PyInt_As_npy_intp(values[9]); if (unlikely((__pyx_v_j_stride == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 964, __pyx_L3_error)
   40385       26446 :     __pyx_v_nj = __Pyx_PyInt_As_npy_intp(values[10]); if (unlikely((__pyx_v_nj == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 965, __pyx_L3_error)
   40386             :   }
   40387       26446 :   goto __pyx_L6_skip;
   40388           0 :   __pyx_L5_argtuple_error:;
   40389           0 :   __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, __pyx_nargs); __PYX_ERR(0, 958, __pyx_L3_error)
   40390       26446 :   __pyx_L6_skip:;
   40391       26446 :   goto __pyx_L4_argument_unpacking_done;
   40392           0 :   __pyx_L3_error:;
   40393             :   {
   40394           0 :     Py_ssize_t __pyx_temp;
   40395           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   40396             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
   40397             :     }
   40398             :   }
   40399           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   40400           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_datas, 1);
   40401           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_rows, 1);
   40402           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_datas, 1);
   40403           0 :   __Pyx_AddTraceback("_csparsetools.lil_get_row_ranges", __pyx_clineno, __pyx_lineno, __pyx_filename);
   40404           0 :   __Pyx_RefNannyFinishContext();
   40405           0 :   return NULL;
   40406       26446 :   __pyx_L4_argument_unpacking_done:;
   40407       26446 :   __pyx_r = __pyx_pf_13_csparsetools_118lil_get_row_ranges(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_datas, __pyx_v_new_rows, __pyx_v_new_datas, __pyx_v_irows, __pyx_v_j_start, __pyx_v_j_stop, __pyx_v_j_stride, __pyx_v_nj);
   40408             : 
   40409             :   /* function exit code */
   40410       26446 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   40411       26446 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_datas, 1);
   40412       26446 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_rows, 1);
   40413       26446 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_datas, 1);
   40414             :   {
   40415       26446 :     Py_ssize_t __pyx_temp;
   40416       26446 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   40417             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
   40418             :     }
   40419             :   }
   40420             :   __Pyx_RefNannyFinishContext();
   40421             :   return __pyx_r;
   40422             : }
   40423             : 
   40424       26446 : static PyObject *__pyx_pf_13_csparsetools_118lil_get_row_ranges(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_datas, __Pyx_memviewslice __pyx_v_new_rows, __Pyx_memviewslice __pyx_v_new_datas, PyObject *__pyx_v_irows, npy_intp __pyx_v_j_start, npy_intp __pyx_v_j_stop, npy_intp __pyx_v_j_stride, npy_intp __pyx_v_nj) {
   40425       26446 :   npy_intp __pyx_v_nk;
   40426       26446 :   npy_intp __pyx_v_k;
   40427       26446 :   npy_intp __pyx_v_j;
   40428       26446 :   npy_intp __pyx_v_a;
   40429       26446 :   npy_intp __pyx_v_m;
   40430       26446 :   npy_intp __pyx_v_r;
   40431       26446 :   npy_intp __pyx_v_p;
   40432       26446 :   PyObject *__pyx_v_cur_row = 0;
   40433       26446 :   PyObject *__pyx_v_cur_data = 0;
   40434       26446 :   PyObject *__pyx_v_new_row = 0;
   40435       26446 :   PyObject *__pyx_v_new_data = 0;
   40436       26446 :   PyObject *__pyx_r = NULL;
   40437             :   __Pyx_RefNannyDeclarations
   40438       26446 :   int __pyx_t_1;
   40439       26446 :   PyObject *__pyx_t_2 = NULL;
   40440       26446 :   npy_intp __pyx_t_3;
   40441       26446 :   Py_ssize_t __pyx_t_4;
   40442       26446 :   PyObject *(*__pyx_t_5)(PyObject *);
   40443       26446 :   PyObject *__pyx_t_6 = NULL;
   40444       26446 :   npy_intp __pyx_t_7;
   40445       26446 :   int __pyx_t_8;
   40446       26446 :   Py_ssize_t __pyx_t_9;
   40447       26446 :   Py_UCS4 __pyx_t_10;
   40448       26446 :   PyObject *__pyx_t_11 = NULL;
   40449       26446 :   PyObject *__pyx_t_12 = NULL;
   40450       26446 :   Py_ssize_t __pyx_t_13;
   40451       26446 :   int __pyx_t_14;
   40452       26446 :   PyObject **__pyx_t_15;
   40453       26446 :   Py_ssize_t __pyx_t_16;
   40454       26446 :   npy_intp __pyx_t_17;
   40455       26446 :   int __pyx_t_18;
   40456       26446 :   int __pyx_lineno = 0;
   40457       26446 :   const char *__pyx_filename = NULL;
   40458       26446 :   int __pyx_clineno = 0;
   40459       26446 :   __Pyx_RefNannySetupContext("__pyx_fuse_0lil_get_row_ranges", 1);
   40460             : 
   40461             :   /* "_csparsetools.pyx":988
   40462             :  *     cdef list cur_row, cur_data, new_row, new_data
   40463             :  * 
   40464             :  *     if j_stride == 0:             # <<<<<<<<<<<<<<
   40465             :  *         raise ValueError("cannot index with zero stride")
   40466             :  * 
   40467             :  */
   40468       26446 :   __pyx_t_1 = (__pyx_v_j_stride == 0);
   40469       26446 :   if (unlikely(__pyx_t_1)) {
   40470             : 
   40471             :     /* "_csparsetools.pyx":989
   40472             :  * 
   40473             :  *     if j_stride == 0:
   40474             :  *         raise ValueError("cannot index with zero stride")             # <<<<<<<<<<<<<<
   40475             :  * 
   40476             :  *     for nk, k in enumerate(irows):
   40477             :  */
   40478           0 :     __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 989, __pyx_L1_error)
   40479           0 :     __Pyx_GOTREF(__pyx_t_2);
   40480           0 :     __Pyx_Raise(__pyx_t_2, 0, 0, 0);
   40481           0 :     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   40482           0 :     __PYX_ERR(0, 989, __pyx_L1_error)
   40483             : 
   40484             :     /* "_csparsetools.pyx":988
   40485             :  *     cdef list cur_row, cur_data, new_row, new_data
   40486             :  * 
   40487             :  *     if j_stride == 0:             # <<<<<<<<<<<<<<
   40488             :  *         raise ValueError("cannot index with zero stride")
   40489             :  * 
   40490             :  */
   40491             :   }
   40492             : 
   40493             :   /* "_csparsetools.pyx":991
   40494             :  *         raise ValueError("cannot index with zero stride")
   40495             :  * 
   40496             :  *     for nk, k in enumerate(irows):             # <<<<<<<<<<<<<<
   40497             :  *         if k >= M or k < -M:
   40498             :  *             raise ValueError("row index %d out of bounds" % (k,))
   40499             :  */
   40500       26446 :   __pyx_t_3 = 0;
   40501       26446 :   if (likely(PyList_CheckExact(__pyx_v_irows)) || PyTuple_CheckExact(__pyx_v_irows)) {
   40502        7155 :     __pyx_t_2 = __pyx_v_irows; __Pyx_INCREF(__pyx_t_2);
   40503       26446 :     __pyx_t_4 = 0;
   40504       26446 :     __pyx_t_5 = NULL;
   40505             :   } else {
   40506       19291 :     __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_irows); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 991, __pyx_L1_error)
   40507       19291 :     __Pyx_GOTREF(__pyx_t_2);
   40508       19291 :     __pyx_t_5 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
   40509             :   }
   40510       64174 :   for (;;) {
   40511       64174 :     if (likely(!__pyx_t_5)) {
   40512       14310 :       if (likely(PyList_CheckExact(__pyx_t_2))) {
   40513             :         {
   40514           0 :           Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
   40515             :           #if !CYTHON_ASSUME_SAFE_MACROS
   40516             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 991, __pyx_L1_error)
   40517             :           #endif
   40518           0 :           if (__pyx_t_4 >= __pyx_temp) break;
   40519             :         }
   40520             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   40521           0 :         __pyx_t_6 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 991, __pyx_L1_error)
   40522             :         #else
   40523             :         __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
   40524             :         __Pyx_GOTREF(__pyx_t_6);
   40525             :         #endif
   40526             :       } else {
   40527             :         {
   40528       14310 :           Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
   40529             :           #if !CYTHON_ASSUME_SAFE_MACROS
   40530             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 991, __pyx_L1_error)
   40531             :           #endif
   40532       14310 :           if (__pyx_t_4 >= __pyx_temp) break;
   40533             :         }
   40534             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   40535        7155 :         __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 991, __pyx_L1_error)
   40536             :         #else
   40537             :         __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
   40538             :         __Pyx_GOTREF(__pyx_t_6);
   40539             :         #endif
   40540             :       }
   40541             :     } else {
   40542       49864 :       __pyx_t_6 = __pyx_t_5(__pyx_t_2);
   40543       49864 :       if (unlikely(!__pyx_t_6)) {
   40544       19291 :         PyObject* exc_type = PyErr_Occurred();
   40545       19291 :         if (exc_type) {
   40546           0 :           if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
   40547           0 :           else __PYX_ERR(0, 991, __pyx_L1_error)
   40548             :         }
   40549             :         break;
   40550             :       }
   40551       37728 :       __Pyx_GOTREF(__pyx_t_6);
   40552             :     }
   40553       37728 :     __pyx_t_7 = __Pyx_PyInt_As_npy_intp(__pyx_t_6); if (unlikely((__pyx_t_7 == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 991, __pyx_L1_error)
   40554       37728 :     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   40555       37728 :     __pyx_v_k = __pyx_t_7;
   40556       37728 :     __pyx_v_nk = __pyx_t_3;
   40557       37728 :     __pyx_t_3 = (__pyx_t_3 + 1);
   40558             : 
   40559             :     /* "_csparsetools.pyx":992
   40560             :  * 
   40561             :  *     for nk, k in enumerate(irows):
   40562             :  *         if k >= M or k < -M:             # <<<<<<<<<<<<<<
   40563             :  *             raise ValueError("row index %d out of bounds" % (k,))
   40564             :  *         if k < 0:
   40565             :  */
   40566       37728 :     __pyx_t_8 = (__pyx_v_k >= __pyx_v_M);
   40567       37728 :     if (!__pyx_t_8) {
   40568       37728 :     } else {
   40569           0 :       __pyx_t_1 = __pyx_t_8;
   40570           0 :       goto __pyx_L7_bool_binop_done;
   40571             :     }
   40572       37728 :     __pyx_t_8 = (__pyx_v_k < (-__pyx_v_M));
   40573       37728 :     __pyx_t_1 = __pyx_t_8;
   40574       37728 :     __pyx_L7_bool_binop_done:;
   40575       37728 :     if (unlikely(__pyx_t_1)) {
   40576             : 
   40577             :       /* "_csparsetools.pyx":993
   40578             :  *     for nk, k in enumerate(irows):
   40579             :  *         if k >= M or k < -M:
   40580             :  *             raise ValueError("row index %d out of bounds" % (k,))             # <<<<<<<<<<<<<<
   40581             :  *         if k < 0:
   40582             :  *             k += M
   40583             :  */
   40584           0 :       __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 993, __pyx_L1_error)
   40585           0 :       __Pyx_GOTREF(__pyx_t_6);
   40586           0 :       __pyx_t_9 = 0;
   40587           0 :       __pyx_t_10 = 127;
   40588           0 :       __Pyx_INCREF(__pyx_kp_u_row_index_2);
   40589           0 :       __pyx_t_9 += 10;
   40590           0 :       __Pyx_GIVEREF(__pyx_kp_u_row_index_2);
   40591           0 :       PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_kp_u_row_index_2);
   40592           0 :       __pyx_t_11 = __Pyx_PyInt_From_npy_intp(__pyx_v_k); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 993, __pyx_L1_error)
   40593           0 :       __Pyx_GOTREF(__pyx_t_11);
   40594           0 :       __pyx_t_12 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_11), __pyx_n_u_d); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
   40595           0 :       __Pyx_GOTREF(__pyx_t_12);
   40596           0 :       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   40597           0 :       __pyx_t_10 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) > __pyx_t_10) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) : __pyx_t_10;
   40598           0 :       __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_12);
   40599           0 :       __Pyx_GIVEREF(__pyx_t_12);
   40600           0 :       PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_12);
   40601           0 :       __pyx_t_12 = 0;
   40602           0 :       __Pyx_INCREF(__pyx_kp_u_out_of_bounds_2);
   40603           0 :       __pyx_t_9 += 14;
   40604           0 :       __Pyx_GIVEREF(__pyx_kp_u_out_of_bounds_2);
   40605           0 :       PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_kp_u_out_of_bounds_2);
   40606           0 :       __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_6, 3, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
   40607           0 :       __Pyx_GOTREF(__pyx_t_12);
   40608           0 :       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   40609           0 :       __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 993, __pyx_L1_error)
   40610           0 :       __Pyx_GOTREF(__pyx_t_6);
   40611           0 :       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
   40612           0 :       __Pyx_Raise(__pyx_t_6, 0, 0, 0);
   40613           0 :       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   40614           0 :       __PYX_ERR(0, 993, __pyx_L1_error)
   40615             : 
   40616             :       /* "_csparsetools.pyx":992
   40617             :  * 
   40618             :  *     for nk, k in enumerate(irows):
   40619             :  *         if k >= M or k < -M:             # <<<<<<<<<<<<<<
   40620             :  *             raise ValueError("row index %d out of bounds" % (k,))
   40621             :  *         if k < 0:
   40622             :  */
   40623             :     }
   40624             : 
   40625             :     /* "_csparsetools.pyx":994
   40626             :  *         if k >= M or k < -M:
   40627             :  *             raise ValueError("row index %d out of bounds" % (k,))
   40628             :  *         if k < 0:             # <<<<<<<<<<<<<<
   40629             :  *             k += M
   40630             :  * 
   40631             :  */
   40632       37728 :     __pyx_t_1 = (__pyx_v_k < 0);
   40633       37728 :     if (__pyx_t_1) {
   40634             : 
   40635             :       /* "_csparsetools.pyx":995
   40636             :  *             raise ValueError("row index %d out of bounds" % (k,))
   40637             :  *         if k < 0:
   40638             :  *             k += M             # <<<<<<<<<<<<<<
   40639             :  * 
   40640             :  *         if j_stride == 1 and nj == N:
   40641             :  */
   40642         119 :       __pyx_v_k = (__pyx_v_k + __pyx_v_M);
   40643             : 
   40644             :       /* "_csparsetools.pyx":994
   40645             :  *         if k >= M or k < -M:
   40646             :  *             raise ValueError("row index %d out of bounds" % (k,))
   40647             :  *         if k < 0:             # <<<<<<<<<<<<<<
   40648             :  *             k += M
   40649             :  * 
   40650             :  */
   40651             :     }
   40652             : 
   40653             :     /* "_csparsetools.pyx":997
   40654             :  *             k += M
   40655             :  * 
   40656             :  *         if j_stride == 1 and nj == N:             # <<<<<<<<<<<<<<
   40657             :  *             # full row slice
   40658             :  *             new_rows[nk] = list(rows[k])
   40659             :  */
   40660       37728 :     __pyx_t_8 = (__pyx_v_j_stride == 1);
   40661       37728 :     if (__pyx_t_8) {
   40662       28565 :     } else {
   40663        9163 :       __pyx_t_1 = __pyx_t_8;
   40664        9163 :       goto __pyx_L11_bool_binop_done;
   40665             :     }
   40666       28565 :     __pyx_t_8 = (__pyx_v_nj == __pyx_v_N);
   40667       28565 :     __pyx_t_1 = __pyx_t_8;
   40668       37728 :     __pyx_L11_bool_binop_done:;
   40669       37728 :     if (__pyx_t_1) {
   40670             : 
   40671             :       /* "_csparsetools.pyx":999
   40672             :  *         if j_stride == 1 and nj == N:
   40673             :  *             # full row slice
   40674             :  *             new_rows[nk] = list(rows[k])             # <<<<<<<<<<<<<<
   40675             :  *             new_datas[nk] = list(datas[k])
   40676             :  *         else:
   40677             :  */
   40678       17253 :       __pyx_t_13 = __pyx_v_k;
   40679       17253 :       __pyx_t_14 = -1;
   40680       17253 :       if (__pyx_t_13 < 0) {
   40681           0 :         __pyx_t_13 += __pyx_v_rows.shape[0];
   40682           0 :         if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0;
   40683       17253 :       } else if (unlikely(__pyx_t_13 >= __pyx_v_rows.shape[0])) __pyx_t_14 = 0;
   40684       17253 :       if (unlikely(__pyx_t_14 != -1)) {
   40685           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_14);
   40686           0 :         __PYX_ERR(0, 999, __pyx_L1_error)
   40687             :       }
   40688       17253 :       __pyx_t_6 = (PyObject *) *((PyObject *const  *) ( /* dim=0 */ (__pyx_v_rows.data + __pyx_t_13 * __pyx_v_rows.strides[0]) ));
   40689       17253 :       if (unlikely(__pyx_t_6 == NULL)) __pyx_t_6 = Py_None;
   40690       17253 :       __Pyx_INCREF((PyObject*)__pyx_t_6);
   40691       17253 :       __pyx_t_12 = PySequence_List(((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 999, __pyx_L1_error)
   40692       17253 :       __Pyx_GOTREF(__pyx_t_12);
   40693       17253 :       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   40694       17253 :       __pyx_t_13 = __pyx_v_nk;
   40695       17253 :       __pyx_t_14 = -1;
   40696       17253 :       if (__pyx_t_13 < 0) {
   40697             :         __pyx_t_13 += __pyx_v_new_rows.shape[0];
   40698             :         if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0;
   40699       17253 :       } else if (unlikely(__pyx_t_13 >= __pyx_v_new_rows.shape[0])) __pyx_t_14 = 0;
   40700       17253 :       if (unlikely(__pyx_t_14 != -1)) {
   40701           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_14);
   40702           0 :         __PYX_ERR(0, 999, __pyx_L1_error)
   40703             :       }
   40704       17253 :       __pyx_t_15 = ((PyObject * *) ( /* dim=0 */ (__pyx_v_new_rows.data + __pyx_t_13 * __pyx_v_new_rows.strides[0]) ));
   40705       17253 :       __Pyx_XGOTREF(*__pyx_t_15);
   40706       34506 :       __Pyx_INCREF(__pyx_t_12); __Pyx_XDECREF(*__pyx_t_15);
   40707       17253 :       *__pyx_t_15 = __pyx_t_12;
   40708       17253 :       __Pyx_XGIVEREF(*__pyx_t_15);
   40709       17253 :       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
   40710             : 
   40711             :       /* "_csparsetools.pyx":1000
   40712             :  *             # full row slice
   40713             :  *             new_rows[nk] = list(rows[k])
   40714             :  *             new_datas[nk] = list(datas[k])             # <<<<<<<<<<<<<<
   40715             :  *         else:
   40716             :  *             # partial row slice
   40717             :  */
   40718       17253 :       __pyx_t_13 = __pyx_v_k;
   40719       17253 :       __pyx_t_14 = -1;
   40720       17253 :       if (__pyx_t_13 < 0) {
   40721           0 :         __pyx_t_13 += __pyx_v_datas.shape[0];
   40722           0 :         if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0;
   40723       17253 :       } else if (unlikely(__pyx_t_13 >= __pyx_v_datas.shape[0])) __pyx_t_14 = 0;
   40724       17253 :       if (unlikely(__pyx_t_14 != -1)) {
   40725           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_14);
   40726           0 :         __PYX_ERR(0, 1000, __pyx_L1_error)
   40727             :       }
   40728       17253 :       __pyx_t_12 = (PyObject *) *((PyObject *const  *) ( /* dim=0 */ (__pyx_v_datas.data + __pyx_t_13 * __pyx_v_datas.strides[0]) ));
   40729       17253 :       if (unlikely(__pyx_t_12 == NULL)) __pyx_t_12 = Py_None;
   40730       17253 :       __Pyx_INCREF((PyObject*)__pyx_t_12);
   40731       17253 :       __pyx_t_6 = PySequence_List(((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1000, __pyx_L1_error)
   40732       17253 :       __Pyx_GOTREF(__pyx_t_6);
   40733       17253 :       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
   40734       17253 :       __pyx_t_13 = __pyx_v_nk;
   40735       17253 :       __pyx_t_14 = -1;
   40736       17253 :       if (__pyx_t_13 < 0) {
   40737             :         __pyx_t_13 += __pyx_v_new_datas.shape[0];
   40738             :         if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0;
   40739       17253 :       } else if (unlikely(__pyx_t_13 >= __pyx_v_new_datas.shape[0])) __pyx_t_14 = 0;
   40740       17253 :       if (unlikely(__pyx_t_14 != -1)) {
   40741           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_14);
   40742           0 :         __PYX_ERR(0, 1000, __pyx_L1_error)
   40743             :       }
   40744       17253 :       __pyx_t_15 = ((PyObject * *) ( /* dim=0 */ (__pyx_v_new_datas.data + __pyx_t_13 * __pyx_v_new_datas.strides[0]) ));
   40745       17253 :       __Pyx_XGOTREF(*__pyx_t_15);
   40746       34506 :       __Pyx_INCREF(__pyx_t_6); __Pyx_XDECREF(*__pyx_t_15);
   40747       17253 :       *__pyx_t_15 = __pyx_t_6;
   40748       17253 :       __Pyx_XGIVEREF(*__pyx_t_15);
   40749       17253 :       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   40750             : 
   40751             :       /* "_csparsetools.pyx":997
   40752             :  *             k += M
   40753             :  * 
   40754             :  *         if j_stride == 1 and nj == N:             # <<<<<<<<<<<<<<
   40755             :  *             # full row slice
   40756             :  *             new_rows[nk] = list(rows[k])
   40757             :  */
   40758       17253 :       goto __pyx_L10;
   40759             :     }
   40760             : 
   40761             :     /* "_csparsetools.pyx":1003
   40762             :  *         else:
   40763             :  *             # partial row slice
   40764             :  *             cur_row = rows[k]             # <<<<<<<<<<<<<<
   40765             :  *             cur_data = datas[k]
   40766             :  *             new_row = new_rows[nk]
   40767             :  */
   40768             :     /*else*/ {
   40769       20475 :       __pyx_t_13 = __pyx_v_k;
   40770       20475 :       __pyx_t_14 = -1;
   40771       20475 :       if (__pyx_t_13 < 0) {
   40772           0 :         __pyx_t_13 += __pyx_v_rows.shape[0];
   40773           0 :         if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0;
   40774       20475 :       } else if (unlikely(__pyx_t_13 >= __pyx_v_rows.shape[0])) __pyx_t_14 = 0;
   40775       20475 :       if (unlikely(__pyx_t_14 != -1)) {
   40776           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_14);
   40777           0 :         __PYX_ERR(0, 1003, __pyx_L1_error)
   40778             :       }
   40779       20475 :       __pyx_t_6 = (PyObject *) *((PyObject *const  *) ( /* dim=0 */ (__pyx_v_rows.data + __pyx_t_13 * __pyx_v_rows.strides[0]) ));
   40780       20475 :       if (unlikely(__pyx_t_6 == NULL)) __pyx_t_6 = Py_None;
   40781       20475 :       __Pyx_INCREF((PyObject*)__pyx_t_6);
   40782       20475 :       if (!(likely(PyList_CheckExact(((PyObject *)__pyx_t_6)))||((((PyObject *)__pyx_t_6)) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", ((PyObject *)__pyx_t_6)))) __PYX_ERR(0, 1003, __pyx_L1_error)
   40783       20475 :       __Pyx_XDECREF_SET(__pyx_v_cur_row, ((PyObject*)__pyx_t_6));
   40784       20475 :       __pyx_t_6 = 0;
   40785             : 
   40786             :       /* "_csparsetools.pyx":1004
   40787             :  *             # partial row slice
   40788             :  *             cur_row = rows[k]
   40789             :  *             cur_data = datas[k]             # <<<<<<<<<<<<<<
   40790             :  *             new_row = new_rows[nk]
   40791             :  *             new_data = new_datas[nk]
   40792             :  */
   40793       20475 :       __pyx_t_13 = __pyx_v_k;
   40794       20475 :       __pyx_t_14 = -1;
   40795       20475 :       if (__pyx_t_13 < 0) {
   40796           0 :         __pyx_t_13 += __pyx_v_datas.shape[0];
   40797           0 :         if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0;
   40798       20475 :       } else if (unlikely(__pyx_t_13 >= __pyx_v_datas.shape[0])) __pyx_t_14 = 0;
   40799       20475 :       if (unlikely(__pyx_t_14 != -1)) {
   40800           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_14);
   40801           0 :         __PYX_ERR(0, 1004, __pyx_L1_error)
   40802             :       }
   40803       20475 :       __pyx_t_6 = (PyObject *) *((PyObject *const  *) ( /* dim=0 */ (__pyx_v_datas.data + __pyx_t_13 * __pyx_v_datas.strides[0]) ));
   40804       20475 :       if (unlikely(__pyx_t_6 == NULL)) __pyx_t_6 = Py_None;
   40805       20475 :       __Pyx_INCREF((PyObject*)__pyx_t_6);
   40806       20475 :       if (!(likely(PyList_CheckExact(((PyObject *)__pyx_t_6)))||((((PyObject *)__pyx_t_6)) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", ((PyObject *)__pyx_t_6)))) __PYX_ERR(0, 1004, __pyx_L1_error)
   40807       20475 :       __Pyx_XDECREF_SET(__pyx_v_cur_data, ((PyObject*)__pyx_t_6));
   40808       20475 :       __pyx_t_6 = 0;
   40809             : 
   40810             :       /* "_csparsetools.pyx":1005
   40811             :  *             cur_row = rows[k]
   40812             :  *             cur_data = datas[k]
   40813             :  *             new_row = new_rows[nk]             # <<<<<<<<<<<<<<
   40814             :  *             new_data = new_datas[nk]
   40815             :  * 
   40816             :  */
   40817       20475 :       __pyx_t_13 = __pyx_v_nk;
   40818       20475 :       __pyx_t_14 = -1;
   40819       20475 :       if (__pyx_t_13 < 0) {
   40820             :         __pyx_t_13 += __pyx_v_new_rows.shape[0];
   40821             :         if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0;
   40822       20475 :       } else if (unlikely(__pyx_t_13 >= __pyx_v_new_rows.shape[0])) __pyx_t_14 = 0;
   40823       20475 :       if (unlikely(__pyx_t_14 != -1)) {
   40824           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_14);
   40825           0 :         __PYX_ERR(0, 1005, __pyx_L1_error)
   40826             :       }
   40827       20475 :       __pyx_t_6 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_new_rows.data + __pyx_t_13 * __pyx_v_new_rows.strides[0]) ));
   40828       20475 :       if (unlikely(__pyx_t_6 == NULL)) __pyx_t_6 = Py_None;
   40829       20475 :       __Pyx_INCREF((PyObject*)__pyx_t_6);
   40830       20475 :       if (!(likely(PyList_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_6))) __PYX_ERR(0, 1005, __pyx_L1_error)
   40831       20475 :       __Pyx_XDECREF_SET(__pyx_v_new_row, ((PyObject*)__pyx_t_6));
   40832       20475 :       __pyx_t_6 = 0;
   40833             : 
   40834             :       /* "_csparsetools.pyx":1006
   40835             :  *             cur_data = datas[k]
   40836             :  *             new_row = new_rows[nk]
   40837             :  *             new_data = new_datas[nk]             # <<<<<<<<<<<<<<
   40838             :  * 
   40839             :  *             if j_stride > 0:
   40840             :  */
   40841       20475 :       __pyx_t_13 = __pyx_v_nk;
   40842       20475 :       __pyx_t_14 = -1;
   40843       20475 :       if (__pyx_t_13 < 0) {
   40844             :         __pyx_t_13 += __pyx_v_new_datas.shape[0];
   40845             :         if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0;
   40846       20475 :       } else if (unlikely(__pyx_t_13 >= __pyx_v_new_datas.shape[0])) __pyx_t_14 = 0;
   40847       20475 :       if (unlikely(__pyx_t_14 != -1)) {
   40848           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_14);
   40849           0 :         __PYX_ERR(0, 1006, __pyx_L1_error)
   40850             :       }
   40851       20475 :       __pyx_t_6 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_new_datas.data + __pyx_t_13 * __pyx_v_new_datas.strides[0]) ));
   40852       20475 :       if (unlikely(__pyx_t_6 == NULL)) __pyx_t_6 = Py_None;
   40853       20475 :       __Pyx_INCREF((PyObject*)__pyx_t_6);
   40854       20475 :       if (!(likely(PyList_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_6))) __PYX_ERR(0, 1006, __pyx_L1_error)
   40855       20475 :       __Pyx_XDECREF_SET(__pyx_v_new_data, ((PyObject*)__pyx_t_6));
   40856       20475 :       __pyx_t_6 = 0;
   40857             : 
   40858             :       /* "_csparsetools.pyx":1008
   40859             :  *             new_data = new_datas[nk]
   40860             :  * 
   40861             :  *             if j_stride > 0:             # <<<<<<<<<<<<<<
   40862             :  *                 a = bisect_left(cur_row, j_start)
   40863             :  *                 for m in range(a, len(cur_row)):
   40864             :  */
   40865       20475 :       __pyx_t_1 = (__pyx_v_j_stride > 0);
   40866       20475 :       if (__pyx_t_1) {
   40867             : 
   40868             :         /* "_csparsetools.pyx":1009
   40869             :  * 
   40870             :  *             if j_stride > 0:
   40871             :  *                 a = bisect_left(cur_row, j_start)             # <<<<<<<<<<<<<<
   40872             :  *                 for m in range(a, len(cur_row)):
   40873             :  *                     j = cur_row[m]
   40874             :  */
   40875       16058 :         __pyx_t_7 = __pyx_f_13_csparsetools_bisect_left(__pyx_v_cur_row, __pyx_v_j_start); if (unlikely(__pyx_t_7 == ((npy_intp)-1L))) __PYX_ERR(0, 1009, __pyx_L1_error)
   40876       16058 :         __pyx_v_a = __pyx_t_7;
   40877             : 
   40878             :         /* "_csparsetools.pyx":1010
   40879             :  *             if j_stride > 0:
   40880             :  *                 a = bisect_left(cur_row, j_start)
   40881             :  *                 for m in range(a, len(cur_row)):             # <<<<<<<<<<<<<<
   40882             :  *                     j = cur_row[m]
   40883             :  *                     if j >= j_stop:
   40884             :  */
   40885       16058 :         if (unlikely(__pyx_v_cur_row == Py_None)) {
   40886           0 :           PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   40887           0 :           __PYX_ERR(0, 1010, __pyx_L1_error)
   40888             :         }
   40889       16058 :         __pyx_t_9 = __Pyx_PyList_GET_SIZE(__pyx_v_cur_row); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1010, __pyx_L1_error)
   40890             :         __pyx_t_16 = __pyx_t_9;
   40891       57292 :         for (__pyx_t_7 = __pyx_v_a; __pyx_t_7 < __pyx_t_16; __pyx_t_7+=1) {
   40892       54104 :           __pyx_v_m = __pyx_t_7;
   40893             : 
   40894             :           /* "_csparsetools.pyx":1011
   40895             :  *                 a = bisect_left(cur_row, j_start)
   40896             :  *                 for m in range(a, len(cur_row)):
   40897             :  *                     j = cur_row[m]             # <<<<<<<<<<<<<<
   40898             :  *                     if j >= j_stop:
   40899             :  *                         break
   40900             :  */
   40901       54104 :           if (unlikely(__pyx_v_cur_row == Py_None)) {
   40902             :             PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   40903             :             __PYX_ERR(0, 1011, __pyx_L1_error)
   40904             :           }
   40905       54104 :           __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_cur_row, __pyx_v_m, npy_intp, 1, __Pyx_PyInt_From_npy_intp, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1011, __pyx_L1_error)
   40906       54104 :           __Pyx_GOTREF(__pyx_t_6);
   40907       54104 :           __pyx_t_17 = __Pyx_PyInt_As_npy_intp(__pyx_t_6); if (unlikely((__pyx_t_17 == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1011, __pyx_L1_error)
   40908       54104 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   40909       54104 :           __pyx_v_j = __pyx_t_17;
   40910             : 
   40911             :           /* "_csparsetools.pyx":1012
   40912             :  *                 for m in range(a, len(cur_row)):
   40913             :  *                     j = cur_row[m]
   40914             :  *                     if j >= j_stop:             # <<<<<<<<<<<<<<
   40915             :  *                         break
   40916             :  *                     r = (j - j_start) % j_stride
   40917             :  */
   40918       54104 :           __pyx_t_1 = (__pyx_v_j >= __pyx_v_j_stop);
   40919       54104 :           if (__pyx_t_1) {
   40920             : 
   40921             :             /* "_csparsetools.pyx":1013
   40922             :  *                     j = cur_row[m]
   40923             :  *                     if j >= j_stop:
   40924             :  *                         break             # <<<<<<<<<<<<<<
   40925             :  *                     r = (j - j_start) % j_stride
   40926             :  *                     if r != 0:
   40927             :  */
   40928       12870 :             goto __pyx_L15_break;
   40929             : 
   40930             :             /* "_csparsetools.pyx":1012
   40931             :  *                 for m in range(a, len(cur_row)):
   40932             :  *                     j = cur_row[m]
   40933             :  *                     if j >= j_stop:             # <<<<<<<<<<<<<<
   40934             :  *                         break
   40935             :  *                     r = (j - j_start) % j_stride
   40936             :  */
   40937             :           }
   40938             : 
   40939             :           /* "_csparsetools.pyx":1014
   40940             :  *                     if j >= j_stop:
   40941             :  *                         break
   40942             :  *                     r = (j - j_start) % j_stride             # <<<<<<<<<<<<<<
   40943             :  *                     if r != 0:
   40944             :  *                         continue
   40945             :  */
   40946       41234 :           __pyx_t_17 = (__pyx_v_j - __pyx_v_j_start);
   40947       41234 :           if (unlikely(__pyx_v_j_stride == 0)) {
   40948             :             PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
   40949             :             __PYX_ERR(0, 1014, __pyx_L1_error)
   40950             :           }
   40951       41234 :           __pyx_v_r = __Pyx_mod_npy_intp(__pyx_t_17, __pyx_v_j_stride);
   40952             : 
   40953             :           /* "_csparsetools.pyx":1015
   40954             :  *                         break
   40955             :  *                     r = (j - j_start) % j_stride
   40956             :  *                     if r != 0:             # <<<<<<<<<<<<<<
   40957             :  *                         continue
   40958             :  *                     p = (j - j_start) // j_stride
   40959             :  */
   40960       41234 :           __pyx_t_1 = (__pyx_v_r != 0);
   40961       41234 :           if (__pyx_t_1) {
   40962             : 
   40963             :             /* "_csparsetools.pyx":1016
   40964             :  *                     r = (j - j_start) % j_stride
   40965             :  *                     if r != 0:
   40966             :  *                         continue             # <<<<<<<<<<<<<<
   40967             :  *                     p = (j - j_start) // j_stride
   40968             :  *                     new_row.append(p)
   40969             :  */
   40970       12754 :             goto __pyx_L14_continue;
   40971             : 
   40972             :             /* "_csparsetools.pyx":1015
   40973             :  *                         break
   40974             :  *                     r = (j - j_start) % j_stride
   40975             :  *                     if r != 0:             # <<<<<<<<<<<<<<
   40976             :  *                         continue
   40977             :  *                     p = (j - j_start) // j_stride
   40978             :  */
   40979             :           }
   40980             : 
   40981             :           /* "_csparsetools.pyx":1017
   40982             :  *                     if r != 0:
   40983             :  *                         continue
   40984             :  *                     p = (j - j_start) // j_stride             # <<<<<<<<<<<<<<
   40985             :  *                     new_row.append(p)
   40986             :  *                     new_data.append(cur_data[m])
   40987             :  */
   40988       28480 :           __pyx_t_17 = (__pyx_v_j - __pyx_v_j_start);
   40989       28480 :           if (unlikely(__pyx_v_j_stride == 0)) {
   40990             :             PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
   40991             :             __PYX_ERR(0, 1017, __pyx_L1_error)
   40992             :           }
   40993       28480 :           else if (sizeof(npy_intp) == sizeof(long) && (!(((npy_intp)-1) > 0)) && unlikely(__pyx_v_j_stride == (npy_intp)-1)  && unlikely(__Pyx_UNARY_NEG_WOULD_OVERFLOW(__pyx_t_17))) {
   40994             :             PyErr_SetString(PyExc_OverflowError, "value too large to perform division");
   40995             :             __PYX_ERR(0, 1017, __pyx_L1_error)
   40996             :           }
   40997       28480 :           __pyx_v_p = __Pyx_div_npy_intp(__pyx_t_17, __pyx_v_j_stride);
   40998             : 
   40999             :           /* "_csparsetools.pyx":1018
   41000             :  *                         continue
   41001             :  *                     p = (j - j_start) // j_stride
   41002             :  *                     new_row.append(p)             # <<<<<<<<<<<<<<
   41003             :  *                     new_data.append(cur_data[m])
   41004             :  *             else:
   41005             :  */
   41006       28480 :           if (unlikely(__pyx_v_new_row == Py_None)) {
   41007           0 :             PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
   41008           0 :             __PYX_ERR(0, 1018, __pyx_L1_error)
   41009             :           }
   41010       28480 :           __pyx_t_6 = __Pyx_PyInt_From_npy_intp(__pyx_v_p); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1018, __pyx_L1_error)
   41011       28480 :           __Pyx_GOTREF(__pyx_t_6);
   41012       28480 :           __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_new_row, __pyx_t_6); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 1018, __pyx_L1_error)
   41013       28480 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   41014             : 
   41015             :           /* "_csparsetools.pyx":1019
   41016             :  *                     p = (j - j_start) // j_stride
   41017             :  *                     new_row.append(p)
   41018             :  *                     new_data.append(cur_data[m])             # <<<<<<<<<<<<<<
   41019             :  *             else:
   41020             :  *                 a = bisect_right(cur_row, j_stop)
   41021             :  */
   41022       28480 :           if (unlikely(__pyx_v_new_data == Py_None)) {
   41023           0 :             PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
   41024           0 :             __PYX_ERR(0, 1019, __pyx_L1_error)
   41025             :           }
   41026       28480 :           if (unlikely(__pyx_v_cur_data == Py_None)) {
   41027           0 :             PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   41028           0 :             __PYX_ERR(0, 1019, __pyx_L1_error)
   41029             :           }
   41030       28480 :           __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_cur_data, __pyx_v_m, npy_intp, 1, __Pyx_PyInt_From_npy_intp, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1019, __pyx_L1_error)
   41031       28480 :           __Pyx_GOTREF(__pyx_t_6);
   41032       28480 :           __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_new_data, __pyx_t_6); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 1019, __pyx_L1_error)
   41033       28480 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   41034       41234 :           __pyx_L14_continue:;
   41035             :         }
   41036        3188 :         __pyx_L15_break:;
   41037             : 
   41038             :         /* "_csparsetools.pyx":1008
   41039             :  *             new_data = new_datas[nk]
   41040             :  * 
   41041             :  *             if j_stride > 0:             # <<<<<<<<<<<<<<
   41042             :  *                 a = bisect_left(cur_row, j_start)
   41043             :  *                 for m in range(a, len(cur_row)):
   41044             :  */
   41045       16058 :         goto __pyx_L13;
   41046             :       }
   41047             : 
   41048             :       /* "_csparsetools.pyx":1021
   41049             :  *                     new_data.append(cur_data[m])
   41050             :  *             else:
   41051             :  *                 a = bisect_right(cur_row, j_stop)             # <<<<<<<<<<<<<<
   41052             :  *                 for m in range(a, len(cur_row)):
   41053             :  *                     j = cur_row[m]
   41054             :  */
   41055             :       /*else*/ {
   41056        4417 :         __pyx_t_7 = __pyx_f_13_csparsetools_bisect_right(__pyx_v_cur_row, __pyx_v_j_stop); if (unlikely(__pyx_t_7 == ((npy_intp)-1L))) __PYX_ERR(0, 1021, __pyx_L1_error)
   41057        4417 :         __pyx_v_a = __pyx_t_7;
   41058             : 
   41059             :         /* "_csparsetools.pyx":1022
   41060             :  *             else:
   41061             :  *                 a = bisect_right(cur_row, j_stop)
   41062             :  *                 for m in range(a, len(cur_row)):             # <<<<<<<<<<<<<<
   41063             :  *                     j = cur_row[m]
   41064             :  *                     if j > j_start:
   41065             :  */
   41066        4417 :         if (unlikely(__pyx_v_cur_row == Py_None)) {
   41067           0 :           PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   41068           0 :           __PYX_ERR(0, 1022, __pyx_L1_error)
   41069             :         }
   41070        4417 :         __pyx_t_9 = __Pyx_PyList_GET_SIZE(__pyx_v_cur_row); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1022, __pyx_L1_error)
   41071             :         __pyx_t_16 = __pyx_t_9;
   41072       23632 :         for (__pyx_t_7 = __pyx_v_a; __pyx_t_7 < __pyx_t_16; __pyx_t_7+=1) {
   41073       21728 :           __pyx_v_m = __pyx_t_7;
   41074             : 
   41075             :           /* "_csparsetools.pyx":1023
   41076             :  *                 a = bisect_right(cur_row, j_stop)
   41077             :  *                 for m in range(a, len(cur_row)):
   41078             :  *                     j = cur_row[m]             # <<<<<<<<<<<<<<
   41079             :  *                     if j > j_start:
   41080             :  *                         break
   41081             :  */
   41082       21728 :           if (unlikely(__pyx_v_cur_row == Py_None)) {
   41083             :             PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   41084             :             __PYX_ERR(0, 1023, __pyx_L1_error)
   41085             :           }
   41086       21728 :           __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_cur_row, __pyx_v_m, npy_intp, 1, __Pyx_PyInt_From_npy_intp, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1023, __pyx_L1_error)
   41087       21728 :           __Pyx_GOTREF(__pyx_t_6);
   41088       21728 :           __pyx_t_17 = __Pyx_PyInt_As_npy_intp(__pyx_t_6); if (unlikely((__pyx_t_17 == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1023, __pyx_L1_error)
   41089       21728 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   41090       21728 :           __pyx_v_j = __pyx_t_17;
   41091             : 
   41092             :           /* "_csparsetools.pyx":1024
   41093             :  *                 for m in range(a, len(cur_row)):
   41094             :  *                     j = cur_row[m]
   41095             :  *                     if j > j_start:             # <<<<<<<<<<<<<<
   41096             :  *                         break
   41097             :  *                     r = (j - j_start) % j_stride
   41098             :  */
   41099       21728 :           __pyx_t_1 = (__pyx_v_j > __pyx_v_j_start);
   41100       21728 :           if (__pyx_t_1) {
   41101             : 
   41102             :             /* "_csparsetools.pyx":1025
   41103             :  *                     j = cur_row[m]
   41104             :  *                     if j > j_start:
   41105             :  *                         break             # <<<<<<<<<<<<<<
   41106             :  *                     r = (j - j_start) % j_stride
   41107             :  *                     if r != 0:
   41108             :  */
   41109        2513 :             goto __pyx_L19_break;
   41110             : 
   41111             :             /* "_csparsetools.pyx":1024
   41112             :  *                 for m in range(a, len(cur_row)):
   41113             :  *                     j = cur_row[m]
   41114             :  *                     if j > j_start:             # <<<<<<<<<<<<<<
   41115             :  *                         break
   41116             :  *                     r = (j - j_start) % j_stride
   41117             :  */
   41118             :           }
   41119             : 
   41120             :           /* "_csparsetools.pyx":1026
   41121             :  *                     if j > j_start:
   41122             :  *                         break
   41123             :  *                     r = (j - j_start) % j_stride             # <<<<<<<<<<<<<<
   41124             :  *                     if r != 0:
   41125             :  *                         continue
   41126             :  */
   41127       19215 :           __pyx_t_17 = (__pyx_v_j - __pyx_v_j_start);
   41128       19215 :           if (unlikely(__pyx_v_j_stride == 0)) {
   41129             :             PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
   41130             :             __PYX_ERR(0, 1026, __pyx_L1_error)
   41131             :           }
   41132       19215 :           __pyx_v_r = __Pyx_mod_npy_intp(__pyx_t_17, __pyx_v_j_stride);
   41133             : 
   41134             :           /* "_csparsetools.pyx":1027
   41135             :  *                         break
   41136             :  *                     r = (j - j_start) % j_stride
   41137             :  *                     if r != 0:             # <<<<<<<<<<<<<<
   41138             :  *                         continue
   41139             :  *                     p = (j - j_start) // j_stride
   41140             :  */
   41141       19215 :           __pyx_t_1 = (__pyx_v_r != 0);
   41142       19215 :           if (__pyx_t_1) {
   41143             : 
   41144             :             /* "_csparsetools.pyx":1028
   41145             :  *                     r = (j - j_start) % j_stride
   41146             :  *                     if r != 0:
   41147             :  *                         continue             # <<<<<<<<<<<<<<
   41148             :  *                     p = (j - j_start) // j_stride
   41149             :  *                     new_row.insert(0, p)
   41150             :  */
   41151        5712 :             goto __pyx_L18_continue;
   41152             : 
   41153             :             /* "_csparsetools.pyx":1027
   41154             :  *                         break
   41155             :  *                     r = (j - j_start) % j_stride
   41156             :  *                     if r != 0:             # <<<<<<<<<<<<<<
   41157             :  *                         continue
   41158             :  *                     p = (j - j_start) // j_stride
   41159             :  */
   41160             :           }
   41161             : 
   41162             :           /* "_csparsetools.pyx":1029
   41163             :  *                     if r != 0:
   41164             :  *                         continue
   41165             :  *                     p = (j - j_start) // j_stride             # <<<<<<<<<<<<<<
   41166             :  *                     new_row.insert(0, p)
   41167             :  *                     new_data.insert(0, cur_data[m])
   41168             :  */
   41169       13503 :           __pyx_t_17 = (__pyx_v_j - __pyx_v_j_start);
   41170       13503 :           if (unlikely(__pyx_v_j_stride == 0)) {
   41171             :             PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
   41172             :             __PYX_ERR(0, 1029, __pyx_L1_error)
   41173             :           }
   41174       13503 :           else if (sizeof(npy_intp) == sizeof(long) && (!(((npy_intp)-1) > 0)) && unlikely(__pyx_v_j_stride == (npy_intp)-1)  && unlikely(__Pyx_UNARY_NEG_WOULD_OVERFLOW(__pyx_t_17))) {
   41175           0 :             PyErr_SetString(PyExc_OverflowError, "value too large to perform division");
   41176           0 :             __PYX_ERR(0, 1029, __pyx_L1_error)
   41177             :           }
   41178       13503 :           __pyx_v_p = __Pyx_div_npy_intp(__pyx_t_17, __pyx_v_j_stride);
   41179             : 
   41180             :           /* "_csparsetools.pyx":1030
   41181             :  *                         continue
   41182             :  *                     p = (j - j_start) // j_stride
   41183             :  *                     new_row.insert(0, p)             # <<<<<<<<<<<<<<
   41184             :  *                     new_data.insert(0, cur_data[m])
   41185             :  * 
   41186             :  */
   41187       13503 :           if (unlikely(__pyx_v_new_row == Py_None)) {
   41188           0 :             PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "insert");
   41189           0 :             __PYX_ERR(0, 1030, __pyx_L1_error)
   41190             :           }
   41191       13503 :           __pyx_t_6 = __Pyx_PyInt_From_npy_intp(__pyx_v_p); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1030, __pyx_L1_error)
   41192       13503 :           __Pyx_GOTREF(__pyx_t_6);
   41193       13503 :           __pyx_t_18 = PyList_Insert(__pyx_v_new_row, 0, __pyx_t_6); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 1030, __pyx_L1_error)
   41194       13503 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   41195             : 
   41196             :           /* "_csparsetools.pyx":1031
   41197             :  *                     p = (j - j_start) // j_stride
   41198             :  *                     new_row.insert(0, p)
   41199             :  *                     new_data.insert(0, cur_data[m])             # <<<<<<<<<<<<<<
   41200             :  * 
   41201             :  * 
   41202             :  */
   41203       13503 :           if (unlikely(__pyx_v_new_data == Py_None)) {
   41204           0 :             PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "insert");
   41205           0 :             __PYX_ERR(0, 1031, __pyx_L1_error)
   41206             :           }
   41207       13503 :           if (unlikely(__pyx_v_cur_data == Py_None)) {
   41208           0 :             PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   41209           0 :             __PYX_ERR(0, 1031, __pyx_L1_error)
   41210             :           }
   41211       13503 :           __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_cur_data, __pyx_v_m, npy_intp, 1, __Pyx_PyInt_From_npy_intp, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1031, __pyx_L1_error)
   41212       13503 :           __Pyx_GOTREF(__pyx_t_6);
   41213       13503 :           __pyx_t_18 = PyList_Insert(__pyx_v_new_data, 0, __pyx_t_6); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 1031, __pyx_L1_error)
   41214       13503 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   41215       19215 :           __pyx_L18_continue:;
   41216             :         }
   41217       26446 :         __pyx_L19_break:;
   41218             :       }
   41219       26446 :       __pyx_L13:;
   41220             :     }
   41221       26446 :     __pyx_L10:;
   41222             : 
   41223             :     /* "_csparsetools.pyx":991
   41224             :  *         raise ValueError("cannot index with zero stride")
   41225             :  * 
   41226             :  *     for nk, k in enumerate(irows):             # <<<<<<<<<<<<<<
   41227             :  *         if k >= M or k < -M:
   41228             :  *             raise ValueError("row index %d out of bounds" % (k,))
   41229             :  */
   41230             :   }
   41231       26446 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   41232             : 
   41233             :   /* "_csparsetools.pyx":958
   41234             :  * 
   41235             :  * 
   41236             :  * def lil_get_row_ranges(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   41237             :  *                        const obj_fused[:] rows, const obj_fused[:] datas,
   41238             :  *                        object[:] new_rows, object[:] new_datas,
   41239             :  */
   41240             : 
   41241             :   /* function exit code */
   41242       26446 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   41243       26446 :   goto __pyx_L0;
   41244           0 :   __pyx_L1_error:;
   41245           0 :   __Pyx_XDECREF(__pyx_t_2);
   41246           0 :   __Pyx_XDECREF(__pyx_t_6);
   41247           0 :   __Pyx_XDECREF(__pyx_t_11);
   41248           0 :   __Pyx_XDECREF(__pyx_t_12);
   41249           0 :   __Pyx_AddTraceback("_csparsetools.lil_get_row_ranges", __pyx_clineno, __pyx_lineno, __pyx_filename);
   41250           0 :   __pyx_r = NULL;
   41251       26446 :   __pyx_L0:;
   41252       26446 :   __Pyx_XDECREF(__pyx_v_cur_row);
   41253       26446 :   __Pyx_XDECREF(__pyx_v_cur_data);
   41254       26446 :   __Pyx_XDECREF(__pyx_v_new_row);
   41255       26446 :   __Pyx_XDECREF(__pyx_v_new_data);
   41256       26446 :   __Pyx_XGIVEREF(__pyx_r);
   41257       26446 :   __Pyx_RefNannyFinishContext();
   41258       26446 :   return __pyx_r;
   41259             : }
   41260             : 
   41261             : /* Python wrapper */
   41262             : static PyObject *__pyx_fuse_1__pyx_pw_13_csparsetools_121lil_get_row_ranges(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
   41263             : static PyMethodDef __pyx_fuse_1__pyx_mdef_13_csparsetools_121lil_get_row_ranges = {"__pyx_fuse_1lil_get_row_ranges", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_13_csparsetools_121lil_get_row_ranges, METH_VARARGS|METH_KEYWORDS, __pyx_doc_13_csparsetools_110lil_get_row_ranges};
   41264           0 : static PyObject *__pyx_fuse_1__pyx_pw_13_csparsetools_121lil_get_row_ranges(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
   41265           0 :   npy_intp __pyx_v_M;
   41266           0 :   npy_intp __pyx_v_N;
   41267           0 :   __Pyx_memviewslice __pyx_v_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   41268           0 :   __Pyx_memviewslice __pyx_v_datas = { 0, 0, { 0 }, { 0 }, { 0 } };
   41269           0 :   __Pyx_memviewslice __pyx_v_new_rows = { 0, 0, { 0 }, { 0 }, { 0 } };
   41270           0 :   __Pyx_memviewslice __pyx_v_new_datas = { 0, 0, { 0 }, { 0 }, { 0 } };
   41271           0 :   PyObject *__pyx_v_irows = 0;
   41272           0 :   npy_intp __pyx_v_j_start;
   41273           0 :   npy_intp __pyx_v_j_stop;
   41274           0 :   npy_intp __pyx_v_j_stride;
   41275           0 :   npy_intp __pyx_v_nj;
   41276           0 :   CYTHON_UNUSED Py_ssize_t __pyx_nargs;
   41277           0 :   CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
   41278           0 :   PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
   41279           0 :   int __pyx_lineno = 0;
   41280           0 :   const char *__pyx_filename = NULL;
   41281           0 :   int __pyx_clineno = 0;
   41282           0 :   PyObject *__pyx_r = 0;
   41283             :   __Pyx_RefNannyDeclarations
   41284           0 :   __Pyx_RefNannySetupContext("lil_get_row_ranges (wrapper)", 0);
   41285             :   #if CYTHON_ASSUME_SAFE_MACROS
   41286           0 :   __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
   41287             :   #else
   41288             :   __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
   41289             :   #endif
   41290           0 :   __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
   41291             :   {
   41292           0 :     PyObject **__pyx_pyargnames[] = {&__pyx_n_s_M,&__pyx_n_s_N,&__pyx_n_s_rows,&__pyx_n_s_datas,&__pyx_n_s_new_rows,&__pyx_n_s_new_datas,&__pyx_n_s_irows,&__pyx_n_s_j_start,&__pyx_n_s_j_stop,&__pyx_n_s_j_stride,&__pyx_n_s_nj,0};
   41293           0 :     if (__pyx_kwds) {
   41294           0 :       Py_ssize_t kw_args;
   41295           0 :       switch (__pyx_nargs) {
   41296           0 :         case 11: values[10] = __Pyx_Arg_VARARGS(__pyx_args, 10);
   41297           0 :         CYTHON_FALLTHROUGH;
   41298           0 :         case 10: values[9] = __Pyx_Arg_VARARGS(__pyx_args, 9);
   41299           0 :         CYTHON_FALLTHROUGH;
   41300           0 :         case  9: values[8] = __Pyx_Arg_VARARGS(__pyx_args, 8);
   41301           0 :         CYTHON_FALLTHROUGH;
   41302           0 :         case  8: values[7] = __Pyx_Arg_VARARGS(__pyx_args, 7);
   41303           0 :         CYTHON_FALLTHROUGH;
   41304           0 :         case  7: values[6] = __Pyx_Arg_VARARGS(__pyx_args, 6);
   41305           0 :         CYTHON_FALLTHROUGH;
   41306           0 :         case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
   41307           0 :         CYTHON_FALLTHROUGH;
   41308           0 :         case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
   41309           0 :         CYTHON_FALLTHROUGH;
   41310           0 :         case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
   41311           0 :         CYTHON_FALLTHROUGH;
   41312           0 :         case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
   41313           0 :         CYTHON_FALLTHROUGH;
   41314           0 :         case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
   41315           0 :         CYTHON_FALLTHROUGH;
   41316           0 :         case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
   41317           0 :         CYTHON_FALLTHROUGH;
   41318           0 :         case  0: break;
   41319           0 :         default: goto __pyx_L5_argtuple_error;
   41320             :       }
   41321           0 :       kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
   41322           0 :       switch (__pyx_nargs) {
   41323           0 :         case  0:
   41324           0 :         if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_M)) != 0)) {
   41325           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
   41326           0 :           kw_args--;
   41327             :         }
   41328           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   41329           0 :         else goto __pyx_L5_argtuple_error;
   41330           0 :         CYTHON_FALLTHROUGH;
   41331             :         case  1:
   41332           0 :         if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_N)) != 0)) {
   41333           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
   41334           0 :           kw_args--;
   41335             :         }
   41336           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   41337             :         else {
   41338           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 1); __PYX_ERR(0, 958, __pyx_L3_error)
   41339             :         }
   41340           0 :         CYTHON_FALLTHROUGH;
   41341             :         case  2:
   41342           0 :         if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rows)) != 0)) {
   41343           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
   41344           0 :           kw_args--;
   41345             :         }
   41346           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   41347             :         else {
   41348           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 2); __PYX_ERR(0, 958, __pyx_L3_error)
   41349             :         }
   41350           0 :         CYTHON_FALLTHROUGH;
   41351             :         case  3:
   41352           0 :         if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_datas)) != 0)) {
   41353           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[3]);
   41354           0 :           kw_args--;
   41355             :         }
   41356           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   41357             :         else {
   41358           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 3); __PYX_ERR(0, 958, __pyx_L3_error)
   41359             :         }
   41360           0 :         CYTHON_FALLTHROUGH;
   41361             :         case  4:
   41362           0 :         if (likely((values[4] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_new_rows)) != 0)) {
   41363           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[4]);
   41364           0 :           kw_args--;
   41365             :         }
   41366           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   41367             :         else {
   41368           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 4); __PYX_ERR(0, 958, __pyx_L3_error)
   41369             :         }
   41370           0 :         CYTHON_FALLTHROUGH;
   41371             :         case  5:
   41372           0 :         if (likely((values[5] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_new_datas)) != 0)) {
   41373           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[5]);
   41374           0 :           kw_args--;
   41375             :         }
   41376           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   41377             :         else {
   41378           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 5); __PYX_ERR(0, 958, __pyx_L3_error)
   41379             :         }
   41380           0 :         CYTHON_FALLTHROUGH;
   41381             :         case  6:
   41382           0 :         if (likely((values[6] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_irows)) != 0)) {
   41383           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[6]);
   41384           0 :           kw_args--;
   41385             :         }
   41386           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   41387             :         else {
   41388           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 6); __PYX_ERR(0, 958, __pyx_L3_error)
   41389             :         }
   41390           0 :         CYTHON_FALLTHROUGH;
   41391             :         case  7:
   41392           0 :         if (likely((values[7] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_start)) != 0)) {
   41393           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[7]);
   41394           0 :           kw_args--;
   41395             :         }
   41396           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   41397             :         else {
   41398           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 7); __PYX_ERR(0, 958, __pyx_L3_error)
   41399             :         }
   41400           0 :         CYTHON_FALLTHROUGH;
   41401             :         case  8:
   41402           0 :         if (likely((values[8] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_stop)) != 0)) {
   41403           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[8]);
   41404           0 :           kw_args--;
   41405             :         }
   41406           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   41407             :         else {
   41408           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 8); __PYX_ERR(0, 958, __pyx_L3_error)
   41409             :         }
   41410           0 :         CYTHON_FALLTHROUGH;
   41411             :         case  9:
   41412           0 :         if (likely((values[9] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_j_stride)) != 0)) {
   41413           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[9]);
   41414           0 :           kw_args--;
   41415             :         }
   41416           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   41417             :         else {
   41418           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 9); __PYX_ERR(0, 958, __pyx_L3_error)
   41419             :         }
   41420           0 :         CYTHON_FALLTHROUGH;
   41421             :         case 10:
   41422           0 :         if (likely((values[10] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nj)) != 0)) {
   41423           0 :           (void)__Pyx_Arg_NewRef_VARARGS(values[10]);
   41424           0 :           kw_args--;
   41425             :         }
   41426           0 :         else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   41427             :         else {
   41428           0 :           __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, 10); __PYX_ERR(0, 958, __pyx_L3_error)
   41429             :         }
   41430             :       }
   41431           0 :       if (unlikely(kw_args > 0)) {
   41432           0 :         const Py_ssize_t kwd_pos_args = __pyx_nargs;
   41433           0 :         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "lil_get_row_ranges") < 0)) __PYX_ERR(0, 958, __pyx_L3_error)
   41434             :       }
   41435           0 :     } else if (unlikely(__pyx_nargs != 11)) {
   41436           0 :       goto __pyx_L5_argtuple_error;
   41437             :     } else {
   41438           0 :       values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
   41439           0 :       values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
   41440           0 :       values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
   41441           0 :       values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
   41442           0 :       values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
   41443           0 :       values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
   41444           0 :       values[6] = __Pyx_Arg_VARARGS(__pyx_args, 6);
   41445           0 :       values[7] = __Pyx_Arg_VARARGS(__pyx_args, 7);
   41446           0 :       values[8] = __Pyx_Arg_VARARGS(__pyx_args, 8);
   41447           0 :       values[9] = __Pyx_Arg_VARARGS(__pyx_args, 9);
   41448           0 :       values[10] = __Pyx_Arg_VARARGS(__pyx_args, 10);
   41449             :     }
   41450           0 :     __pyx_v_M = __Pyx_PyInt_As_npy_intp(values[0]); if (unlikely((__pyx_v_M == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   41451           0 :     __pyx_v_N = __Pyx_PyInt_As_npy_intp(values[1]); if (unlikely((__pyx_v_N == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L3_error)
   41452           0 :     __pyx_v_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_double__const__(values[2], 0); if (unlikely(!__pyx_v_rows.memview)) __PYX_ERR(0, 959, __pyx_L3_error)
   41453           0 :     __pyx_v_datas = __Pyx_PyObject_to_MemoryviewSlice_ds_double__const__(values[3], 0); if (unlikely(!__pyx_v_datas.memview)) __PYX_ERR(0, 959, __pyx_L3_error)
   41454           0 :     __pyx_v_new_rows = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_new_rows.memview)) __PYX_ERR(0, 960, __pyx_L3_error)
   41455           0 :     __pyx_v_new_datas = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_new_datas.memview)) __PYX_ERR(0, 960, __pyx_L3_error)
   41456           0 :     __pyx_v_irows = values[6];
   41457           0 :     __pyx_v_j_start = __Pyx_PyInt_As_npy_intp(values[7]); if (unlikely((__pyx_v_j_start == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 962, __pyx_L3_error)
   41458           0 :     __pyx_v_j_stop = __Pyx_PyInt_As_npy_intp(values[8]); if (unlikely((__pyx_v_j_stop == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L3_error)
   41459           0 :     __pyx_v_j_stride = __Pyx_PyInt_As_npy_intp(values[9]); if (unlikely((__pyx_v_j_stride == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 964, __pyx_L3_error)
   41460           0 :     __pyx_v_nj = __Pyx_PyInt_As_npy_intp(values[10]); if (unlikely((__pyx_v_nj == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 965, __pyx_L3_error)
   41461             :   }
   41462           0 :   goto __pyx_L6_skip;
   41463           0 :   __pyx_L5_argtuple_error:;
   41464           0 :   __Pyx_RaiseArgtupleInvalid("lil_get_row_ranges", 1, 11, 11, __pyx_nargs); __PYX_ERR(0, 958, __pyx_L3_error)
   41465           0 :   __pyx_L6_skip:;
   41466           0 :   goto __pyx_L4_argument_unpacking_done;
   41467           0 :   __pyx_L3_error:;
   41468             :   {
   41469           0 :     Py_ssize_t __pyx_temp;
   41470           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   41471             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
   41472             :     }
   41473             :   }
   41474           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   41475           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_datas, 1);
   41476           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_rows, 1);
   41477           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_datas, 1);
   41478           0 :   __Pyx_AddTraceback("_csparsetools.lil_get_row_ranges", __pyx_clineno, __pyx_lineno, __pyx_filename);
   41479           0 :   __Pyx_RefNannyFinishContext();
   41480           0 :   return NULL;
   41481           0 :   __pyx_L4_argument_unpacking_done:;
   41482           0 :   __pyx_r = __pyx_pf_13_csparsetools_120lil_get_row_ranges(__pyx_self, __pyx_v_M, __pyx_v_N, __pyx_v_rows, __pyx_v_datas, __pyx_v_new_rows, __pyx_v_new_datas, __pyx_v_irows, __pyx_v_j_start, __pyx_v_j_stop, __pyx_v_j_stride, __pyx_v_nj);
   41483             : 
   41484             :   /* function exit code */
   41485           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_rows, 1);
   41486           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_datas, 1);
   41487           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_rows, 1);
   41488           0 :   __PYX_XCLEAR_MEMVIEW(&__pyx_v_new_datas, 1);
   41489             :   {
   41490           0 :     Py_ssize_t __pyx_temp;
   41491           0 :     for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
   41492             :       __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
   41493             :     }
   41494             :   }
   41495             :   __Pyx_RefNannyFinishContext();
   41496             :   return __pyx_r;
   41497             : }
   41498             : 
   41499           0 : static PyObject *__pyx_pf_13_csparsetools_120lil_get_row_ranges(CYTHON_UNUSED PyObject *__pyx_self, npy_intp __pyx_v_M, npy_intp __pyx_v_N, __Pyx_memviewslice __pyx_v_rows, __Pyx_memviewslice __pyx_v_datas, __Pyx_memviewslice __pyx_v_new_rows, __Pyx_memviewslice __pyx_v_new_datas, PyObject *__pyx_v_irows, npy_intp __pyx_v_j_start, npy_intp __pyx_v_j_stop, npy_intp __pyx_v_j_stride, npy_intp __pyx_v_nj) {
   41500           0 :   npy_intp __pyx_v_nk;
   41501           0 :   npy_intp __pyx_v_k;
   41502           0 :   npy_intp __pyx_v_j;
   41503           0 :   npy_intp __pyx_v_a;
   41504           0 :   npy_intp __pyx_v_m;
   41505           0 :   npy_intp __pyx_v_r;
   41506           0 :   npy_intp __pyx_v_p;
   41507           0 :   PyObject *__pyx_v_cur_row = 0;
   41508           0 :   PyObject *__pyx_v_cur_data = 0;
   41509           0 :   PyObject *__pyx_v_new_row = 0;
   41510           0 :   PyObject *__pyx_v_new_data = 0;
   41511           0 :   PyObject *__pyx_r = NULL;
   41512             :   __Pyx_RefNannyDeclarations
   41513           0 :   int __pyx_t_1;
   41514           0 :   PyObject *__pyx_t_2 = NULL;
   41515           0 :   npy_intp __pyx_t_3;
   41516           0 :   Py_ssize_t __pyx_t_4;
   41517           0 :   PyObject *(*__pyx_t_5)(PyObject *);
   41518           0 :   PyObject *__pyx_t_6 = NULL;
   41519           0 :   npy_intp __pyx_t_7;
   41520           0 :   int __pyx_t_8;
   41521           0 :   Py_ssize_t __pyx_t_9;
   41522           0 :   Py_UCS4 __pyx_t_10;
   41523           0 :   PyObject *__pyx_t_11 = NULL;
   41524           0 :   PyObject *__pyx_t_12 = NULL;
   41525           0 :   Py_ssize_t __pyx_t_13;
   41526           0 :   int __pyx_t_14;
   41527           0 :   PyObject **__pyx_t_15;
   41528           0 :   Py_ssize_t __pyx_t_16;
   41529           0 :   npy_intp __pyx_t_17;
   41530           0 :   int __pyx_t_18;
   41531           0 :   int __pyx_lineno = 0;
   41532           0 :   const char *__pyx_filename = NULL;
   41533           0 :   int __pyx_clineno = 0;
   41534           0 :   __Pyx_RefNannySetupContext("__pyx_fuse_1lil_get_row_ranges", 1);
   41535             : 
   41536             :   /* "_csparsetools.pyx":988
   41537             :  *     cdef list cur_row, cur_data, new_row, new_data
   41538             :  * 
   41539             :  *     if j_stride == 0:             # <<<<<<<<<<<<<<
   41540             :  *         raise ValueError("cannot index with zero stride")
   41541             :  * 
   41542             :  */
   41543           0 :   __pyx_t_1 = (__pyx_v_j_stride == 0);
   41544           0 :   if (unlikely(__pyx_t_1)) {
   41545             : 
   41546             :     /* "_csparsetools.pyx":989
   41547             :  * 
   41548             :  *     if j_stride == 0:
   41549             :  *         raise ValueError("cannot index with zero stride")             # <<<<<<<<<<<<<<
   41550             :  * 
   41551             :  *     for nk, k in enumerate(irows):
   41552             :  */
   41553           0 :     __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 989, __pyx_L1_error)
   41554           0 :     __Pyx_GOTREF(__pyx_t_2);
   41555           0 :     __Pyx_Raise(__pyx_t_2, 0, 0, 0);
   41556           0 :     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   41557           0 :     __PYX_ERR(0, 989, __pyx_L1_error)
   41558             : 
   41559             :     /* "_csparsetools.pyx":988
   41560             :  *     cdef list cur_row, cur_data, new_row, new_data
   41561             :  * 
   41562             :  *     if j_stride == 0:             # <<<<<<<<<<<<<<
   41563             :  *         raise ValueError("cannot index with zero stride")
   41564             :  * 
   41565             :  */
   41566             :   }
   41567             : 
   41568             :   /* "_csparsetools.pyx":991
   41569             :  *         raise ValueError("cannot index with zero stride")
   41570             :  * 
   41571             :  *     for nk, k in enumerate(irows):             # <<<<<<<<<<<<<<
   41572             :  *         if k >= M or k < -M:
   41573             :  *             raise ValueError("row index %d out of bounds" % (k,))
   41574             :  */
   41575           0 :   __pyx_t_3 = 0;
   41576           0 :   if (likely(PyList_CheckExact(__pyx_v_irows)) || PyTuple_CheckExact(__pyx_v_irows)) {
   41577           0 :     __pyx_t_2 = __pyx_v_irows; __Pyx_INCREF(__pyx_t_2);
   41578           0 :     __pyx_t_4 = 0;
   41579           0 :     __pyx_t_5 = NULL;
   41580             :   } else {
   41581           0 :     __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_irows); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 991, __pyx_L1_error)
   41582           0 :     __Pyx_GOTREF(__pyx_t_2);
   41583           0 :     __pyx_t_5 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
   41584             :   }
   41585           0 :   for (;;) {
   41586           0 :     if (likely(!__pyx_t_5)) {
   41587           0 :       if (likely(PyList_CheckExact(__pyx_t_2))) {
   41588             :         {
   41589           0 :           Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
   41590             :           #if !CYTHON_ASSUME_SAFE_MACROS
   41591             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 991, __pyx_L1_error)
   41592             :           #endif
   41593           0 :           if (__pyx_t_4 >= __pyx_temp) break;
   41594             :         }
   41595             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   41596           0 :         __pyx_t_6 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 991, __pyx_L1_error)
   41597             :         #else
   41598             :         __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
   41599             :         __Pyx_GOTREF(__pyx_t_6);
   41600             :         #endif
   41601             :       } else {
   41602             :         {
   41603           0 :           Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
   41604             :           #if !CYTHON_ASSUME_SAFE_MACROS
   41605             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 991, __pyx_L1_error)
   41606             :           #endif
   41607           0 :           if (__pyx_t_4 >= __pyx_temp) break;
   41608             :         }
   41609             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   41610           0 :         __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 991, __pyx_L1_error)
   41611             :         #else
   41612             :         __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
   41613             :         __Pyx_GOTREF(__pyx_t_6);
   41614             :         #endif
   41615             :       }
   41616             :     } else {
   41617           0 :       __pyx_t_6 = __pyx_t_5(__pyx_t_2);
   41618           0 :       if (unlikely(!__pyx_t_6)) {
   41619           0 :         PyObject* exc_type = PyErr_Occurred();
   41620           0 :         if (exc_type) {
   41621           0 :           if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
   41622           0 :           else __PYX_ERR(0, 991, __pyx_L1_error)
   41623             :         }
   41624             :         break;
   41625             :       }
   41626           0 :       __Pyx_GOTREF(__pyx_t_6);
   41627             :     }
   41628           0 :     __pyx_t_7 = __Pyx_PyInt_As_npy_intp(__pyx_t_6); if (unlikely((__pyx_t_7 == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 991, __pyx_L1_error)
   41629           0 :     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   41630           0 :     __pyx_v_k = __pyx_t_7;
   41631           0 :     __pyx_v_nk = __pyx_t_3;
   41632           0 :     __pyx_t_3 = (__pyx_t_3 + 1);
   41633             : 
   41634             :     /* "_csparsetools.pyx":992
   41635             :  * 
   41636             :  *     for nk, k in enumerate(irows):
   41637             :  *         if k >= M or k < -M:             # <<<<<<<<<<<<<<
   41638             :  *             raise ValueError("row index %d out of bounds" % (k,))
   41639             :  *         if k < 0:
   41640             :  */
   41641           0 :     __pyx_t_8 = (__pyx_v_k >= __pyx_v_M);
   41642           0 :     if (!__pyx_t_8) {
   41643           0 :     } else {
   41644           0 :       __pyx_t_1 = __pyx_t_8;
   41645           0 :       goto __pyx_L7_bool_binop_done;
   41646             :     }
   41647           0 :     __pyx_t_8 = (__pyx_v_k < (-__pyx_v_M));
   41648           0 :     __pyx_t_1 = __pyx_t_8;
   41649           0 :     __pyx_L7_bool_binop_done:;
   41650           0 :     if (unlikely(__pyx_t_1)) {
   41651             : 
   41652             :       /* "_csparsetools.pyx":993
   41653             :  *     for nk, k in enumerate(irows):
   41654             :  *         if k >= M or k < -M:
   41655             :  *             raise ValueError("row index %d out of bounds" % (k,))             # <<<<<<<<<<<<<<
   41656             :  *         if k < 0:
   41657             :  *             k += M
   41658             :  */
   41659           0 :       __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 993, __pyx_L1_error)
   41660           0 :       __Pyx_GOTREF(__pyx_t_6);
   41661           0 :       __pyx_t_9 = 0;
   41662           0 :       __pyx_t_10 = 127;
   41663           0 :       __Pyx_INCREF(__pyx_kp_u_row_index_2);
   41664           0 :       __pyx_t_9 += 10;
   41665           0 :       __Pyx_GIVEREF(__pyx_kp_u_row_index_2);
   41666           0 :       PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_kp_u_row_index_2);
   41667           0 :       __pyx_t_11 = __Pyx_PyInt_From_npy_intp(__pyx_v_k); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 993, __pyx_L1_error)
   41668           0 :       __Pyx_GOTREF(__pyx_t_11);
   41669           0 :       __pyx_t_12 = __Pyx_PyObject_FormatAndDecref(__Pyx_PyNumber_IntOrLong(__pyx_t_11), __pyx_n_u_d); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
   41670           0 :       __Pyx_GOTREF(__pyx_t_12);
   41671           0 :       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   41672           0 :       __pyx_t_10 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) > __pyx_t_10) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) : __pyx_t_10;
   41673           0 :       __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_12);
   41674           0 :       __Pyx_GIVEREF(__pyx_t_12);
   41675           0 :       PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_12);
   41676           0 :       __pyx_t_12 = 0;
   41677           0 :       __Pyx_INCREF(__pyx_kp_u_out_of_bounds_2);
   41678           0 :       __pyx_t_9 += 14;
   41679           0 :       __Pyx_GIVEREF(__pyx_kp_u_out_of_bounds_2);
   41680           0 :       PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_kp_u_out_of_bounds_2);
   41681           0 :       __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_6, 3, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
   41682           0 :       __Pyx_GOTREF(__pyx_t_12);
   41683           0 :       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   41684           0 :       __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 993, __pyx_L1_error)
   41685           0 :       __Pyx_GOTREF(__pyx_t_6);
   41686           0 :       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
   41687           0 :       __Pyx_Raise(__pyx_t_6, 0, 0, 0);
   41688           0 :       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   41689           0 :       __PYX_ERR(0, 993, __pyx_L1_error)
   41690             : 
   41691             :       /* "_csparsetools.pyx":992
   41692             :  * 
   41693             :  *     for nk, k in enumerate(irows):
   41694             :  *         if k >= M or k < -M:             # <<<<<<<<<<<<<<
   41695             :  *             raise ValueError("row index %d out of bounds" % (k,))
   41696             :  *         if k < 0:
   41697             :  */
   41698             :     }
   41699             : 
   41700             :     /* "_csparsetools.pyx":994
   41701             :  *         if k >= M or k < -M:
   41702             :  *             raise ValueError("row index %d out of bounds" % (k,))
   41703             :  *         if k < 0:             # <<<<<<<<<<<<<<
   41704             :  *             k += M
   41705             :  * 
   41706             :  */
   41707           0 :     __pyx_t_1 = (__pyx_v_k < 0);
   41708           0 :     if (__pyx_t_1) {
   41709             : 
   41710             :       /* "_csparsetools.pyx":995
   41711             :  *             raise ValueError("row index %d out of bounds" % (k,))
   41712             :  *         if k < 0:
   41713             :  *             k += M             # <<<<<<<<<<<<<<
   41714             :  * 
   41715             :  *         if j_stride == 1 and nj == N:
   41716             :  */
   41717           0 :       __pyx_v_k = (__pyx_v_k + __pyx_v_M);
   41718             : 
   41719             :       /* "_csparsetools.pyx":994
   41720             :  *         if k >= M or k < -M:
   41721             :  *             raise ValueError("row index %d out of bounds" % (k,))
   41722             :  *         if k < 0:             # <<<<<<<<<<<<<<
   41723             :  *             k += M
   41724             :  * 
   41725             :  */
   41726             :     }
   41727             : 
   41728             :     /* "_csparsetools.pyx":997
   41729             :  *             k += M
   41730             :  * 
   41731             :  *         if j_stride == 1 and nj == N:             # <<<<<<<<<<<<<<
   41732             :  *             # full row slice
   41733             :  *             new_rows[nk] = list(rows[k])
   41734             :  */
   41735           0 :     __pyx_t_8 = (__pyx_v_j_stride == 1);
   41736           0 :     if (__pyx_t_8) {
   41737           0 :     } else {
   41738           0 :       __pyx_t_1 = __pyx_t_8;
   41739           0 :       goto __pyx_L11_bool_binop_done;
   41740             :     }
   41741           0 :     __pyx_t_8 = (__pyx_v_nj == __pyx_v_N);
   41742           0 :     __pyx_t_1 = __pyx_t_8;
   41743           0 :     __pyx_L11_bool_binop_done:;
   41744           0 :     if (__pyx_t_1) {
   41745             : 
   41746             :       /* "_csparsetools.pyx":999
   41747             :  *         if j_stride == 1 and nj == N:
   41748             :  *             # full row slice
   41749             :  *             new_rows[nk] = list(rows[k])             # <<<<<<<<<<<<<<
   41750             :  *             new_datas[nk] = list(datas[k])
   41751             :  *         else:
   41752             :  */
   41753           0 :       __pyx_t_13 = __pyx_v_k;
   41754           0 :       __pyx_t_14 = -1;
   41755           0 :       if (__pyx_t_13 < 0) {
   41756           0 :         __pyx_t_13 += __pyx_v_rows.shape[0];
   41757           0 :         if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0;
   41758           0 :       } else if (unlikely(__pyx_t_13 >= __pyx_v_rows.shape[0])) __pyx_t_14 = 0;
   41759           0 :       if (unlikely(__pyx_t_14 != -1)) {
   41760           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_14);
   41761           0 :         __PYX_ERR(0, 999, __pyx_L1_error)
   41762             :       }
   41763           0 :       __pyx_t_6 = PyFloat_FromDouble((*((double const  *) ( /* dim=0 */ (__pyx_v_rows.data + __pyx_t_13 * __pyx_v_rows.strides[0]) )))); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 999, __pyx_L1_error)
   41764           0 :       __Pyx_GOTREF(__pyx_t_6);
   41765           0 :       __pyx_t_12 = __Pyx_PySequence_ListKeepNew(__pyx_t_6); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 999, __pyx_L1_error)
   41766           0 :       __Pyx_GOTREF(__pyx_t_12);
   41767           0 :       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   41768           0 :       __pyx_t_13 = __pyx_v_nk;
   41769           0 :       __pyx_t_14 = -1;
   41770           0 :       if (__pyx_t_13 < 0) {
   41771             :         __pyx_t_13 += __pyx_v_new_rows.shape[0];
   41772             :         if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0;
   41773           0 :       } else if (unlikely(__pyx_t_13 >= __pyx_v_new_rows.shape[0])) __pyx_t_14 = 0;
   41774           0 :       if (unlikely(__pyx_t_14 != -1)) {
   41775           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_14);
   41776           0 :         __PYX_ERR(0, 999, __pyx_L1_error)
   41777             :       }
   41778           0 :       __pyx_t_15 = ((PyObject * *) ( /* dim=0 */ (__pyx_v_new_rows.data + __pyx_t_13 * __pyx_v_new_rows.strides[0]) ));
   41779           0 :       __Pyx_XGOTREF(*__pyx_t_15);
   41780           0 :       __Pyx_INCREF(__pyx_t_12); __Pyx_XDECREF(*__pyx_t_15);
   41781           0 :       *__pyx_t_15 = __pyx_t_12;
   41782           0 :       __Pyx_XGIVEREF(*__pyx_t_15);
   41783           0 :       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
   41784             : 
   41785             :       /* "_csparsetools.pyx":1000
   41786             :  *             # full row slice
   41787             :  *             new_rows[nk] = list(rows[k])
   41788             :  *             new_datas[nk] = list(datas[k])             # <<<<<<<<<<<<<<
   41789             :  *         else:
   41790             :  *             # partial row slice
   41791             :  */
   41792           0 :       __pyx_t_13 = __pyx_v_k;
   41793           0 :       __pyx_t_14 = -1;
   41794           0 :       if (__pyx_t_13 < 0) {
   41795           0 :         __pyx_t_13 += __pyx_v_datas.shape[0];
   41796           0 :         if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0;
   41797           0 :       } else if (unlikely(__pyx_t_13 >= __pyx_v_datas.shape[0])) __pyx_t_14 = 0;
   41798           0 :       if (unlikely(__pyx_t_14 != -1)) {
   41799           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_14);
   41800           0 :         __PYX_ERR(0, 1000, __pyx_L1_error)
   41801             :       }
   41802           0 :       __pyx_t_12 = PyFloat_FromDouble((*((double const  *) ( /* dim=0 */ (__pyx_v_datas.data + __pyx_t_13 * __pyx_v_datas.strides[0]) )))); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1000, __pyx_L1_error)
   41803           0 :       __Pyx_GOTREF(__pyx_t_12);
   41804           0 :       __pyx_t_6 = __Pyx_PySequence_ListKeepNew(__pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1000, __pyx_L1_error)
   41805           0 :       __Pyx_GOTREF(__pyx_t_6);
   41806           0 :       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
   41807           0 :       __pyx_t_13 = __pyx_v_nk;
   41808           0 :       __pyx_t_14 = -1;
   41809           0 :       if (__pyx_t_13 < 0) {
   41810             :         __pyx_t_13 += __pyx_v_new_datas.shape[0];
   41811             :         if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0;
   41812           0 :       } else if (unlikely(__pyx_t_13 >= __pyx_v_new_datas.shape[0])) __pyx_t_14 = 0;
   41813           0 :       if (unlikely(__pyx_t_14 != -1)) {
   41814           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_14);
   41815           0 :         __PYX_ERR(0, 1000, __pyx_L1_error)
   41816             :       }
   41817           0 :       __pyx_t_15 = ((PyObject * *) ( /* dim=0 */ (__pyx_v_new_datas.data + __pyx_t_13 * __pyx_v_new_datas.strides[0]) ));
   41818           0 :       __Pyx_XGOTREF(*__pyx_t_15);
   41819           0 :       __Pyx_INCREF(__pyx_t_6); __Pyx_XDECREF(*__pyx_t_15);
   41820           0 :       *__pyx_t_15 = __pyx_t_6;
   41821           0 :       __Pyx_XGIVEREF(*__pyx_t_15);
   41822           0 :       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   41823             : 
   41824             :       /* "_csparsetools.pyx":997
   41825             :  *             k += M
   41826             :  * 
   41827             :  *         if j_stride == 1 and nj == N:             # <<<<<<<<<<<<<<
   41828             :  *             # full row slice
   41829             :  *             new_rows[nk] = list(rows[k])
   41830             :  */
   41831           0 :       goto __pyx_L10;
   41832             :     }
   41833             : 
   41834             :     /* "_csparsetools.pyx":1003
   41835             :  *         else:
   41836             :  *             # partial row slice
   41837             :  *             cur_row = rows[k]             # <<<<<<<<<<<<<<
   41838             :  *             cur_data = datas[k]
   41839             :  *             new_row = new_rows[nk]
   41840             :  */
   41841             :     /*else*/ {
   41842           0 :       __pyx_t_13 = __pyx_v_k;
   41843           0 :       __pyx_t_14 = -1;
   41844           0 :       if (__pyx_t_13 < 0) {
   41845           0 :         __pyx_t_13 += __pyx_v_rows.shape[0];
   41846           0 :         if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0;
   41847           0 :       } else if (unlikely(__pyx_t_13 >= __pyx_v_rows.shape[0])) __pyx_t_14 = 0;
   41848           0 :       if (unlikely(__pyx_t_14 != -1)) {
   41849           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_14);
   41850           0 :         __PYX_ERR(0, 1003, __pyx_L1_error)
   41851             :       }
   41852           0 :       __pyx_t_6 = PyFloat_FromDouble((*((double const  *) ( /* dim=0 */ (__pyx_v_rows.data + __pyx_t_13 * __pyx_v_rows.strides[0]) )))); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1003, __pyx_L1_error)
   41853           0 :       __Pyx_GOTREF(__pyx_t_6);
   41854           0 :       if (!(likely(PyList_CheckExact(__pyx_t_6)) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_6))) __PYX_ERR(0, 1003, __pyx_L1_error)
   41855           0 :       __Pyx_XDECREF_SET(__pyx_v_cur_row, ((PyObject*)__pyx_t_6));
   41856           0 :       __pyx_t_6 = 0;
   41857             : 
   41858             :       /* "_csparsetools.pyx":1004
   41859             :  *             # partial row slice
   41860             :  *             cur_row = rows[k]
   41861             :  *             cur_data = datas[k]             # <<<<<<<<<<<<<<
   41862             :  *             new_row = new_rows[nk]
   41863             :  *             new_data = new_datas[nk]
   41864             :  */
   41865           0 :       __pyx_t_13 = __pyx_v_k;
   41866           0 :       __pyx_t_14 = -1;
   41867           0 :       if (__pyx_t_13 < 0) {
   41868           0 :         __pyx_t_13 += __pyx_v_datas.shape[0];
   41869           0 :         if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0;
   41870           0 :       } else if (unlikely(__pyx_t_13 >= __pyx_v_datas.shape[0])) __pyx_t_14 = 0;
   41871           0 :       if (unlikely(__pyx_t_14 != -1)) {
   41872           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_14);
   41873           0 :         __PYX_ERR(0, 1004, __pyx_L1_error)
   41874             :       }
   41875           0 :       __pyx_t_6 = PyFloat_FromDouble((*((double const  *) ( /* dim=0 */ (__pyx_v_datas.data + __pyx_t_13 * __pyx_v_datas.strides[0]) )))); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1004, __pyx_L1_error)
   41876           0 :       __Pyx_GOTREF(__pyx_t_6);
   41877           0 :       if (!(likely(PyList_CheckExact(__pyx_t_6)) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_6))) __PYX_ERR(0, 1004, __pyx_L1_error)
   41878           0 :       __Pyx_XDECREF_SET(__pyx_v_cur_data, ((PyObject*)__pyx_t_6));
   41879           0 :       __pyx_t_6 = 0;
   41880             : 
   41881             :       /* "_csparsetools.pyx":1005
   41882             :  *             cur_row = rows[k]
   41883             :  *             cur_data = datas[k]
   41884             :  *             new_row = new_rows[nk]             # <<<<<<<<<<<<<<
   41885             :  *             new_data = new_datas[nk]
   41886             :  * 
   41887             :  */
   41888           0 :       __pyx_t_13 = __pyx_v_nk;
   41889           0 :       __pyx_t_14 = -1;
   41890           0 :       if (__pyx_t_13 < 0) {
   41891             :         __pyx_t_13 += __pyx_v_new_rows.shape[0];
   41892             :         if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0;
   41893           0 :       } else if (unlikely(__pyx_t_13 >= __pyx_v_new_rows.shape[0])) __pyx_t_14 = 0;
   41894           0 :       if (unlikely(__pyx_t_14 != -1)) {
   41895           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_14);
   41896           0 :         __PYX_ERR(0, 1005, __pyx_L1_error)
   41897             :       }
   41898           0 :       __pyx_t_6 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_new_rows.data + __pyx_t_13 * __pyx_v_new_rows.strides[0]) ));
   41899           0 :       if (unlikely(__pyx_t_6 == NULL)) __pyx_t_6 = Py_None;
   41900           0 :       __Pyx_INCREF((PyObject*)__pyx_t_6);
   41901           0 :       if (!(likely(PyList_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_6))) __PYX_ERR(0, 1005, __pyx_L1_error)
   41902           0 :       __Pyx_XDECREF_SET(__pyx_v_new_row, ((PyObject*)__pyx_t_6));
   41903           0 :       __pyx_t_6 = 0;
   41904             : 
   41905             :       /* "_csparsetools.pyx":1006
   41906             :  *             cur_data = datas[k]
   41907             :  *             new_row = new_rows[nk]
   41908             :  *             new_data = new_datas[nk]             # <<<<<<<<<<<<<<
   41909             :  * 
   41910             :  *             if j_stride > 0:
   41911             :  */
   41912           0 :       __pyx_t_13 = __pyx_v_nk;
   41913           0 :       __pyx_t_14 = -1;
   41914           0 :       if (__pyx_t_13 < 0) {
   41915             :         __pyx_t_13 += __pyx_v_new_datas.shape[0];
   41916             :         if (unlikely(__pyx_t_13 < 0)) __pyx_t_14 = 0;
   41917           0 :       } else if (unlikely(__pyx_t_13 >= __pyx_v_new_datas.shape[0])) __pyx_t_14 = 0;
   41918           0 :       if (unlikely(__pyx_t_14 != -1)) {
   41919           0 :         __Pyx_RaiseBufferIndexError(__pyx_t_14);
   41920           0 :         __PYX_ERR(0, 1006, __pyx_L1_error)
   41921             :       }
   41922           0 :       __pyx_t_6 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_new_datas.data + __pyx_t_13 * __pyx_v_new_datas.strides[0]) ));
   41923           0 :       if (unlikely(__pyx_t_6 == NULL)) __pyx_t_6 = Py_None;
   41924           0 :       __Pyx_INCREF((PyObject*)__pyx_t_6);
   41925           0 :       if (!(likely(PyList_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_6))) __PYX_ERR(0, 1006, __pyx_L1_error)
   41926           0 :       __Pyx_XDECREF_SET(__pyx_v_new_data, ((PyObject*)__pyx_t_6));
   41927           0 :       __pyx_t_6 = 0;
   41928             : 
   41929             :       /* "_csparsetools.pyx":1008
   41930             :  *             new_data = new_datas[nk]
   41931             :  * 
   41932             :  *             if j_stride > 0:             # <<<<<<<<<<<<<<
   41933             :  *                 a = bisect_left(cur_row, j_start)
   41934             :  *                 for m in range(a, len(cur_row)):
   41935             :  */
   41936           0 :       __pyx_t_1 = (__pyx_v_j_stride > 0);
   41937           0 :       if (__pyx_t_1) {
   41938             : 
   41939             :         /* "_csparsetools.pyx":1009
   41940             :  * 
   41941             :  *             if j_stride > 0:
   41942             :  *                 a = bisect_left(cur_row, j_start)             # <<<<<<<<<<<<<<
   41943             :  *                 for m in range(a, len(cur_row)):
   41944             :  *                     j = cur_row[m]
   41945             :  */
   41946           0 :         __pyx_t_7 = __pyx_f_13_csparsetools_bisect_left(__pyx_v_cur_row, __pyx_v_j_start); if (unlikely(__pyx_t_7 == ((npy_intp)-1L))) __PYX_ERR(0, 1009, __pyx_L1_error)
   41947           0 :         __pyx_v_a = __pyx_t_7;
   41948             : 
   41949             :         /* "_csparsetools.pyx":1010
   41950             :  *             if j_stride > 0:
   41951             :  *                 a = bisect_left(cur_row, j_start)
   41952             :  *                 for m in range(a, len(cur_row)):             # <<<<<<<<<<<<<<
   41953             :  *                     j = cur_row[m]
   41954             :  *                     if j >= j_stop:
   41955             :  */
   41956           0 :         if (unlikely(__pyx_v_cur_row == Py_None)) {
   41957           0 :           PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   41958           0 :           __PYX_ERR(0, 1010, __pyx_L1_error)
   41959             :         }
   41960           0 :         __pyx_t_9 = __Pyx_PyList_GET_SIZE(__pyx_v_cur_row); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1010, __pyx_L1_error)
   41961             :         __pyx_t_16 = __pyx_t_9;
   41962           0 :         for (__pyx_t_7 = __pyx_v_a; __pyx_t_7 < __pyx_t_16; __pyx_t_7+=1) {
   41963           0 :           __pyx_v_m = __pyx_t_7;
   41964             : 
   41965             :           /* "_csparsetools.pyx":1011
   41966             :  *                 a = bisect_left(cur_row, j_start)
   41967             :  *                 for m in range(a, len(cur_row)):
   41968             :  *                     j = cur_row[m]             # <<<<<<<<<<<<<<
   41969             :  *                     if j >= j_stop:
   41970             :  *                         break
   41971             :  */
   41972           0 :           if (unlikely(__pyx_v_cur_row == Py_None)) {
   41973             :             PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   41974             :             __PYX_ERR(0, 1011, __pyx_L1_error)
   41975             :           }
   41976           0 :           __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_cur_row, __pyx_v_m, npy_intp, 1, __Pyx_PyInt_From_npy_intp, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1011, __pyx_L1_error)
   41977           0 :           __Pyx_GOTREF(__pyx_t_6);
   41978           0 :           __pyx_t_17 = __Pyx_PyInt_As_npy_intp(__pyx_t_6); if (unlikely((__pyx_t_17 == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1011, __pyx_L1_error)
   41979           0 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   41980           0 :           __pyx_v_j = __pyx_t_17;
   41981             : 
   41982             :           /* "_csparsetools.pyx":1012
   41983             :  *                 for m in range(a, len(cur_row)):
   41984             :  *                     j = cur_row[m]
   41985             :  *                     if j >= j_stop:             # <<<<<<<<<<<<<<
   41986             :  *                         break
   41987             :  *                     r = (j - j_start) % j_stride
   41988             :  */
   41989           0 :           __pyx_t_1 = (__pyx_v_j >= __pyx_v_j_stop);
   41990           0 :           if (__pyx_t_1) {
   41991             : 
   41992             :             /* "_csparsetools.pyx":1013
   41993             :  *                     j = cur_row[m]
   41994             :  *                     if j >= j_stop:
   41995             :  *                         break             # <<<<<<<<<<<<<<
   41996             :  *                     r = (j - j_start) % j_stride
   41997             :  *                     if r != 0:
   41998             :  */
   41999           0 :             goto __pyx_L15_break;
   42000             : 
   42001             :             /* "_csparsetools.pyx":1012
   42002             :  *                 for m in range(a, len(cur_row)):
   42003             :  *                     j = cur_row[m]
   42004             :  *                     if j >= j_stop:             # <<<<<<<<<<<<<<
   42005             :  *                         break
   42006             :  *                     r = (j - j_start) % j_stride
   42007             :  */
   42008             :           }
   42009             : 
   42010             :           /* "_csparsetools.pyx":1014
   42011             :  *                     if j >= j_stop:
   42012             :  *                         break
   42013             :  *                     r = (j - j_start) % j_stride             # <<<<<<<<<<<<<<
   42014             :  *                     if r != 0:
   42015             :  *                         continue
   42016             :  */
   42017           0 :           __pyx_t_17 = (__pyx_v_j - __pyx_v_j_start);
   42018           0 :           if (unlikely(__pyx_v_j_stride == 0)) {
   42019             :             PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
   42020             :             __PYX_ERR(0, 1014, __pyx_L1_error)
   42021             :           }
   42022           0 :           __pyx_v_r = __Pyx_mod_npy_intp(__pyx_t_17, __pyx_v_j_stride);
   42023             : 
   42024             :           /* "_csparsetools.pyx":1015
   42025             :  *                         break
   42026             :  *                     r = (j - j_start) % j_stride
   42027             :  *                     if r != 0:             # <<<<<<<<<<<<<<
   42028             :  *                         continue
   42029             :  *                     p = (j - j_start) // j_stride
   42030             :  */
   42031           0 :           __pyx_t_1 = (__pyx_v_r != 0);
   42032           0 :           if (__pyx_t_1) {
   42033             : 
   42034             :             /* "_csparsetools.pyx":1016
   42035             :  *                     r = (j - j_start) % j_stride
   42036             :  *                     if r != 0:
   42037             :  *                         continue             # <<<<<<<<<<<<<<
   42038             :  *                     p = (j - j_start) // j_stride
   42039             :  *                     new_row.append(p)
   42040             :  */
   42041           0 :             goto __pyx_L14_continue;
   42042             : 
   42043             :             /* "_csparsetools.pyx":1015
   42044             :  *                         break
   42045             :  *                     r = (j - j_start) % j_stride
   42046             :  *                     if r != 0:             # <<<<<<<<<<<<<<
   42047             :  *                         continue
   42048             :  *                     p = (j - j_start) // j_stride
   42049             :  */
   42050             :           }
   42051             : 
   42052             :           /* "_csparsetools.pyx":1017
   42053             :  *                     if r != 0:
   42054             :  *                         continue
   42055             :  *                     p = (j - j_start) // j_stride             # <<<<<<<<<<<<<<
   42056             :  *                     new_row.append(p)
   42057             :  *                     new_data.append(cur_data[m])
   42058             :  */
   42059           0 :           __pyx_t_17 = (__pyx_v_j - __pyx_v_j_start);
   42060           0 :           if (unlikely(__pyx_v_j_stride == 0)) {
   42061             :             PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
   42062             :             __PYX_ERR(0, 1017, __pyx_L1_error)
   42063             :           }
   42064           0 :           else if (sizeof(npy_intp) == sizeof(long) && (!(((npy_intp)-1) > 0)) && unlikely(__pyx_v_j_stride == (npy_intp)-1)  && unlikely(__Pyx_UNARY_NEG_WOULD_OVERFLOW(__pyx_t_17))) {
   42065             :             PyErr_SetString(PyExc_OverflowError, "value too large to perform division");
   42066             :             __PYX_ERR(0, 1017, __pyx_L1_error)
   42067             :           }
   42068           0 :           __pyx_v_p = __Pyx_div_npy_intp(__pyx_t_17, __pyx_v_j_stride);
   42069             : 
   42070             :           /* "_csparsetools.pyx":1018
   42071             :  *                         continue
   42072             :  *                     p = (j - j_start) // j_stride
   42073             :  *                     new_row.append(p)             # <<<<<<<<<<<<<<
   42074             :  *                     new_data.append(cur_data[m])
   42075             :  *             else:
   42076             :  */
   42077           0 :           if (unlikely(__pyx_v_new_row == Py_None)) {
   42078           0 :             PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
   42079           0 :             __PYX_ERR(0, 1018, __pyx_L1_error)
   42080             :           }
   42081           0 :           __pyx_t_6 = __Pyx_PyInt_From_npy_intp(__pyx_v_p); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1018, __pyx_L1_error)
   42082           0 :           __Pyx_GOTREF(__pyx_t_6);
   42083           0 :           __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_new_row, __pyx_t_6); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 1018, __pyx_L1_error)
   42084           0 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   42085             : 
   42086             :           /* "_csparsetools.pyx":1019
   42087             :  *                     p = (j - j_start) // j_stride
   42088             :  *                     new_row.append(p)
   42089             :  *                     new_data.append(cur_data[m])             # <<<<<<<<<<<<<<
   42090             :  *             else:
   42091             :  *                 a = bisect_right(cur_row, j_stop)
   42092             :  */
   42093           0 :           if (unlikely(__pyx_v_new_data == Py_None)) {
   42094           0 :             PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
   42095           0 :             __PYX_ERR(0, 1019, __pyx_L1_error)
   42096             :           }
   42097           0 :           if (unlikely(__pyx_v_cur_data == Py_None)) {
   42098           0 :             PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   42099           0 :             __PYX_ERR(0, 1019, __pyx_L1_error)
   42100             :           }
   42101           0 :           __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_cur_data, __pyx_v_m, npy_intp, 1, __Pyx_PyInt_From_npy_intp, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1019, __pyx_L1_error)
   42102           0 :           __Pyx_GOTREF(__pyx_t_6);
   42103           0 :           __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_new_data, __pyx_t_6); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 1019, __pyx_L1_error)
   42104           0 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   42105           0 :           __pyx_L14_continue:;
   42106             :         }
   42107           0 :         __pyx_L15_break:;
   42108             : 
   42109             :         /* "_csparsetools.pyx":1008
   42110             :  *             new_data = new_datas[nk]
   42111             :  * 
   42112             :  *             if j_stride > 0:             # <<<<<<<<<<<<<<
   42113             :  *                 a = bisect_left(cur_row, j_start)
   42114             :  *                 for m in range(a, len(cur_row)):
   42115             :  */
   42116           0 :         goto __pyx_L13;
   42117             :       }
   42118             : 
   42119             :       /* "_csparsetools.pyx":1021
   42120             :  *                     new_data.append(cur_data[m])
   42121             :  *             else:
   42122             :  *                 a = bisect_right(cur_row, j_stop)             # <<<<<<<<<<<<<<
   42123             :  *                 for m in range(a, len(cur_row)):
   42124             :  *                     j = cur_row[m]
   42125             :  */
   42126             :       /*else*/ {
   42127           0 :         __pyx_t_7 = __pyx_f_13_csparsetools_bisect_right(__pyx_v_cur_row, __pyx_v_j_stop); if (unlikely(__pyx_t_7 == ((npy_intp)-1L))) __PYX_ERR(0, 1021, __pyx_L1_error)
   42128           0 :         __pyx_v_a = __pyx_t_7;
   42129             : 
   42130             :         /* "_csparsetools.pyx":1022
   42131             :  *             else:
   42132             :  *                 a = bisect_right(cur_row, j_stop)
   42133             :  *                 for m in range(a, len(cur_row)):             # <<<<<<<<<<<<<<
   42134             :  *                     j = cur_row[m]
   42135             :  *                     if j > j_start:
   42136             :  */
   42137           0 :         if (unlikely(__pyx_v_cur_row == Py_None)) {
   42138           0 :           PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   42139           0 :           __PYX_ERR(0, 1022, __pyx_L1_error)
   42140             :         }
   42141           0 :         __pyx_t_9 = __Pyx_PyList_GET_SIZE(__pyx_v_cur_row); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1022, __pyx_L1_error)
   42142             :         __pyx_t_16 = __pyx_t_9;
   42143           0 :         for (__pyx_t_7 = __pyx_v_a; __pyx_t_7 < __pyx_t_16; __pyx_t_7+=1) {
   42144           0 :           __pyx_v_m = __pyx_t_7;
   42145             : 
   42146             :           /* "_csparsetools.pyx":1023
   42147             :  *                 a = bisect_right(cur_row, j_stop)
   42148             :  *                 for m in range(a, len(cur_row)):
   42149             :  *                     j = cur_row[m]             # <<<<<<<<<<<<<<
   42150             :  *                     if j > j_start:
   42151             :  *                         break
   42152             :  */
   42153           0 :           if (unlikely(__pyx_v_cur_row == Py_None)) {
   42154             :             PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   42155             :             __PYX_ERR(0, 1023, __pyx_L1_error)
   42156             :           }
   42157           0 :           __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_cur_row, __pyx_v_m, npy_intp, 1, __Pyx_PyInt_From_npy_intp, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1023, __pyx_L1_error)
   42158           0 :           __Pyx_GOTREF(__pyx_t_6);
   42159           0 :           __pyx_t_17 = __Pyx_PyInt_As_npy_intp(__pyx_t_6); if (unlikely((__pyx_t_17 == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1023, __pyx_L1_error)
   42160           0 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   42161           0 :           __pyx_v_j = __pyx_t_17;
   42162             : 
   42163             :           /* "_csparsetools.pyx":1024
   42164             :  *                 for m in range(a, len(cur_row)):
   42165             :  *                     j = cur_row[m]
   42166             :  *                     if j > j_start:             # <<<<<<<<<<<<<<
   42167             :  *                         break
   42168             :  *                     r = (j - j_start) % j_stride
   42169             :  */
   42170           0 :           __pyx_t_1 = (__pyx_v_j > __pyx_v_j_start);
   42171           0 :           if (__pyx_t_1) {
   42172             : 
   42173             :             /* "_csparsetools.pyx":1025
   42174             :  *                     j = cur_row[m]
   42175             :  *                     if j > j_start:
   42176             :  *                         break             # <<<<<<<<<<<<<<
   42177             :  *                     r = (j - j_start) % j_stride
   42178             :  *                     if r != 0:
   42179             :  */
   42180           0 :             goto __pyx_L19_break;
   42181             : 
   42182             :             /* "_csparsetools.pyx":1024
   42183             :  *                 for m in range(a, len(cur_row)):
   42184             :  *                     j = cur_row[m]
   42185             :  *                     if j > j_start:             # <<<<<<<<<<<<<<
   42186             :  *                         break
   42187             :  *                     r = (j - j_start) % j_stride
   42188             :  */
   42189             :           }
   42190             : 
   42191             :           /* "_csparsetools.pyx":1026
   42192             :  *                     if j > j_start:
   42193             :  *                         break
   42194             :  *                     r = (j - j_start) % j_stride             # <<<<<<<<<<<<<<
   42195             :  *                     if r != 0:
   42196             :  *                         continue
   42197             :  */
   42198           0 :           __pyx_t_17 = (__pyx_v_j - __pyx_v_j_start);
   42199           0 :           if (unlikely(__pyx_v_j_stride == 0)) {
   42200             :             PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
   42201             :             __PYX_ERR(0, 1026, __pyx_L1_error)
   42202             :           }
   42203           0 :           __pyx_v_r = __Pyx_mod_npy_intp(__pyx_t_17, __pyx_v_j_stride);
   42204             : 
   42205             :           /* "_csparsetools.pyx":1027
   42206             :  *                         break
   42207             :  *                     r = (j - j_start) % j_stride
   42208             :  *                     if r != 0:             # <<<<<<<<<<<<<<
   42209             :  *                         continue
   42210             :  *                     p = (j - j_start) // j_stride
   42211             :  */
   42212           0 :           __pyx_t_1 = (__pyx_v_r != 0);
   42213           0 :           if (__pyx_t_1) {
   42214             : 
   42215             :             /* "_csparsetools.pyx":1028
   42216             :  *                     r = (j - j_start) % j_stride
   42217             :  *                     if r != 0:
   42218             :  *                         continue             # <<<<<<<<<<<<<<
   42219             :  *                     p = (j - j_start) // j_stride
   42220             :  *                     new_row.insert(0, p)
   42221             :  */
   42222           0 :             goto __pyx_L18_continue;
   42223             : 
   42224             :             /* "_csparsetools.pyx":1027
   42225             :  *                         break
   42226             :  *                     r = (j - j_start) % j_stride
   42227             :  *                     if r != 0:             # <<<<<<<<<<<<<<
   42228             :  *                         continue
   42229             :  *                     p = (j - j_start) // j_stride
   42230             :  */
   42231             :           }
   42232             : 
   42233             :           /* "_csparsetools.pyx":1029
   42234             :  *                     if r != 0:
   42235             :  *                         continue
   42236             :  *                     p = (j - j_start) // j_stride             # <<<<<<<<<<<<<<
   42237             :  *                     new_row.insert(0, p)
   42238             :  *                     new_data.insert(0, cur_data[m])
   42239             :  */
   42240           0 :           __pyx_t_17 = (__pyx_v_j - __pyx_v_j_start);
   42241           0 :           if (unlikely(__pyx_v_j_stride == 0)) {
   42242             :             PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
   42243             :             __PYX_ERR(0, 1029, __pyx_L1_error)
   42244             :           }
   42245           0 :           else if (sizeof(npy_intp) == sizeof(long) && (!(((npy_intp)-1) > 0)) && unlikely(__pyx_v_j_stride == (npy_intp)-1)  && unlikely(__Pyx_UNARY_NEG_WOULD_OVERFLOW(__pyx_t_17))) {
   42246           0 :             PyErr_SetString(PyExc_OverflowError, "value too large to perform division");
   42247           0 :             __PYX_ERR(0, 1029, __pyx_L1_error)
   42248             :           }
   42249           0 :           __pyx_v_p = __Pyx_div_npy_intp(__pyx_t_17, __pyx_v_j_stride);
   42250             : 
   42251             :           /* "_csparsetools.pyx":1030
   42252             :  *                         continue
   42253             :  *                     p = (j - j_start) // j_stride
   42254             :  *                     new_row.insert(0, p)             # <<<<<<<<<<<<<<
   42255             :  *                     new_data.insert(0, cur_data[m])
   42256             :  * 
   42257             :  */
   42258           0 :           if (unlikely(__pyx_v_new_row == Py_None)) {
   42259           0 :             PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "insert");
   42260           0 :             __PYX_ERR(0, 1030, __pyx_L1_error)
   42261             :           }
   42262           0 :           __pyx_t_6 = __Pyx_PyInt_From_npy_intp(__pyx_v_p); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1030, __pyx_L1_error)
   42263           0 :           __Pyx_GOTREF(__pyx_t_6);
   42264           0 :           __pyx_t_18 = PyList_Insert(__pyx_v_new_row, 0, __pyx_t_6); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 1030, __pyx_L1_error)
   42265           0 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   42266             : 
   42267             :           /* "_csparsetools.pyx":1031
   42268             :  *                     p = (j - j_start) // j_stride
   42269             :  *                     new_row.insert(0, p)
   42270             :  *                     new_data.insert(0, cur_data[m])             # <<<<<<<<<<<<<<
   42271             :  * 
   42272             :  * 
   42273             :  */
   42274           0 :           if (unlikely(__pyx_v_new_data == Py_None)) {
   42275           0 :             PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "insert");
   42276           0 :             __PYX_ERR(0, 1031, __pyx_L1_error)
   42277             :           }
   42278           0 :           if (unlikely(__pyx_v_cur_data == Py_None)) {
   42279           0 :             PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   42280           0 :             __PYX_ERR(0, 1031, __pyx_L1_error)
   42281             :           }
   42282           0 :           __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_cur_data, __pyx_v_m, npy_intp, 1, __Pyx_PyInt_From_npy_intp, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1031, __pyx_L1_error)
   42283           0 :           __Pyx_GOTREF(__pyx_t_6);
   42284           0 :           __pyx_t_18 = PyList_Insert(__pyx_v_new_data, 0, __pyx_t_6); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 1031, __pyx_L1_error)
   42285           0 :           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   42286           0 :           __pyx_L18_continue:;
   42287             :         }
   42288           0 :         __pyx_L19_break:;
   42289             :       }
   42290           0 :       __pyx_L13:;
   42291             :     }
   42292           0 :     __pyx_L10:;
   42293             : 
   42294             :     /* "_csparsetools.pyx":991
   42295             :  *         raise ValueError("cannot index with zero stride")
   42296             :  * 
   42297             :  *     for nk, k in enumerate(irows):             # <<<<<<<<<<<<<<
   42298             :  *         if k >= M or k < -M:
   42299             :  *             raise ValueError("row index %d out of bounds" % (k,))
   42300             :  */
   42301             :   }
   42302           0 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   42303             : 
   42304             :   /* "_csparsetools.pyx":958
   42305             :  * 
   42306             :  * 
   42307             :  * def lil_get_row_ranges(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   42308             :  *                        const obj_fused[:] rows, const obj_fused[:] datas,
   42309             :  *                        object[:] new_rows, object[:] new_datas,
   42310             :  */
   42311             : 
   42312             :   /* function exit code */
   42313           0 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   42314           0 :   goto __pyx_L0;
   42315           0 :   __pyx_L1_error:;
   42316           0 :   __Pyx_XDECREF(__pyx_t_2);
   42317           0 :   __Pyx_XDECREF(__pyx_t_6);
   42318           0 :   __Pyx_XDECREF(__pyx_t_11);
   42319           0 :   __Pyx_XDECREF(__pyx_t_12);
   42320           0 :   __Pyx_AddTraceback("_csparsetools.lil_get_row_ranges", __pyx_clineno, __pyx_lineno, __pyx_filename);
   42321           0 :   __pyx_r = NULL;
   42322           0 :   __pyx_L0:;
   42323           0 :   __Pyx_XDECREF(__pyx_v_cur_row);
   42324           0 :   __Pyx_XDECREF(__pyx_v_cur_data);
   42325           0 :   __Pyx_XDECREF(__pyx_v_new_row);
   42326           0 :   __Pyx_XDECREF(__pyx_v_new_data);
   42327           0 :   __Pyx_XGIVEREF(__pyx_r);
   42328           0 :   __Pyx_RefNannyFinishContext();
   42329           0 :   return __pyx_r;
   42330             : }
   42331             : 
   42332             : /* "_csparsetools.pyx":1037
   42333             :  * @cython.boundscheck(False)
   42334             :  * @cython.wraparound(False)
   42335             :  * cdef inline cnp.npy_intp bisect_left(list a, cnp.npy_intp x) except -1:             # <<<<<<<<<<<<<<
   42336             :  *     """
   42337             :  *     Bisection search in a sorted list.
   42338             :  */
   42339             : 
   42340      103254 : static CYTHON_INLINE npy_intp __pyx_f_13_csparsetools_bisect_left(PyObject *__pyx_v_a, npy_intp __pyx_v_x) {
   42341      103254 :   Py_ssize_t __pyx_v_hi;
   42342      103254 :   Py_ssize_t __pyx_v_lo;
   42343      103254 :   Py_ssize_t __pyx_v_mid;
   42344      103254 :   Py_ssize_t __pyx_v_v;
   42345      103254 :   npy_intp __pyx_r;
   42346      103254 :   Py_ssize_t __pyx_t_1;
   42347      103254 :   int __pyx_t_2;
   42348      103254 :   int __pyx_lineno = 0;
   42349      103254 :   const char *__pyx_filename = NULL;
   42350      103254 :   int __pyx_clineno = 0;
   42351             : 
   42352             :   /* "_csparsetools.pyx":1057
   42353             :  * 
   42354             :  *     """
   42355             :  *     cdef Py_ssize_t hi = len(a)             # <<<<<<<<<<<<<<
   42356             :  *     cdef Py_ssize_t lo = 0
   42357             :  *     cdef Py_ssize_t mid, v
   42358             :  */
   42359      103254 :   if (unlikely(__pyx_v_a == Py_None)) {
   42360           0 :     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   42361           0 :     __PYX_ERR(0, 1057, __pyx_L1_error)
   42362             :   }
   42363      103254 :   __pyx_t_1 = __Pyx_PyList_GET_SIZE(__pyx_v_a); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1057, __pyx_L1_error)
   42364             :   __pyx_v_hi = __pyx_t_1;
   42365             : 
   42366             :   /* "_csparsetools.pyx":1058
   42367             :  *     """
   42368             :  *     cdef Py_ssize_t hi = len(a)
   42369             :  *     cdef Py_ssize_t lo = 0             # <<<<<<<<<<<<<<
   42370             :  *     cdef Py_ssize_t mid, v
   42371             :  * 
   42372             :  */
   42373             :   __pyx_v_lo = 0;
   42374             : 
   42375             :   /* "_csparsetools.pyx":1061
   42376             :  *     cdef Py_ssize_t mid, v
   42377             :  * 
   42378             :  *     while lo < hi:             # <<<<<<<<<<<<<<
   42379             :  *         mid = lo + (hi - lo) // 2
   42380             :  *         v = a[mid]
   42381             :  */
   42382      272236 :   while (1) {
   42383      272236 :     __pyx_t_2 = (__pyx_v_lo < __pyx_v_hi);
   42384      272236 :     if (!__pyx_t_2) break;
   42385             : 
   42386             :     /* "_csparsetools.pyx":1062
   42387             :  * 
   42388             :  *     while lo < hi:
   42389             :  *         mid = lo + (hi - lo) // 2             # <<<<<<<<<<<<<<
   42390             :  *         v = a[mid]
   42391             :  *         if v < x:
   42392             :  */
   42393      168982 :     __pyx_v_mid = (__pyx_v_lo + ((__pyx_v_hi - __pyx_v_lo) / 2));
   42394             : 
   42395             :     /* "_csparsetools.pyx":1063
   42396             :  *     while lo < hi:
   42397             :  *         mid = lo + (hi - lo) // 2
   42398             :  *         v = a[mid]             # <<<<<<<<<<<<<<
   42399             :  *         if v < x:
   42400             :  *             lo = mid + 1
   42401             :  */
   42402      168982 :     if (unlikely(__pyx_v_a == Py_None)) {
   42403             :       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   42404             :       __PYX_ERR(0, 1063, __pyx_L1_error)
   42405             :     }
   42406      168982 :     __pyx_t_1 = __Pyx_PyIndex_AsSsize_t(PyList_GET_ITEM(__pyx_v_a, __pyx_v_mid)); if (unlikely((__pyx_t_1 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1063, __pyx_L1_error)
   42407      168982 :     __pyx_v_v = __pyx_t_1;
   42408             : 
   42409             :     /* "_csparsetools.pyx":1064
   42410             :  *         mid = lo + (hi - lo) // 2
   42411             :  *         v = a[mid]
   42412             :  *         if v < x:             # <<<<<<<<<<<<<<
   42413             :  *             lo = mid + 1
   42414             :  *         else:
   42415             :  */
   42416      168982 :     __pyx_t_2 = (__pyx_v_v < __pyx_v_x);
   42417      168982 :     if (__pyx_t_2) {
   42418             : 
   42419             :       /* "_csparsetools.pyx":1065
   42420             :  *         v = a[mid]
   42421             :  *         if v < x:
   42422             :  *             lo = mid + 1             # <<<<<<<<<<<<<<
   42423             :  *         else:
   42424             :  *             hi = mid
   42425             :  */
   42426       74254 :       __pyx_v_lo = (__pyx_v_mid + 1);
   42427             : 
   42428             :       /* "_csparsetools.pyx":1064
   42429             :  *         mid = lo + (hi - lo) // 2
   42430             :  *         v = a[mid]
   42431             :  *         if v < x:             # <<<<<<<<<<<<<<
   42432             :  *             lo = mid + 1
   42433             :  *         else:
   42434             :  */
   42435       74254 :       goto __pyx_L5;
   42436             :     }
   42437             : 
   42438             :     /* "_csparsetools.pyx":1067
   42439             :  *             lo = mid + 1
   42440             :  *         else:
   42441             :  *             hi = mid             # <<<<<<<<<<<<<<
   42442             :  *     return lo
   42443             :  * 
   42444             :  */
   42445             :     /*else*/ {
   42446             :       __pyx_v_hi = __pyx_v_mid;
   42447             :     }
   42448             :     __pyx_L5:;
   42449             :   }
   42450             : 
   42451             :   /* "_csparsetools.pyx":1068
   42452             :  *         else:
   42453             :  *             hi = mid
   42454             :  *     return lo             # <<<<<<<<<<<<<<
   42455             :  * 
   42456             :  * 
   42457             :  */
   42458      103254 :   __pyx_r = __pyx_v_lo;
   42459      103254 :   goto __pyx_L0;
   42460             : 
   42461             :   /* "_csparsetools.pyx":1037
   42462             :  * @cython.boundscheck(False)
   42463             :  * @cython.wraparound(False)
   42464             :  * cdef inline cnp.npy_intp bisect_left(list a, cnp.npy_intp x) except -1:             # <<<<<<<<<<<<<<
   42465             :  *     """
   42466             :  *     Bisection search in a sorted list.
   42467             :  */
   42468             : 
   42469             :   /* function exit code */
   42470           0 :   __pyx_L1_error:;
   42471           0 :   __Pyx_AddTraceback("_csparsetools.bisect_left", __pyx_clineno, __pyx_lineno, __pyx_filename);
   42472           0 :   __pyx_r = -1L;
   42473      103254 :   __pyx_L0:;
   42474      103254 :   return __pyx_r;
   42475             : }
   42476             : 
   42477             : /* "_csparsetools.pyx":1074
   42478             :  * @cython.boundscheck(False)
   42479             :  * @cython.wraparound(False)
   42480             :  * cdef inline cnp.npy_intp bisect_right(list a, cnp.npy_intp x) except -1:             # <<<<<<<<<<<<<<
   42481             :  *     """
   42482             :  *     Bisection search in a sorted list.
   42483             :  */
   42484             : 
   42485        4417 : static CYTHON_INLINE npy_intp __pyx_f_13_csparsetools_bisect_right(PyObject *__pyx_v_a, npy_intp __pyx_v_x) {
   42486        4417 :   npy_intp __pyx_v_hi;
   42487        4417 :   npy_intp __pyx_v_lo;
   42488        4417 :   npy_intp __pyx_v_mid;
   42489        4417 :   npy_intp __pyx_v_v;
   42490        4417 :   npy_intp __pyx_r;
   42491        4417 :   Py_ssize_t __pyx_t_1;
   42492        4417 :   int __pyx_t_2;
   42493        4417 :   npy_intp __pyx_t_3;
   42494        4417 :   int __pyx_lineno = 0;
   42495        4417 :   const char *__pyx_filename = NULL;
   42496        4417 :   int __pyx_clineno = 0;
   42497             : 
   42498             :   /* "_csparsetools.pyx":1092
   42499             :  *         the point to which it can be inserted maintaining order.
   42500             :  *     """
   42501             :  *     cdef cnp.npy_intp hi = len(a)             # <<<<<<<<<<<<<<
   42502             :  *     cdef cnp.npy_intp lo = 0
   42503             :  *     cdef cnp.npy_intp mid, v
   42504             :  */
   42505        4417 :   if (unlikely(__pyx_v_a == Py_None)) {
   42506           0 :     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
   42507           0 :     __PYX_ERR(0, 1092, __pyx_L1_error)
   42508             :   }
   42509        4417 :   __pyx_t_1 = __Pyx_PyList_GET_SIZE(__pyx_v_a); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1092, __pyx_L1_error)
   42510             :   __pyx_v_hi = __pyx_t_1;
   42511             : 
   42512             :   /* "_csparsetools.pyx":1093
   42513             :  *     """
   42514             :  *     cdef cnp.npy_intp hi = len(a)
   42515             :  *     cdef cnp.npy_intp lo = 0             # <<<<<<<<<<<<<<
   42516             :  *     cdef cnp.npy_intp mid, v
   42517             :  * 
   42518             :  */
   42519             :   __pyx_v_lo = 0;
   42520             : 
   42521             :   /* "_csparsetools.pyx":1096
   42522             :  *     cdef cnp.npy_intp mid, v
   42523             :  * 
   42524             :  *     while lo < hi:             # <<<<<<<<<<<<<<
   42525             :  *         mid = (lo + hi) // 2
   42526             :  *         v = a[mid]
   42527             :  */
   42528       20846 :   while (1) {
   42529       20846 :     __pyx_t_2 = (__pyx_v_lo < __pyx_v_hi);
   42530       20846 :     if (!__pyx_t_2) break;
   42531             : 
   42532             :     /* "_csparsetools.pyx":1097
   42533             :  * 
   42534             :  *     while lo < hi:
   42535             :  *         mid = (lo + hi) // 2             # <<<<<<<<<<<<<<
   42536             :  *         v = a[mid]
   42537             :  *         if x < v:
   42538             :  */
   42539       16429 :     __pyx_v_mid = ((__pyx_v_lo + __pyx_v_hi) / 2);
   42540             : 
   42541             :     /* "_csparsetools.pyx":1098
   42542             :  *     while lo < hi:
   42543             :  *         mid = (lo + hi) // 2
   42544             :  *         v = a[mid]             # <<<<<<<<<<<<<<
   42545             :  *         if x < v:
   42546             :  *             hi = mid
   42547             :  */
   42548       16429 :     if (unlikely(__pyx_v_a == Py_None)) {
   42549             :       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
   42550             :       __PYX_ERR(0, 1098, __pyx_L1_error)
   42551             :     }
   42552       16429 :     __pyx_t_3 = __Pyx_PyInt_As_npy_intp(PyList_GET_ITEM(__pyx_v_a, __pyx_v_mid)); if (unlikely((__pyx_t_3 == ((npy_intp)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1098, __pyx_L1_error)
   42553       16429 :     __pyx_v_v = __pyx_t_3;
   42554             : 
   42555             :     /* "_csparsetools.pyx":1099
   42556             :  *         mid = (lo + hi) // 2
   42557             :  *         v = a[mid]
   42558             :  *         if x < v:             # <<<<<<<<<<<<<<
   42559             :  *             hi = mid
   42560             :  *         else:
   42561             :  */
   42562       16429 :     __pyx_t_2 = (__pyx_v_x < __pyx_v_v);
   42563       16429 :     if (__pyx_t_2) {
   42564             : 
   42565             :       /* "_csparsetools.pyx":1100
   42566             :  *         v = a[mid]
   42567             :  *         if x < v:
   42568             :  *             hi = mid             # <<<<<<<<<<<<<<
   42569             :  *         else:
   42570             :  *             lo = mid + 1
   42571             :  */
   42572       12222 :       __pyx_v_hi = __pyx_v_mid;
   42573             : 
   42574             :       /* "_csparsetools.pyx":1099
   42575             :  *         mid = (lo + hi) // 2
   42576             :  *         v = a[mid]
   42577             :  *         if x < v:             # <<<<<<<<<<<<<<
   42578             :  *             hi = mid
   42579             :  *         else:
   42580             :  */
   42581       12222 :       goto __pyx_L5;
   42582             :     }
   42583             : 
   42584             :     /* "_csparsetools.pyx":1102
   42585             :  *             hi = mid
   42586             :  *         else:
   42587             :  *             lo = mid + 1             # <<<<<<<<<<<<<<
   42588             :  *     return lo
   42589             :  * 
   42590             :  */
   42591             :     /*else*/ {
   42592        4207 :       __pyx_v_lo = (__pyx_v_mid + 1);
   42593             :     }
   42594             :     __pyx_L5:;
   42595             :   }
   42596             : 
   42597             :   /* "_csparsetools.pyx":1103
   42598             :  *         else:
   42599             :  *             lo = mid + 1
   42600             :  *     return lo             # <<<<<<<<<<<<<<
   42601             :  * 
   42602             :  * 
   42603             :  */
   42604        4417 :   __pyx_r = __pyx_v_lo;
   42605        4417 :   goto __pyx_L0;
   42606             : 
   42607             :   /* "_csparsetools.pyx":1074
   42608             :  * @cython.boundscheck(False)
   42609             :  * @cython.wraparound(False)
   42610             :  * cdef inline cnp.npy_intp bisect_right(list a, cnp.npy_intp x) except -1:             # <<<<<<<<<<<<<<
   42611             :  *     """
   42612             :  *     Bisection search in a sorted list.
   42613             :  */
   42614             : 
   42615             :   /* function exit code */
   42616           0 :   __pyx_L1_error:;
   42617           0 :   __Pyx_AddTraceback("_csparsetools.bisect_right", __pyx_clineno, __pyx_lineno, __pyx_filename);
   42618           0 :   __pyx_r = -1L;
   42619        4417 :   __pyx_L0:;
   42620        4417 :   return __pyx_r;
   42621             : }
   42622             : 
   42623             : /* "_csparsetools.pyx":1106
   42624             :  * 
   42625             :  * 
   42626             :  * cdef _fill_dtype_map(map, chars):             # <<<<<<<<<<<<<<
   42627             :  *     """
   42628             :  *     Fill in Numpy dtype chars for problematic types, working around
   42629             :  */
   42630             : 
   42631           3 : static PyObject *__pyx_f_13_csparsetools__fill_dtype_map(PyObject *__pyx_v_map, PyObject *__pyx_v_chars) {
   42632           3 :   PyObject *__pyx_v_c = NULL;
   42633           3 :   PyObject *__pyx_v_dt = NULL;
   42634           3 :   PyObject *__pyx_v_k = NULL;
   42635           3 :   PyObject *__pyx_v_v = NULL;
   42636           3 :   PyObject *__pyx_r = NULL;
   42637             :   __Pyx_RefNannyDeclarations
   42638           3 :   PyObject *__pyx_t_1 = NULL;
   42639           3 :   Py_ssize_t __pyx_t_2;
   42640           3 :   PyObject *(*__pyx_t_3)(PyObject *);
   42641           3 :   PyObject *__pyx_t_4 = NULL;
   42642           3 :   int __pyx_t_5;
   42643           3 :   PyObject *__pyx_t_6 = NULL;
   42644           3 :   PyObject *__pyx_t_7 = NULL;
   42645           3 :   unsigned int __pyx_t_8;
   42646           3 :   Py_ssize_t __pyx_t_9;
   42647           3 :   Py_ssize_t __pyx_t_10;
   42648           3 :   int __pyx_t_11;
   42649           3 :   int __pyx_t_12;
   42650           3 :   PyObject *__pyx_t_13 = NULL;
   42651           3 :   int __pyx_t_14;
   42652           3 :   int __pyx_lineno = 0;
   42653           3 :   const char *__pyx_filename = NULL;
   42654           3 :   int __pyx_clineno = 0;
   42655           3 :   __Pyx_RefNannySetupContext("_fill_dtype_map", 1);
   42656             : 
   42657             :   /* "_csparsetools.pyx":1111
   42658             :  *     Numpy < 1.6 bugs.
   42659             :  *     """
   42660             :  *     for c in chars:             # <<<<<<<<<<<<<<
   42661             :  *         if c in "SUVO":
   42662             :  *             continue
   42663             :  */
   42664           3 :   if (likely(PyList_CheckExact(__pyx_v_chars)) || PyTuple_CheckExact(__pyx_v_chars)) {
   42665           0 :     __pyx_t_1 = __pyx_v_chars; __Pyx_INCREF(__pyx_t_1);
   42666           3 :     __pyx_t_2 = 0;
   42667           3 :     __pyx_t_3 = NULL;
   42668             :   } else {
   42669           3 :     __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_chars); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1111, __pyx_L1_error)
   42670           3 :     __Pyx_GOTREF(__pyx_t_1);
   42671           3 :     __pyx_t_3 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1111, __pyx_L1_error)
   42672             :   }
   42673          24 :   for (;;) {
   42674          24 :     if (likely(!__pyx_t_3)) {
   42675           0 :       if (likely(PyList_CheckExact(__pyx_t_1))) {
   42676             :         {
   42677           0 :           Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
   42678             :           #if !CYTHON_ASSUME_SAFE_MACROS
   42679             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1111, __pyx_L1_error)
   42680             :           #endif
   42681           0 :           if (__pyx_t_2 >= __pyx_temp) break;
   42682             :         }
   42683             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   42684           0 :         __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(0, 1111, __pyx_L1_error)
   42685             :         #else
   42686             :         __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1111, __pyx_L1_error)
   42687             :         __Pyx_GOTREF(__pyx_t_4);
   42688             :         #endif
   42689             :       } else {
   42690             :         {
   42691           0 :           Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
   42692             :           #if !CYTHON_ASSUME_SAFE_MACROS
   42693             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1111, __pyx_L1_error)
   42694             :           #endif
   42695           0 :           if (__pyx_t_2 >= __pyx_temp) break;
   42696             :         }
   42697             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   42698           0 :         __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(0, 1111, __pyx_L1_error)
   42699             :         #else
   42700             :         __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1111, __pyx_L1_error)
   42701             :         __Pyx_GOTREF(__pyx_t_4);
   42702             :         #endif
   42703             :       }
   42704             :     } else {
   42705          24 :       __pyx_t_4 = __pyx_t_3(__pyx_t_1);
   42706          24 :       if (unlikely(!__pyx_t_4)) {
   42707           3 :         PyObject* exc_type = PyErr_Occurred();
   42708           3 :         if (exc_type) {
   42709           0 :           if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
   42710           0 :           else __PYX_ERR(0, 1111, __pyx_L1_error)
   42711             :         }
   42712             :         break;
   42713             :       }
   42714          21 :       __Pyx_GOTREF(__pyx_t_4);
   42715             :     }
   42716          21 :     __Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_4);
   42717          21 :     __pyx_t_4 = 0;
   42718             : 
   42719             :     /* "_csparsetools.pyx":1112
   42720             :  *     """
   42721             :  *     for c in chars:
   42722             :  *         if c in "SUVO":             # <<<<<<<<<<<<<<
   42723             :  *             continue
   42724             :  *         dt = np.dtype(c)
   42725             :  */
   42726          42 :     __pyx_t_5 = (__Pyx_PyUnicode_ContainsTF(__pyx_v_c, __pyx_n_u_SUVO, Py_EQ)); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 1112, __pyx_L1_error)
   42727          21 :     if (__pyx_t_5) {
   42728             : 
   42729             :       /* "_csparsetools.pyx":1113
   42730             :  *     for c in chars:
   42731             :  *         if c in "SUVO":
   42732             :  *             continue             # <<<<<<<<<<<<<<
   42733             :  *         dt = np.dtype(c)
   42734             :  *         if dt not in map:
   42735             :  */
   42736           0 :       goto __pyx_L3_continue;
   42737             : 
   42738             :       /* "_csparsetools.pyx":1112
   42739             :  *     """
   42740             :  *     for c in chars:
   42741             :  *         if c in "SUVO":             # <<<<<<<<<<<<<<
   42742             :  *             continue
   42743             :  *         dt = np.dtype(c)
   42744             :  */
   42745             :     }
   42746             : 
   42747             :     /* "_csparsetools.pyx":1114
   42748             :  *         if c in "SUVO":
   42749             :  *             continue
   42750             :  *         dt = np.dtype(c)             # <<<<<<<<<<<<<<
   42751             :  *         if dt not in map:
   42752             :  *             for k, v in map.items():
   42753             :  */
   42754          21 :     __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1114, __pyx_L1_error)
   42755          21 :     __Pyx_GOTREF(__pyx_t_6);
   42756          21 :     __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_dtype); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1114, __pyx_L1_error)
   42757          21 :     __Pyx_GOTREF(__pyx_t_7);
   42758          21 :     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   42759          21 :     __pyx_t_6 = NULL;
   42760          21 :     __pyx_t_8 = 0;
   42761             :     #if CYTHON_UNPACK_METHODS
   42762          21 :     if (unlikely(PyMethod_Check(__pyx_t_7))) {
   42763           0 :       __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
   42764           0 :       if (likely(__pyx_t_6)) {
   42765           0 :         PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
   42766           0 :         __Pyx_INCREF(__pyx_t_6);
   42767           0 :         __Pyx_INCREF(function);
   42768           0 :         __Pyx_DECREF_SET(__pyx_t_7, function);
   42769             :         __pyx_t_8 = 1;
   42770             :       }
   42771             :     }
   42772             :     #endif
   42773             :     {
   42774          21 :       PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_c};
   42775          21 :       __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
   42776          21 :       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
   42777          21 :       if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1114, __pyx_L1_error)
   42778          21 :       __Pyx_GOTREF(__pyx_t_4);
   42779          21 :       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   42780             :     }
   42781          21 :     __Pyx_XDECREF_SET(__pyx_v_dt, __pyx_t_4);
   42782          21 :     __pyx_t_4 = 0;
   42783             : 
   42784             :     /* "_csparsetools.pyx":1115
   42785             :  *             continue
   42786             :  *         dt = np.dtype(c)
   42787             :  *         if dt not in map:             # <<<<<<<<<<<<<<
   42788             :  *             for k, v in map.items():
   42789             :  *                 if k.kind == dt.kind and k.itemsize == dt.itemsize:
   42790             :  */
   42791          42 :     __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_v_dt, __pyx_v_map, Py_NE)); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 1115, __pyx_L1_error)
   42792          21 :     if (__pyx_t_5) {
   42793             : 
   42794             :       /* "_csparsetools.pyx":1116
   42795             :  *         dt = np.dtype(c)
   42796             :  *         if dt not in map:
   42797             :  *             for k, v in map.items():             # <<<<<<<<<<<<<<
   42798             :  *                 if k.kind == dt.kind and k.itemsize == dt.itemsize:
   42799             :  *                     map[dt] = v
   42800             :  */
   42801           6 :       __pyx_t_9 = 0;
   42802           6 :       if (unlikely(__pyx_v_map == Py_None)) {
   42803           0 :         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
   42804           0 :         __PYX_ERR(0, 1116, __pyx_L1_error)
   42805             :       }
   42806           6 :       __pyx_t_7 = __Pyx_dict_iterator(__pyx_v_map, 0, __pyx_n_s_items, (&__pyx_t_10), (&__pyx_t_11)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1116, __pyx_L1_error)
   42807           6 :       __Pyx_GOTREF(__pyx_t_7);
   42808           6 :       __Pyx_XDECREF(__pyx_t_4);
   42809           6 :       __pyx_t_4 = __pyx_t_7;
   42810           6 :       __pyx_t_7 = 0;
   42811          18 :       while (1) {
   42812          18 :         __pyx_t_12 = __Pyx_dict_iter_next(__pyx_t_4, __pyx_t_10, &__pyx_t_9, &__pyx_t_7, &__pyx_t_6, NULL, __pyx_t_11);
   42813          18 :         if (unlikely(__pyx_t_12 == 0)) break;
   42814          12 :         if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 1116, __pyx_L1_error)
   42815          12 :         __Pyx_GOTREF(__pyx_t_7);
   42816          12 :         __Pyx_GOTREF(__pyx_t_6);
   42817          12 :         __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_7);
   42818          12 :         __pyx_t_7 = 0;
   42819          12 :         __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_6);
   42820          12 :         __pyx_t_6 = 0;
   42821             : 
   42822             :         /* "_csparsetools.pyx":1117
   42823             :  *         if dt not in map:
   42824             :  *             for k, v in map.items():
   42825             :  *                 if k.kind == dt.kind and k.itemsize == dt.itemsize:             # <<<<<<<<<<<<<<
   42826             :  *                     map[dt] = v
   42827             :  *                     break
   42828             :  */
   42829          12 :         __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_k, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1117, __pyx_L1_error)
   42830          12 :         __Pyx_GOTREF(__pyx_t_6);
   42831          12 :         __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_dt, __pyx_n_s_kind); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1117, __pyx_L1_error)
   42832          12 :         __Pyx_GOTREF(__pyx_t_7);
   42833          12 :         __pyx_t_13 = PyObject_RichCompare(__pyx_t_6, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1117, __pyx_L1_error)
   42834          12 :         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   42835          12 :         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   42836          12 :         __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 1117, __pyx_L1_error)
   42837          12 :         __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
   42838          12 :         if (__pyx_t_14) {
   42839          12 :         } else {
   42840           0 :           __pyx_t_5 = __pyx_t_14;
   42841           0 :           goto __pyx_L10_bool_binop_done;
   42842             :         }
   42843          12 :         __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_k, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1117, __pyx_L1_error)
   42844          12 :         __Pyx_GOTREF(__pyx_t_13);
   42845          12 :         __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_dt, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1117, __pyx_L1_error)
   42846          12 :         __Pyx_GOTREF(__pyx_t_7);
   42847          12 :         __pyx_t_6 = PyObject_RichCompare(__pyx_t_13, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1117, __pyx_L1_error)
   42848          12 :         __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
   42849          12 :         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   42850          12 :         __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 1117, __pyx_L1_error)
   42851          12 :         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   42852          12 :         __pyx_t_5 = __pyx_t_14;
   42853          12 :         __pyx_L10_bool_binop_done:;
   42854          12 :         if (__pyx_t_5) {
   42855             : 
   42856             :           /* "_csparsetools.pyx":1118
   42857             :  *             for k, v in map.items():
   42858             :  *                 if k.kind == dt.kind and k.itemsize == dt.itemsize:
   42859             :  *                     map[dt] = v             # <<<<<<<<<<<<<<
   42860             :  *                     break
   42861             :  * 
   42862             :  */
   42863           0 :           if (unlikely((PyObject_SetItem(__pyx_v_map, __pyx_v_dt, __pyx_v_v) < 0))) __PYX_ERR(0, 1118, __pyx_L1_error)
   42864             : 
   42865             :           /* "_csparsetools.pyx":1119
   42866             :  *                 if k.kind == dt.kind and k.itemsize == dt.itemsize:
   42867             :  *                     map[dt] = v
   42868             :  *                     break             # <<<<<<<<<<<<<<
   42869             :  * 
   42870             :  * 
   42871             :  */
   42872           0 :           goto __pyx_L8_break;
   42873             : 
   42874             :           /* "_csparsetools.pyx":1117
   42875             :  *         if dt not in map:
   42876             :  *             for k, v in map.items():
   42877             :  *                 if k.kind == dt.kind and k.itemsize == dt.itemsize:             # <<<<<<<<<<<<<<
   42878             :  *                     map[dt] = v
   42879             :  *                     break
   42880             :  */
   42881             :         }
   42882             :       }
   42883           6 :       __pyx_L8_break:;
   42884          30 :       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   42885             : 
   42886             :       /* "_csparsetools.pyx":1115
   42887             :  *             continue
   42888             :  *         dt = np.dtype(c)
   42889             :  *         if dt not in map:             # <<<<<<<<<<<<<<
   42890             :  *             for k, v in map.items():
   42891             :  *                 if k.kind == dt.kind and k.itemsize == dt.itemsize:
   42892             :  */
   42893             :     }
   42894             : 
   42895             :     /* "_csparsetools.pyx":1111
   42896             :  *     Numpy < 1.6 bugs.
   42897             :  *     """
   42898             :  *     for c in chars:             # <<<<<<<<<<<<<<
   42899             :  *         if c in "SUVO":
   42900             :  *             continue
   42901             :  */
   42902           3 :     __pyx_L3_continue:;
   42903             :   }
   42904           3 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   42905             : 
   42906             :   /* "_csparsetools.pyx":1106
   42907             :  * 
   42908             :  * 
   42909             :  * cdef _fill_dtype_map(map, chars):             # <<<<<<<<<<<<<<
   42910             :  *     """
   42911             :  *     Fill in Numpy dtype chars for problematic types, working around
   42912             :  */
   42913             : 
   42914             :   /* function exit code */
   42915           3 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   42916           3 :   goto __pyx_L0;
   42917           0 :   __pyx_L1_error:;
   42918           0 :   __Pyx_XDECREF(__pyx_t_1);
   42919           0 :   __Pyx_XDECREF(__pyx_t_4);
   42920           0 :   __Pyx_XDECREF(__pyx_t_6);
   42921           0 :   __Pyx_XDECREF(__pyx_t_7);
   42922           0 :   __Pyx_XDECREF(__pyx_t_13);
   42923           0 :   __Pyx_AddTraceback("_csparsetools._fill_dtype_map", __pyx_clineno, __pyx_lineno, __pyx_filename);
   42924           0 :   __pyx_r = 0;
   42925           3 :   __pyx_L0:;
   42926           3 :   __Pyx_XDECREF(__pyx_v_c);
   42927           3 :   __Pyx_XDECREF(__pyx_v_dt);
   42928           3 :   __Pyx_XDECREF(__pyx_v_k);
   42929           3 :   __Pyx_XDECREF(__pyx_v_v);
   42930           3 :   __Pyx_XGIVEREF(__pyx_r);
   42931           3 :   __Pyx_RefNannyFinishContext();
   42932           3 :   return __pyx_r;
   42933             : }
   42934             : 
   42935             : /* "_csparsetools.pyx":1122
   42936             :  * 
   42937             :  * 
   42938             :  * cdef _fill_dtype_map2(map):             # <<<<<<<<<<<<<<
   42939             :  *     """
   42940             :  *     Fill in Numpy dtype chars for problematic types, working around
   42941             :  */
   42942             : 
   42943           3 : static PyObject *__pyx_f_13_csparsetools__fill_dtype_map2(PyObject *__pyx_v_map) {
   42944           3 :   PyObject *__pyx_v_c1 = NULL;
   42945           3 :   PyObject *__pyx_v_c2 = NULL;
   42946           3 :   PyObject *__pyx_v_dt1 = NULL;
   42947           3 :   PyObject *__pyx_v_dt2 = NULL;
   42948           3 :   PyObject *__pyx_v_k = NULL;
   42949           3 :   PyObject *__pyx_v_v = NULL;
   42950           3 :   PyObject *__pyx_r = NULL;
   42951             :   __Pyx_RefNannyDeclarations
   42952           3 :   PyObject *__pyx_t_1 = NULL;
   42953           3 :   PyObject *__pyx_t_2 = NULL;
   42954           3 :   Py_ssize_t __pyx_t_3;
   42955           3 :   PyObject *(*__pyx_t_4)(PyObject *);
   42956           3 :   PyObject *__pyx_t_5 = NULL;
   42957           3 :   Py_ssize_t __pyx_t_6;
   42958           3 :   PyObject *(*__pyx_t_7)(PyObject *);
   42959           3 :   int __pyx_t_8;
   42960           3 :   PyObject *__pyx_t_9 = NULL;
   42961           3 :   PyObject *__pyx_t_10 = NULL;
   42962           3 :   unsigned int __pyx_t_11;
   42963           3 :   Py_ssize_t __pyx_t_12;
   42964           3 :   Py_ssize_t __pyx_t_13;
   42965           3 :   int __pyx_t_14;
   42966           3 :   int __pyx_t_15;
   42967           3 :   PyObject *__pyx_t_16 = NULL;
   42968           3 :   int __pyx_t_17;
   42969           3 :   int __pyx_lineno = 0;
   42970           3 :   const char *__pyx_filename = NULL;
   42971           3 :   int __pyx_clineno = 0;
   42972           3 :   __Pyx_RefNannySetupContext("_fill_dtype_map2", 1);
   42973             : 
   42974             :   /* "_csparsetools.pyx":1127
   42975             :  *     Numpy < 1.6 bugs.
   42976             :  *     """
   42977             :  *     for c1 in np.typecodes['Integer']:             # <<<<<<<<<<<<<<
   42978             :  *         for c2 in np.typecodes['All']:
   42979             :  *             if c2 in "SUVO":
   42980             :  */
   42981           3 :   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1127, __pyx_L1_error)
   42982           3 :   __Pyx_GOTREF(__pyx_t_1);
   42983           3 :   __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_typecodes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1127, __pyx_L1_error)
   42984           3 :   __Pyx_GOTREF(__pyx_t_2);
   42985           3 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   42986           3 :   __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_Integer); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1127, __pyx_L1_error)
   42987           3 :   __Pyx_GOTREF(__pyx_t_1);
   42988           3 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   42989           3 :   if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
   42990           0 :     __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2);
   42991             :     __pyx_t_3 = 0;
   42992             :     __pyx_t_4 = NULL;
   42993             :   } else {
   42994           3 :     __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1127, __pyx_L1_error)
   42995           3 :     __Pyx_GOTREF(__pyx_t_2);
   42996           3 :     __pyx_t_4 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1127, __pyx_L1_error)
   42997             :   }
   42998           3 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   42999          24 :   for (;;) {
   43000          24 :     if (likely(!__pyx_t_4)) {
   43001           0 :       if (likely(PyList_CheckExact(__pyx_t_2))) {
   43002             :         {
   43003           0 :           Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
   43004             :           #if !CYTHON_ASSUME_SAFE_MACROS
   43005             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1127, __pyx_L1_error)
   43006             :           #endif
   43007           0 :           if (__pyx_t_3 >= __pyx_temp) break;
   43008             :         }
   43009             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   43010           0 :         __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 1127, __pyx_L1_error)
   43011             :         #else
   43012             :         __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1127, __pyx_L1_error)
   43013             :         __Pyx_GOTREF(__pyx_t_1);
   43014             :         #endif
   43015             :       } else {
   43016             :         {
   43017           0 :           Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
   43018             :           #if !CYTHON_ASSUME_SAFE_MACROS
   43019             :           if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1127, __pyx_L1_error)
   43020             :           #endif
   43021           0 :           if (__pyx_t_3 >= __pyx_temp) break;
   43022             :         }
   43023             :         #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   43024           0 :         __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 1127, __pyx_L1_error)
   43025             :         #else
   43026             :         __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1127, __pyx_L1_error)
   43027             :         __Pyx_GOTREF(__pyx_t_1);
   43028             :         #endif
   43029             :       }
   43030             :     } else {
   43031          24 :       __pyx_t_1 = __pyx_t_4(__pyx_t_2);
   43032          24 :       if (unlikely(!__pyx_t_1)) {
   43033           3 :         PyObject* exc_type = PyErr_Occurred();
   43034           3 :         if (exc_type) {
   43035           0 :           if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
   43036           0 :           else __PYX_ERR(0, 1127, __pyx_L1_error)
   43037             :         }
   43038             :         break;
   43039             :       }
   43040          21 :       __Pyx_GOTREF(__pyx_t_1);
   43041             :     }
   43042          21 :     __Pyx_XDECREF_SET(__pyx_v_c1, __pyx_t_1);
   43043          21 :     __pyx_t_1 = 0;
   43044             : 
   43045             :     /* "_csparsetools.pyx":1128
   43046             :  *     """
   43047             :  *     for c1 in np.typecodes['Integer']:
   43048             :  *         for c2 in np.typecodes['All']:             # <<<<<<<<<<<<<<
   43049             :  *             if c2 in "SUVO":
   43050             :  *                 continue
   43051             :  */
   43052          21 :     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1128, __pyx_L1_error)
   43053          21 :     __Pyx_GOTREF(__pyx_t_1);
   43054          21 :     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_typecodes); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1128, __pyx_L1_error)
   43055          21 :     __Pyx_GOTREF(__pyx_t_5);
   43056          21 :     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   43057          21 :     __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_All); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1128, __pyx_L1_error)
   43058          21 :     __Pyx_GOTREF(__pyx_t_1);
   43059          21 :     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   43060          21 :     if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
   43061           0 :       __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5);
   43062             :       __pyx_t_6 = 0;
   43063             :       __pyx_t_7 = NULL;
   43064             :     } else {
   43065          21 :       __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1128, __pyx_L1_error)
   43066          21 :       __Pyx_GOTREF(__pyx_t_5);
   43067          21 :       __pyx_t_7 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1128, __pyx_L1_error)
   43068             :     }
   43069          21 :     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   43070         609 :     for (;;) {
   43071         609 :       if (likely(!__pyx_t_7)) {
   43072           0 :         if (likely(PyList_CheckExact(__pyx_t_5))) {
   43073             :           {
   43074           0 :             Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);
   43075             :             #if !CYTHON_ASSUME_SAFE_MACROS
   43076             :             if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1128, __pyx_L1_error)
   43077             :             #endif
   43078           0 :             if (__pyx_t_6 >= __pyx_temp) break;
   43079             :           }
   43080             :           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   43081           0 :           __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(0, 1128, __pyx_L1_error)
   43082             :           #else
   43083             :           __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1128, __pyx_L1_error)
   43084             :           __Pyx_GOTREF(__pyx_t_1);
   43085             :           #endif
   43086             :         } else {
   43087             :           {
   43088           0 :             Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);
   43089             :             #if !CYTHON_ASSUME_SAFE_MACROS
   43090             :             if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1128, __pyx_L1_error)
   43091             :             #endif
   43092           0 :             if (__pyx_t_6 >= __pyx_temp) break;
   43093             :           }
   43094             :           #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   43095           0 :           __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(0, 1128, __pyx_L1_error)
   43096             :           #else
   43097             :           __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1128, __pyx_L1_error)
   43098             :           __Pyx_GOTREF(__pyx_t_1);
   43099             :           #endif
   43100             :         }
   43101             :       } else {
   43102         609 :         __pyx_t_1 = __pyx_t_7(__pyx_t_5);
   43103         609 :         if (unlikely(!__pyx_t_1)) {
   43104          21 :           PyObject* exc_type = PyErr_Occurred();
   43105          21 :           if (exc_type) {
   43106           0 :             if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
   43107           0 :             else __PYX_ERR(0, 1128, __pyx_L1_error)
   43108             :           }
   43109             :           break;
   43110             :         }
   43111         588 :         __Pyx_GOTREF(__pyx_t_1);
   43112             :       }
   43113         588 :       __Pyx_XDECREF_SET(__pyx_v_c2, __pyx_t_1);
   43114         588 :       __pyx_t_1 = 0;
   43115             : 
   43116             :       /* "_csparsetools.pyx":1129
   43117             :  *     for c1 in np.typecodes['Integer']:
   43118             :  *         for c2 in np.typecodes['All']:
   43119             :  *             if c2 in "SUVO":             # <<<<<<<<<<<<<<
   43120             :  *                 continue
   43121             :  *             dt1 = np.dtype(c1)
   43122             :  */
   43123        1176 :       __pyx_t_8 = (__Pyx_PyUnicode_ContainsTF(__pyx_v_c2, __pyx_n_u_SUVO, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1129, __pyx_L1_error)
   43124         588 :       if (__pyx_t_8) {
   43125             : 
   43126             :         /* "_csparsetools.pyx":1130
   43127             :  *         for c2 in np.typecodes['All']:
   43128             :  *             if c2 in "SUVO":
   43129             :  *                 continue             # <<<<<<<<<<<<<<
   43130             :  *             dt1 = np.dtype(c1)
   43131             :  *             dt2 = np.dtype(c2)
   43132             :  */
   43133          84 :         goto __pyx_L5_continue;
   43134             : 
   43135             :         /* "_csparsetools.pyx":1129
   43136             :  *     for c1 in np.typecodes['Integer']:
   43137             :  *         for c2 in np.typecodes['All']:
   43138             :  *             if c2 in "SUVO":             # <<<<<<<<<<<<<<
   43139             :  *                 continue
   43140             :  *             dt1 = np.dtype(c1)
   43141             :  */
   43142             :       }
   43143             : 
   43144             :       /* "_csparsetools.pyx":1131
   43145             :  *             if c2 in "SUVO":
   43146             :  *                 continue
   43147             :  *             dt1 = np.dtype(c1)             # <<<<<<<<<<<<<<
   43148             :  *             dt2 = np.dtype(c2)
   43149             :  *             if (dt1, dt2) not in map:
   43150             :  */
   43151         504 :       __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1131, __pyx_L1_error)
   43152         504 :       __Pyx_GOTREF(__pyx_t_9);
   43153         504 :       __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_dtype); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1131, __pyx_L1_error)
   43154         504 :       __Pyx_GOTREF(__pyx_t_10);
   43155         504 :       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   43156         504 :       __pyx_t_9 = NULL;
   43157         504 :       __pyx_t_11 = 0;
   43158             :       #if CYTHON_UNPACK_METHODS
   43159         504 :       if (unlikely(PyMethod_Check(__pyx_t_10))) {
   43160           0 :         __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10);
   43161           0 :         if (likely(__pyx_t_9)) {
   43162           0 :           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
   43163           0 :           __Pyx_INCREF(__pyx_t_9);
   43164           0 :           __Pyx_INCREF(function);
   43165           0 :           __Pyx_DECREF_SET(__pyx_t_10, function);
   43166             :           __pyx_t_11 = 1;
   43167             :         }
   43168             :       }
   43169             :       #endif
   43170             :       {
   43171         504 :         PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_c1};
   43172         504 :         __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_11, 1+__pyx_t_11);
   43173         504 :         __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
   43174         504 :         if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1131, __pyx_L1_error)
   43175         504 :         __Pyx_GOTREF(__pyx_t_1);
   43176         504 :         __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   43177             :       }
   43178         504 :       __Pyx_XDECREF_SET(__pyx_v_dt1, __pyx_t_1);
   43179         504 :       __pyx_t_1 = 0;
   43180             : 
   43181             :       /* "_csparsetools.pyx":1132
   43182             :  *                 continue
   43183             :  *             dt1 = np.dtype(c1)
   43184             :  *             dt2 = np.dtype(c2)             # <<<<<<<<<<<<<<
   43185             :  *             if (dt1, dt2) not in map:
   43186             :  *                 for k, v in map.items():
   43187             :  */
   43188         504 :       __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1132, __pyx_L1_error)
   43189         504 :       __Pyx_GOTREF(__pyx_t_10);
   43190         504 :       __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1132, __pyx_L1_error)
   43191         504 :       __Pyx_GOTREF(__pyx_t_9);
   43192         504 :       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   43193         504 :       __pyx_t_10 = NULL;
   43194         504 :       __pyx_t_11 = 0;
   43195             :       #if CYTHON_UNPACK_METHODS
   43196         504 :       if (unlikely(PyMethod_Check(__pyx_t_9))) {
   43197           0 :         __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
   43198           0 :         if (likely(__pyx_t_10)) {
   43199           0 :           PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
   43200           0 :           __Pyx_INCREF(__pyx_t_10);
   43201           0 :           __Pyx_INCREF(function);
   43202           0 :           __Pyx_DECREF_SET(__pyx_t_9, function);
   43203             :           __pyx_t_11 = 1;
   43204             :         }
   43205             :       }
   43206             :       #endif
   43207             :       {
   43208         504 :         PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_v_c2};
   43209         504 :         __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_11, 1+__pyx_t_11);
   43210         504 :         __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
   43211         504 :         if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1132, __pyx_L1_error)
   43212         504 :         __Pyx_GOTREF(__pyx_t_1);
   43213         504 :         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   43214             :       }
   43215         504 :       __Pyx_XDECREF_SET(__pyx_v_dt2, __pyx_t_1);
   43216         504 :       __pyx_t_1 = 0;
   43217             : 
   43218             :       /* "_csparsetools.pyx":1133
   43219             :  *             dt1 = np.dtype(c1)
   43220             :  *             dt2 = np.dtype(c2)
   43221             :  *             if (dt1, dt2) not in map:             # <<<<<<<<<<<<<<
   43222             :  *                 for k, v in map.items():
   43223             :  *                     if (k[0].kind == dt1.kind and k[0].itemsize == dt1.itemsize and
   43224             :  */
   43225         504 :       __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1133, __pyx_L1_error)
   43226         504 :       __Pyx_GOTREF(__pyx_t_1);
   43227         504 :       __Pyx_INCREF(__pyx_v_dt1);
   43228         504 :       __Pyx_GIVEREF(__pyx_v_dt1);
   43229         504 :       if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_dt1)) __PYX_ERR(0, 1133, __pyx_L1_error);
   43230         504 :       __Pyx_INCREF(__pyx_v_dt2);
   43231         504 :       __Pyx_GIVEREF(__pyx_v_dt2);
   43232         504 :       if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_dt2)) __PYX_ERR(0, 1133, __pyx_L1_error);
   43233        1008 :       __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_map, Py_NE)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1133, __pyx_L1_error)
   43234         504 :       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   43235         504 :       if (__pyx_t_8) {
   43236             : 
   43237             :         /* "_csparsetools.pyx":1134
   43238             :  *             dt2 = np.dtype(c2)
   43239             :  *             if (dt1, dt2) not in map:
   43240             :  *                 for k, v in map.items():             # <<<<<<<<<<<<<<
   43241             :  *                     if (k[0].kind == dt1.kind and k[0].itemsize == dt1.itemsize and
   43242             :  *                         k[1].kind == dt2.kind and k[1].itemsize == dt2.itemsize):
   43243             :  */
   43244         189 :         __pyx_t_12 = 0;
   43245         189 :         if (unlikely(__pyx_v_map == Py_None)) {
   43246           0 :           PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
   43247           0 :           __PYX_ERR(0, 1134, __pyx_L1_error)
   43248             :         }
   43249         189 :         __pyx_t_9 = __Pyx_dict_iterator(__pyx_v_map, 0, __pyx_n_s_items, (&__pyx_t_13), (&__pyx_t_14)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1134, __pyx_L1_error)
   43250         189 :         __Pyx_GOTREF(__pyx_t_9);
   43251         189 :         __Pyx_XDECREF(__pyx_t_1);
   43252         189 :         __pyx_t_1 = __pyx_t_9;
   43253         189 :         __pyx_t_9 = 0;
   43254        5859 :         while (1) {
   43255        5859 :           __pyx_t_15 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_13, &__pyx_t_12, &__pyx_t_9, &__pyx_t_10, NULL, __pyx_t_14);
   43256        5859 :           if (unlikely(__pyx_t_15 == 0)) break;
   43257        5670 :           if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 1134, __pyx_L1_error)
   43258        5670 :           __Pyx_GOTREF(__pyx_t_9);
   43259        5670 :           __Pyx_GOTREF(__pyx_t_10);
   43260        5670 :           __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_9);
   43261        5670 :           __pyx_t_9 = 0;
   43262        5670 :           __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_10);
   43263        5670 :           __pyx_t_10 = 0;
   43264             : 
   43265             :           /* "_csparsetools.pyx":1135
   43266             :  *             if (dt1, dt2) not in map:
   43267             :  *                 for k, v in map.items():
   43268             :  *                     if (k[0].kind == dt1.kind and k[0].itemsize == dt1.itemsize and             # <<<<<<<<<<<<<<
   43269             :  *                         k[1].kind == dt2.kind and k[1].itemsize == dt2.itemsize):
   43270             :  *                         map[(dt1, dt2)] = v
   43271             :  */
   43272        5670 :           __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_k, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1135, __pyx_L1_error)
   43273        5670 :           __Pyx_GOTREF(__pyx_t_10);
   43274        5670 :           __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_kind); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1135, __pyx_L1_error)
   43275        5670 :           __Pyx_GOTREF(__pyx_t_9);
   43276        5670 :           __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   43277        5670 :           __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_dt1, __pyx_n_s_kind); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1135, __pyx_L1_error)
   43278        5670 :           __Pyx_GOTREF(__pyx_t_10);
   43279        5670 :           __pyx_t_16 = PyObject_RichCompare(__pyx_t_9, __pyx_t_10, Py_EQ); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1135, __pyx_L1_error)
   43280        5670 :           __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   43281        5670 :           __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   43282        5670 :           __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely((__pyx_t_17 < 0))) __PYX_ERR(0, 1135, __pyx_L1_error)
   43283        5670 :           __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   43284        5670 :           if (__pyx_t_17) {
   43285        5670 :           } else {
   43286           0 :             __pyx_t_8 = __pyx_t_17;
   43287           0 :             goto __pyx_L12_bool_binop_done;
   43288             :           }
   43289        5670 :           __pyx_t_16 = __Pyx_GetItemInt(__pyx_v_k, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1135, __pyx_L1_error)
   43290        5670 :           __Pyx_GOTREF(__pyx_t_16);
   43291        5670 :           __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1135, __pyx_L1_error)
   43292        5670 :           __Pyx_GOTREF(__pyx_t_10);
   43293        5670 :           __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   43294        5670 :           __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_dt1, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1135, __pyx_L1_error)
   43295        5670 :           __Pyx_GOTREF(__pyx_t_16);
   43296        5670 :           __pyx_t_9 = PyObject_RichCompare(__pyx_t_10, __pyx_t_16, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1135, __pyx_L1_error)
   43297        5670 :           __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   43298        5670 :           __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   43299        5670 :           __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_17 < 0))) __PYX_ERR(0, 1135, __pyx_L1_error)
   43300        5670 :           __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   43301        5670 :           if (__pyx_t_17) {
   43302         675 :           } else {
   43303        4995 :             __pyx_t_8 = __pyx_t_17;
   43304        4995 :             goto __pyx_L12_bool_binop_done;
   43305             :           }
   43306             : 
   43307             :           /* "_csparsetools.pyx":1136
   43308             :  *                 for k, v in map.items():
   43309             :  *                     if (k[0].kind == dt1.kind and k[0].itemsize == dt1.itemsize and
   43310             :  *                         k[1].kind == dt2.kind and k[1].itemsize == dt2.itemsize):             # <<<<<<<<<<<<<<
   43311             :  *                         map[(dt1, dt2)] = v
   43312             :  *                         break
   43313             :  */
   43314         675 :           __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_k, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1136, __pyx_L1_error)
   43315         675 :           __Pyx_GOTREF(__pyx_t_9);
   43316         675 :           __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_kind); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1136, __pyx_L1_error)
   43317         675 :           __Pyx_GOTREF(__pyx_t_16);
   43318         675 :           __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   43319         675 :           __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_dt2, __pyx_n_s_kind); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1136, __pyx_L1_error)
   43320         675 :           __Pyx_GOTREF(__pyx_t_9);
   43321         675 :           __pyx_t_10 = PyObject_RichCompare(__pyx_t_16, __pyx_t_9, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1136, __pyx_L1_error)
   43322         675 :           __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   43323         675 :           __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   43324         675 :           __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_17 < 0))) __PYX_ERR(0, 1136, __pyx_L1_error)
   43325         675 :           __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   43326         675 :           if (__pyx_t_17) {
   43327          45 :           } else {
   43328         630 :             __pyx_t_8 = __pyx_t_17;
   43329         630 :             goto __pyx_L12_bool_binop_done;
   43330             :           }
   43331          45 :           __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_k, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1136, __pyx_L1_error)
   43332          45 :           __Pyx_GOTREF(__pyx_t_10);
   43333          45 :           __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1136, __pyx_L1_error)
   43334          45 :           __Pyx_GOTREF(__pyx_t_9);
   43335          45 :           __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   43336          45 :           __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_dt2, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1136, __pyx_L1_error)
   43337          45 :           __Pyx_GOTREF(__pyx_t_10);
   43338          45 :           __pyx_t_16 = PyObject_RichCompare(__pyx_t_9, __pyx_t_10, Py_EQ); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1136, __pyx_L1_error)
   43339          45 :           __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
   43340          45 :           __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   43341          45 :           __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely((__pyx_t_17 < 0))) __PYX_ERR(0, 1136, __pyx_L1_error)
   43342          45 :           __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   43343             :           __pyx_t_8 = __pyx_t_17;
   43344        5670 :           __pyx_L12_bool_binop_done:;
   43345             : 
   43346             :           /* "_csparsetools.pyx":1135
   43347             :  *             if (dt1, dt2) not in map:
   43348             :  *                 for k, v in map.items():
   43349             :  *                     if (k[0].kind == dt1.kind and k[0].itemsize == dt1.itemsize and             # <<<<<<<<<<<<<<
   43350             :  *                         k[1].kind == dt2.kind and k[1].itemsize == dt2.itemsize):
   43351             :  *                         map[(dt1, dt2)] = v
   43352             :  */
   43353        5670 :           if (__pyx_t_8) {
   43354             : 
   43355             :             /* "_csparsetools.pyx":1137
   43356             :  *                     if (k[0].kind == dt1.kind and k[0].itemsize == dt1.itemsize and
   43357             :  *                         k[1].kind == dt2.kind and k[1].itemsize == dt2.itemsize):
   43358             :  *                         map[(dt1, dt2)] = v             # <<<<<<<<<<<<<<
   43359             :  *                         break
   43360             :  * 
   43361             :  */
   43362           0 :             __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1137, __pyx_L1_error)
   43363           0 :             __Pyx_GOTREF(__pyx_t_16);
   43364           0 :             __Pyx_INCREF(__pyx_v_dt1);
   43365           0 :             __Pyx_GIVEREF(__pyx_v_dt1);
   43366           0 :             if (__Pyx_PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_v_dt1)) __PYX_ERR(0, 1137, __pyx_L1_error);
   43367           0 :             __Pyx_INCREF(__pyx_v_dt2);
   43368           0 :             __Pyx_GIVEREF(__pyx_v_dt2);
   43369           0 :             if (__Pyx_PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_v_dt2)) __PYX_ERR(0, 1137, __pyx_L1_error);
   43370           0 :             if (unlikely((PyObject_SetItem(__pyx_v_map, __pyx_t_16, __pyx_v_v) < 0))) __PYX_ERR(0, 1137, __pyx_L1_error)
   43371           0 :             __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
   43372             : 
   43373             :             /* "_csparsetools.pyx":1138
   43374             :  *                         k[1].kind == dt2.kind and k[1].itemsize == dt2.itemsize):
   43375             :  *                         map[(dt1, dt2)] = v
   43376             :  *                         break             # <<<<<<<<<<<<<<
   43377             :  * 
   43378             :  * _fill_dtype_map(_LIL_FANCY_GET_DISPATCH, np.typecodes['Integer'])
   43379             :  */
   43380           0 :             goto __pyx_L10_break;
   43381             : 
   43382             :             /* "_csparsetools.pyx":1135
   43383             :  *             if (dt1, dt2) not in map:
   43384             :  *                 for k, v in map.items():
   43385             :  *                     if (k[0].kind == dt1.kind and k[0].itemsize == dt1.itemsize and             # <<<<<<<<<<<<<<
   43386             :  *                         k[1].kind == dt2.kind and k[1].itemsize == dt2.itemsize):
   43387             :  *                         map[(dt1, dt2)] = v
   43388             :  */
   43389             :           }
   43390             :         }
   43391         189 :         __pyx_L10_break:;
   43392         798 :         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   43393             : 
   43394             :         /* "_csparsetools.pyx":1133
   43395             :  *             dt1 = np.dtype(c1)
   43396             :  *             dt2 = np.dtype(c2)
   43397             :  *             if (dt1, dt2) not in map:             # <<<<<<<<<<<<<<
   43398             :  *                 for k, v in map.items():
   43399             :  *                     if (k[0].kind == dt1.kind and k[0].itemsize == dt1.itemsize and
   43400             :  */
   43401             :       }
   43402             : 
   43403             :       /* "_csparsetools.pyx":1128
   43404             :  *     """
   43405             :  *     for c1 in np.typecodes['Integer']:
   43406             :  *         for c2 in np.typecodes['All']:             # <<<<<<<<<<<<<<
   43407             :  *             if c2 in "SUVO":
   43408             :  *                 continue
   43409             :  */
   43410         315 :       __pyx_L5_continue:;
   43411             :     }
   43412          45 :     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   43413             : 
   43414             :     /* "_csparsetools.pyx":1127
   43415             :  *     Numpy < 1.6 bugs.
   43416             :  *     """
   43417             :  *     for c1 in np.typecodes['Integer']:             # <<<<<<<<<<<<<<
   43418             :  *         for c2 in np.typecodes['All']:
   43419             :  *             if c2 in "SUVO":
   43420             :  */
   43421             :   }
   43422           3 :   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   43423             : 
   43424             :   /* "_csparsetools.pyx":1122
   43425             :  * 
   43426             :  * 
   43427             :  * cdef _fill_dtype_map2(map):             # <<<<<<<<<<<<<<
   43428             :  *     """
   43429             :  *     Fill in Numpy dtype chars for problematic types, working around
   43430             :  */
   43431             : 
   43432             :   /* function exit code */
   43433           3 :   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   43434           3 :   goto __pyx_L0;
   43435           0 :   __pyx_L1_error:;
   43436           0 :   __Pyx_XDECREF(__pyx_t_1);
   43437           0 :   __Pyx_XDECREF(__pyx_t_2);
   43438           0 :   __Pyx_XDECREF(__pyx_t_5);
   43439           0 :   __Pyx_XDECREF(__pyx_t_9);
   43440           0 :   __Pyx_XDECREF(__pyx_t_10);
   43441           0 :   __Pyx_XDECREF(__pyx_t_16);
   43442           0 :   __Pyx_AddTraceback("_csparsetools._fill_dtype_map2", __pyx_clineno, __pyx_lineno, __pyx_filename);
   43443           0 :   __pyx_r = 0;
   43444           3 :   __pyx_L0:;
   43445           3 :   __Pyx_XDECREF(__pyx_v_c1);
   43446           3 :   __Pyx_XDECREF(__pyx_v_c2);
   43447           3 :   __Pyx_XDECREF(__pyx_v_dt1);
   43448           3 :   __Pyx_XDECREF(__pyx_v_dt2);
   43449           3 :   __Pyx_XDECREF(__pyx_v_k);
   43450           3 :   __Pyx_XDECREF(__pyx_v_v);
   43451           3 :   __Pyx_XGIVEREF(__pyx_r);
   43452           3 :   __Pyx_RefNannyFinishContext();
   43453           3 :   return __pyx_r;
   43454             : }
   43455             : static struct __pyx_vtabstruct_array __pyx_vtable_array;
   43456             : 
   43457           0 : static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k) {
   43458           0 :   struct __pyx_array_obj *p;
   43459           0 :   PyObject *o;
   43460             :   #if CYTHON_COMPILING_IN_LIMITED_API
   43461             :   allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
   43462             :   o = alloc_func(t, 0);
   43463             :   #else
   43464           0 :   if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
   43465           0 :     o = (*t->tp_alloc)(t, 0);
   43466             :   } else {
   43467           0 :     o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
   43468             :   }
   43469           0 :   if (unlikely(!o)) return 0;
   43470             :   #endif
   43471           0 :   p = ((struct __pyx_array_obj *)o);
   43472           0 :   p->__pyx_vtab = __pyx_vtabptr_array;
   43473           0 :   p->mode = ((PyObject*)Py_None); Py_INCREF(Py_None);
   43474           0 :   p->_format = ((PyObject*)Py_None); Py_INCREF(Py_None);
   43475           0 :   if (unlikely(__pyx_array___cinit__(o, a, k) < 0)) goto bad;
   43476             :   return o;
   43477           0 :   bad:
   43478           0 :   Py_DECREF(o); o = 0;
   43479             :   return NULL;
   43480             : }
   43481             : 
   43482           0 : static void __pyx_tp_dealloc_array(PyObject *o) {
   43483           0 :   struct __pyx_array_obj *p = (struct __pyx_array_obj *)o;
   43484             :   #if CYTHON_USE_TP_FINALIZE
   43485           0 :   if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
   43486           0 :     if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_array) {
   43487           0 :       if (PyObject_CallFinalizerFromDealloc(o)) return;
   43488             :     }
   43489             :   }
   43490             :   #endif
   43491             :   {
   43492           0 :     PyObject *etype, *eval, *etb;
   43493           0 :     PyErr_Fetch(&etype, &eval, &etb);
   43494           0 :     __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
   43495           0 :     __pyx_array___dealloc__(o);
   43496           0 :     __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
   43497           0 :     PyErr_Restore(etype, eval, etb);
   43498             :   }
   43499           0 :   Py_CLEAR(p->mode);
   43500           0 :   Py_CLEAR(p->_format);
   43501             :   #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
   43502           0 :   (*Py_TYPE(o)->tp_free)(o);
   43503             :   #else
   43504             :   {
   43505             :     freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
   43506             :     if (tp_free) tp_free(o);
   43507             :   }
   43508             :   #endif
   43509             : }
   43510           0 : static PyObject *__pyx_sq_item_array(PyObject *o, Py_ssize_t i) {
   43511           0 :   PyObject *r;
   43512           0 :   PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
   43513           0 :   r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
   43514           0 :   Py_DECREF(x);
   43515             :   return r;
   43516             : }
   43517             : 
   43518           0 : static int __pyx_mp_ass_subscript_array(PyObject *o, PyObject *i, PyObject *v) {
   43519           0 :   if (v) {
   43520           0 :     return __pyx_array___setitem__(o, i, v);
   43521             :   }
   43522             :   else {
   43523           0 :     __Pyx_TypeName o_type_name;
   43524           0 :     o_type_name = __Pyx_PyType_GetName(Py_TYPE(o));
   43525           0 :     PyErr_Format(PyExc_NotImplementedError,
   43526             :       "Subscript deletion not supported by " __Pyx_FMT_TYPENAME, o_type_name);
   43527           0 :     __Pyx_DECREF_TypeName(o_type_name);
   43528           0 :     return -1;
   43529             :   }
   43530             : }
   43531             : 
   43532           0 : static PyObject *__pyx_tp_getattro_array(PyObject *o, PyObject *n) {
   43533           0 :   PyObject *v = __Pyx_PyObject_GenericGetAttr(o, n);
   43534           0 :   if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) {
   43535           0 :     PyErr_Clear();
   43536           0 :     v = __pyx_array___getattr__(o, n);
   43537             :   }
   43538           0 :   return v;
   43539             : }
   43540             : 
   43541           0 : static PyObject *__pyx_getprop___pyx_array_memview(PyObject *o, CYTHON_UNUSED void *x) {
   43542           0 :   return __pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(o);
   43543             : }
   43544             : 
   43545             : static PyMethodDef __pyx_methods_array[] = {
   43546             :   {"__getattr__", (PyCFunction)__pyx_array___getattr__, METH_O|METH_COEXIST, 0},
   43547             :   {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_array_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
   43548             :   {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_array_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
   43549             :   {0, 0, 0, 0}
   43550             : };
   43551             : 
   43552             : static struct PyGetSetDef __pyx_getsets_array[] = {
   43553             :   {(char *)"memview", __pyx_getprop___pyx_array_memview, 0, (char *)0, 0},
   43554             :   {0, 0, 0, 0, 0}
   43555             : };
   43556             : #if CYTHON_USE_TYPE_SPECS
   43557             : #if !CYTHON_COMPILING_IN_LIMITED_API
   43558             : 
   43559             : static PyBufferProcs __pyx_tp_as_buffer_array = {
   43560             :   #if PY_MAJOR_VERSION < 3
   43561             :   0, /*bf_getreadbuffer*/
   43562             :   #endif
   43563             :   #if PY_MAJOR_VERSION < 3
   43564             :   0, /*bf_getwritebuffer*/
   43565             :   #endif
   43566             :   #if PY_MAJOR_VERSION < 3
   43567             :   0, /*bf_getsegcount*/
   43568             :   #endif
   43569             :   #if PY_MAJOR_VERSION < 3
   43570             :   0, /*bf_getcharbuffer*/
   43571             :   #endif
   43572             :   __pyx_array_getbuffer, /*bf_getbuffer*/
   43573             :   0, /*bf_releasebuffer*/
   43574             : };
   43575             : #endif
   43576             : static PyType_Slot __pyx_type___pyx_array_slots[] = {
   43577             :   {Py_tp_dealloc, (void *)__pyx_tp_dealloc_array},
   43578             :   {Py_sq_length, (void *)__pyx_array___len__},
   43579             :   {Py_sq_item, (void *)__pyx_sq_item_array},
   43580             :   {Py_mp_length, (void *)__pyx_array___len__},
   43581             :   {Py_mp_subscript, (void *)__pyx_array___getitem__},
   43582             :   {Py_mp_ass_subscript, (void *)__pyx_mp_ass_subscript_array},
   43583             :   {Py_tp_getattro, (void *)__pyx_tp_getattro_array},
   43584             :   #if defined(Py_bf_getbuffer)
   43585             :   {Py_bf_getbuffer, (void *)__pyx_array_getbuffer},
   43586             :   #endif
   43587             :   {Py_tp_methods, (void *)__pyx_methods_array},
   43588             :   {Py_tp_getset, (void *)__pyx_getsets_array},
   43589             :   {Py_tp_new, (void *)__pyx_tp_new_array},
   43590             :   {0, 0},
   43591             : };
   43592             : static PyType_Spec __pyx_type___pyx_array_spec = {
   43593             :   "_csparsetools.array",
   43594             :   sizeof(struct __pyx_array_obj),
   43595             :   0,
   43596             :   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_SEQUENCE,
   43597             :   __pyx_type___pyx_array_slots,
   43598             : };
   43599             : #else
   43600             : 
   43601             : static PySequenceMethods __pyx_tp_as_sequence_array = {
   43602             :   __pyx_array___len__, /*sq_length*/
   43603             :   0, /*sq_concat*/
   43604             :   0, /*sq_repeat*/
   43605             :   __pyx_sq_item_array, /*sq_item*/
   43606             :   0, /*sq_slice*/
   43607             :   0, /*sq_ass_item*/
   43608             :   0, /*sq_ass_slice*/
   43609             :   0, /*sq_contains*/
   43610             :   0, /*sq_inplace_concat*/
   43611             :   0, /*sq_inplace_repeat*/
   43612             : };
   43613             : 
   43614             : static PyMappingMethods __pyx_tp_as_mapping_array = {
   43615             :   __pyx_array___len__, /*mp_length*/
   43616             :   __pyx_array___getitem__, /*mp_subscript*/
   43617             :   __pyx_mp_ass_subscript_array, /*mp_ass_subscript*/
   43618             : };
   43619             : 
   43620             : static PyBufferProcs __pyx_tp_as_buffer_array = {
   43621             :   #if PY_MAJOR_VERSION < 3
   43622             :   0, /*bf_getreadbuffer*/
   43623             :   #endif
   43624             :   #if PY_MAJOR_VERSION < 3
   43625             :   0, /*bf_getwritebuffer*/
   43626             :   #endif
   43627             :   #if PY_MAJOR_VERSION < 3
   43628             :   0, /*bf_getsegcount*/
   43629             :   #endif
   43630             :   #if PY_MAJOR_VERSION < 3
   43631             :   0, /*bf_getcharbuffer*/
   43632             :   #endif
   43633             :   __pyx_array_getbuffer, /*bf_getbuffer*/
   43634             :   0, /*bf_releasebuffer*/
   43635             : };
   43636             : 
   43637             : static PyTypeObject __pyx_type___pyx_array = {
   43638             :   PyVarObject_HEAD_INIT(0, 0)
   43639             :   "_csparsetools.""array", /*tp_name*/
   43640             :   sizeof(struct __pyx_array_obj), /*tp_basicsize*/
   43641             :   0, /*tp_itemsize*/
   43642             :   __pyx_tp_dealloc_array, /*tp_dealloc*/
   43643             :   #if PY_VERSION_HEX < 0x030800b4
   43644             :   0, /*tp_print*/
   43645             :   #endif
   43646             :   #if PY_VERSION_HEX >= 0x030800b4
   43647             :   0, /*tp_vectorcall_offset*/
   43648             :   #endif
   43649             :   0, /*tp_getattr*/
   43650             :   0, /*tp_setattr*/
   43651             :   #if PY_MAJOR_VERSION < 3
   43652             :   0, /*tp_compare*/
   43653             :   #endif
   43654             :   #if PY_MAJOR_VERSION >= 3
   43655             :   0, /*tp_as_async*/
   43656             :   #endif
   43657             :   0, /*tp_repr*/
   43658             :   0, /*tp_as_number*/
   43659             :   &__pyx_tp_as_sequence_array, /*tp_as_sequence*/
   43660             :   &__pyx_tp_as_mapping_array, /*tp_as_mapping*/
   43661             :   0, /*tp_hash*/
   43662             :   0, /*tp_call*/
   43663             :   0, /*tp_str*/
   43664             :   __pyx_tp_getattro_array, /*tp_getattro*/
   43665             :   0, /*tp_setattro*/
   43666             :   &__pyx_tp_as_buffer_array, /*tp_as_buffer*/
   43667             :   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_SEQUENCE, /*tp_flags*/
   43668             :   0, /*tp_doc*/
   43669             :   0, /*tp_traverse*/
   43670             :   0, /*tp_clear*/
   43671             :   0, /*tp_richcompare*/
   43672             :   0, /*tp_weaklistoffset*/
   43673             :   0, /*tp_iter*/
   43674             :   0, /*tp_iternext*/
   43675             :   __pyx_methods_array, /*tp_methods*/
   43676             :   0, /*tp_members*/
   43677             :   __pyx_getsets_array, /*tp_getset*/
   43678             :   0, /*tp_base*/
   43679             :   0, /*tp_dict*/
   43680             :   0, /*tp_descr_get*/
   43681             :   0, /*tp_descr_set*/
   43682             :   #if !CYTHON_USE_TYPE_SPECS
   43683             :   0, /*tp_dictoffset*/
   43684             :   #endif
   43685             :   0, /*tp_init*/
   43686             :   0, /*tp_alloc*/
   43687             :   __pyx_tp_new_array, /*tp_new*/
   43688             :   0, /*tp_free*/
   43689             :   0, /*tp_is_gc*/
   43690             :   0, /*tp_bases*/
   43691             :   0, /*tp_mro*/
   43692             :   0, /*tp_cache*/
   43693             :   0, /*tp_subclasses*/
   43694             :   0, /*tp_weaklist*/
   43695             :   0, /*tp_del*/
   43696             :   0, /*tp_version_tag*/
   43697             :   #if PY_VERSION_HEX >= 0x030400a1
   43698             :   #if CYTHON_USE_TP_FINALIZE
   43699             :   0, /*tp_finalize*/
   43700             :   #else
   43701             :   NULL, /*tp_finalize*/
   43702             :   #endif
   43703             :   #endif
   43704             :   #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
   43705             :   0, /*tp_vectorcall*/
   43706             :   #endif
   43707             :   #if __PYX_NEED_TP_PRINT_SLOT == 1
   43708             :   0, /*tp_print*/
   43709             :   #endif
   43710             :   #if PY_VERSION_HEX >= 0x030C0000
   43711             :   0, /*tp_watched*/
   43712             :   #endif
   43713             :   #if PY_VERSION_HEX >= 0x030d00A4
   43714             :   0, /*tp_versions_used*/
   43715             :   #endif
   43716             :   #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
   43717             :   0, /*tp_pypy_flags*/
   43718             :   #endif
   43719             : };
   43720             : #endif
   43721             : 
   43722          15 : static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
   43723          15 :   struct __pyx_MemviewEnum_obj *p;
   43724          15 :   PyObject *o;
   43725             :   #if CYTHON_COMPILING_IN_LIMITED_API
   43726             :   allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
   43727             :   o = alloc_func(t, 0);
   43728             :   #else
   43729          15 :   if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
   43730          15 :     o = (*t->tp_alloc)(t, 0);
   43731             :   } else {
   43732           0 :     o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
   43733             :   }
   43734          15 :   if (unlikely(!o)) return 0;
   43735             :   #endif
   43736          15 :   p = ((struct __pyx_MemviewEnum_obj *)o);
   43737          15 :   p->name = Py_None; Py_INCREF(Py_None);
   43738             :   return o;
   43739             : }
   43740             : 
   43741           0 : static void __pyx_tp_dealloc_Enum(PyObject *o) {
   43742           0 :   struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o;
   43743             :   #if CYTHON_USE_TP_FINALIZE
   43744           0 :   if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
   43745           0 :     if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_Enum) {
   43746           0 :       if (PyObject_CallFinalizerFromDealloc(o)) return;
   43747             :     }
   43748             :   }
   43749             :   #endif
   43750           0 :   PyObject_GC_UnTrack(o);
   43751           0 :   Py_CLEAR(p->name);
   43752             :   #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
   43753           0 :   (*Py_TYPE(o)->tp_free)(o);
   43754             :   #else
   43755             :   {
   43756             :     freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
   43757             :     if (tp_free) tp_free(o);
   43758             :   }
   43759             :   #endif
   43760             : }
   43761             : 
   43762         805 : static int __pyx_tp_traverse_Enum(PyObject *o, visitproc v, void *a) {
   43763         805 :   int e;
   43764         805 :   struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o;
   43765         805 :   if (p->name) {
   43766         805 :     e = (*v)(p->name, a); if (e) return e;
   43767             :   }
   43768             :   return 0;
   43769             : }
   43770             : 
   43771           0 : static int __pyx_tp_clear_Enum(PyObject *o) {
   43772           0 :   PyObject* tmp;
   43773           0 :   struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o;
   43774           0 :   tmp = ((PyObject*)p->name);
   43775           0 :   p->name = Py_None; Py_INCREF(Py_None);
   43776           0 :   Py_XDECREF(tmp);
   43777           0 :   return 0;
   43778             : }
   43779             : 
   43780           0 : static PyObject *__pyx_specialmethod___pyx_MemviewEnum___repr__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
   43781           0 :   return __pyx_MemviewEnum___repr__(self);
   43782             : }
   43783             : 
   43784             : static PyMethodDef __pyx_methods_Enum[] = {
   43785             :   {"__repr__", (PyCFunction)__pyx_specialmethod___pyx_MemviewEnum___repr__, METH_NOARGS|METH_COEXIST, 0},
   43786             :   {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_MemviewEnum_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
   43787             :   {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_MemviewEnum_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
   43788             :   {0, 0, 0, 0}
   43789             : };
   43790             : #if CYTHON_USE_TYPE_SPECS
   43791             : static PyType_Slot __pyx_type___pyx_MemviewEnum_slots[] = {
   43792             :   {Py_tp_dealloc, (void *)__pyx_tp_dealloc_Enum},
   43793             :   {Py_tp_repr, (void *)__pyx_MemviewEnum___repr__},
   43794             :   {Py_tp_traverse, (void *)__pyx_tp_traverse_Enum},
   43795             :   {Py_tp_clear, (void *)__pyx_tp_clear_Enum},
   43796             :   {Py_tp_methods, (void *)__pyx_methods_Enum},
   43797             :   {Py_tp_init, (void *)__pyx_MemviewEnum___init__},
   43798             :   {Py_tp_new, (void *)__pyx_tp_new_Enum},
   43799             :   {0, 0},
   43800             : };
   43801             : static PyType_Spec __pyx_type___pyx_MemviewEnum_spec = {
   43802             :   "_csparsetools.Enum",
   43803             :   sizeof(struct __pyx_MemviewEnum_obj),
   43804             :   0,
   43805             :   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
   43806             :   __pyx_type___pyx_MemviewEnum_slots,
   43807             : };
   43808             : #else
   43809             : 
   43810             : static PyTypeObject __pyx_type___pyx_MemviewEnum = {
   43811             :   PyVarObject_HEAD_INIT(0, 0)
   43812             :   "_csparsetools.""Enum", /*tp_name*/
   43813             :   sizeof(struct __pyx_MemviewEnum_obj), /*tp_basicsize*/
   43814             :   0, /*tp_itemsize*/
   43815             :   __pyx_tp_dealloc_Enum, /*tp_dealloc*/
   43816             :   #if PY_VERSION_HEX < 0x030800b4
   43817             :   0, /*tp_print*/
   43818             :   #endif
   43819             :   #if PY_VERSION_HEX >= 0x030800b4
   43820             :   0, /*tp_vectorcall_offset*/
   43821             :   #endif
   43822             :   0, /*tp_getattr*/
   43823             :   0, /*tp_setattr*/
   43824             :   #if PY_MAJOR_VERSION < 3
   43825             :   0, /*tp_compare*/
   43826             :   #endif
   43827             :   #if PY_MAJOR_VERSION >= 3
   43828             :   0, /*tp_as_async*/
   43829             :   #endif
   43830             :   __pyx_MemviewEnum___repr__, /*tp_repr*/
   43831             :   0, /*tp_as_number*/
   43832             :   0, /*tp_as_sequence*/
   43833             :   0, /*tp_as_mapping*/
   43834             :   0, /*tp_hash*/
   43835             :   0, /*tp_call*/
   43836             :   0, /*tp_str*/
   43837             :   0, /*tp_getattro*/
   43838             :   0, /*tp_setattro*/
   43839             :   0, /*tp_as_buffer*/
   43840             :   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
   43841             :   0, /*tp_doc*/
   43842             :   __pyx_tp_traverse_Enum, /*tp_traverse*/
   43843             :   __pyx_tp_clear_Enum, /*tp_clear*/
   43844             :   0, /*tp_richcompare*/
   43845             :   0, /*tp_weaklistoffset*/
   43846             :   0, /*tp_iter*/
   43847             :   0, /*tp_iternext*/
   43848             :   __pyx_methods_Enum, /*tp_methods*/
   43849             :   0, /*tp_members*/
   43850             :   0, /*tp_getset*/
   43851             :   0, /*tp_base*/
   43852             :   0, /*tp_dict*/
   43853             :   0, /*tp_descr_get*/
   43854             :   0, /*tp_descr_set*/
   43855             :   #if !CYTHON_USE_TYPE_SPECS
   43856             :   0, /*tp_dictoffset*/
   43857             :   #endif
   43858             :   __pyx_MemviewEnum___init__, /*tp_init*/
   43859             :   0, /*tp_alloc*/
   43860             :   __pyx_tp_new_Enum, /*tp_new*/
   43861             :   0, /*tp_free*/
   43862             :   0, /*tp_is_gc*/
   43863             :   0, /*tp_bases*/
   43864             :   0, /*tp_mro*/
   43865             :   0, /*tp_cache*/
   43866             :   0, /*tp_subclasses*/
   43867             :   0, /*tp_weaklist*/
   43868             :   0, /*tp_del*/
   43869             :   0, /*tp_version_tag*/
   43870             :   #if PY_VERSION_HEX >= 0x030400a1
   43871             :   #if CYTHON_USE_TP_FINALIZE
   43872             :   0, /*tp_finalize*/
   43873             :   #else
   43874             :   NULL, /*tp_finalize*/
   43875             :   #endif
   43876             :   #endif
   43877             :   #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
   43878             :   0, /*tp_vectorcall*/
   43879             :   #endif
   43880             :   #if __PYX_NEED_TP_PRINT_SLOT == 1
   43881             :   0, /*tp_print*/
   43882             :   #endif
   43883             :   #if PY_VERSION_HEX >= 0x030C0000
   43884             :   0, /*tp_watched*/
   43885             :   #endif
   43886             :   #if PY_VERSION_HEX >= 0x030d00A4
   43887             :   0, /*tp_versions_used*/
   43888             :   #endif
   43889             :   #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
   43890             :   0, /*tp_pypy_flags*/
   43891             :   #endif
   43892             : };
   43893             : #endif
   43894             : static struct __pyx_vtabstruct_memoryview __pyx_vtable_memoryview;
   43895             : 
   43896      536853 : static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k) {
   43897      536853 :   struct __pyx_memoryview_obj *p;
   43898      536853 :   PyObject *o;
   43899             :   #if CYTHON_COMPILING_IN_LIMITED_API
   43900             :   allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
   43901             :   o = alloc_func(t, 0);
   43902             :   #else
   43903      536853 :   if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
   43904      536853 :     o = (*t->tp_alloc)(t, 0);
   43905             :   } else {
   43906           0 :     o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
   43907             :   }
   43908      536853 :   if (unlikely(!o)) return 0;
   43909             :   #endif
   43910      536853 :   p = ((struct __pyx_memoryview_obj *)o);
   43911      536853 :   p->__pyx_vtab = __pyx_vtabptr_memoryview;
   43912      536853 :   p->obj = Py_None; Py_INCREF(Py_None);
   43913      536853 :   p->_size = Py_None; Py_INCREF(Py_None);
   43914      536853 :   p->_array_interface = Py_None; Py_INCREF(Py_None);
   43915      536853 :   p->view.obj = NULL;
   43916      536853 :   if (unlikely(__pyx_memoryview___cinit__(o, a, k) < 0)) goto bad;
   43917             :   return o;
   43918           0 :   bad:
   43919           0 :   Py_DECREF(o); o = 0;
   43920             :   return NULL;
   43921             : }
   43922             : 
   43923      536853 : static void __pyx_tp_dealloc_memoryview(PyObject *o) {
   43924      536853 :   struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o;
   43925             :   #if CYTHON_USE_TP_FINALIZE
   43926      536853 :   if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
   43927           0 :     if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_memoryview) {
   43928           0 :       if (PyObject_CallFinalizerFromDealloc(o)) return;
   43929             :     }
   43930             :   }
   43931             :   #endif
   43932      536853 :   PyObject_GC_UnTrack(o);
   43933             :   {
   43934      536853 :     PyObject *etype, *eval, *etb;
   43935      536853 :     PyErr_Fetch(&etype, &eval, &etb);
   43936      536853 :     __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
   43937      536853 :     __pyx_memoryview___dealloc__(o);
   43938      536853 :     __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
   43939      536853 :     PyErr_Restore(etype, eval, etb);
   43940             :   }
   43941      536853 :   Py_CLEAR(p->obj);
   43942      536853 :   Py_CLEAR(p->_size);
   43943      536853 :   Py_CLEAR(p->_array_interface);
   43944             :   #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
   43945      536853 :   (*Py_TYPE(o)->tp_free)(o);
   43946             :   #else
   43947             :   {
   43948             :     freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
   43949             :     if (tp_free) tp_free(o);
   43950             :   }
   43951             :   #endif
   43952             : }
   43953             : 
   43954           0 : static int __pyx_tp_traverse_memoryview(PyObject *o, visitproc v, void *a) {
   43955           0 :   int e;
   43956           0 :   struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o;
   43957           0 :   if (p->obj) {
   43958           0 :     e = (*v)(p->obj, a); if (e) return e;
   43959             :   }
   43960           0 :   if (p->_size) {
   43961           0 :     e = (*v)(p->_size, a); if (e) return e;
   43962             :   }
   43963           0 :   if (p->_array_interface) {
   43964           0 :     e = (*v)(p->_array_interface, a); if (e) return e;
   43965             :   }
   43966           0 :   if (p->view.obj) {
   43967           0 :     e = (*v)(p->view.obj, a); if (e) return e;
   43968             :   }
   43969             :   return 0;
   43970             : }
   43971             : 
   43972           0 : static int __pyx_tp_clear_memoryview(PyObject *o) {
   43973           0 :   PyObject* tmp;
   43974           0 :   struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o;
   43975           0 :   tmp = ((PyObject*)p->obj);
   43976           0 :   p->obj = Py_None; Py_INCREF(Py_None);
   43977           0 :   Py_XDECREF(tmp);
   43978           0 :   tmp = ((PyObject*)p->_size);
   43979           0 :   p->_size = Py_None; Py_INCREF(Py_None);
   43980           0 :   Py_XDECREF(tmp);
   43981           0 :   tmp = ((PyObject*)p->_array_interface);
   43982           0 :   p->_array_interface = Py_None; Py_INCREF(Py_None);
   43983           0 :   Py_XDECREF(tmp);
   43984           0 :   Py_CLEAR(p->view.obj);
   43985           0 :   return 0;
   43986             : }
   43987           0 : static PyObject *__pyx_sq_item_memoryview(PyObject *o, Py_ssize_t i) {
   43988           0 :   PyObject *r;
   43989           0 :   PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
   43990           0 :   r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
   43991           0 :   Py_DECREF(x);
   43992             :   return r;
   43993             : }
   43994             : 
   43995           0 : static int __pyx_mp_ass_subscript_memoryview(PyObject *o, PyObject *i, PyObject *v) {
   43996           0 :   if (v) {
   43997           0 :     return __pyx_memoryview___setitem__(o, i, v);
   43998             :   }
   43999             :   else {
   44000           0 :     __Pyx_TypeName o_type_name;
   44001           0 :     o_type_name = __Pyx_PyType_GetName(Py_TYPE(o));
   44002           0 :     PyErr_Format(PyExc_NotImplementedError,
   44003             :       "Subscript deletion not supported by " __Pyx_FMT_TYPENAME, o_type_name);
   44004           0 :     __Pyx_DECREF_TypeName(o_type_name);
   44005           0 :     return -1;
   44006             :   }
   44007             : }
   44008             : 
   44009           0 : static PyObject *__pyx_getprop___pyx_memoryview_T(PyObject *o, CYTHON_UNUSED void *x) {
   44010           0 :   return __pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(o);
   44011             : }
   44012             : 
   44013           0 : static PyObject *__pyx_getprop___pyx_memoryview_base(PyObject *o, CYTHON_UNUSED void *x) {
   44014           0 :   return __pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(o);
   44015             : }
   44016             : 
   44017           0 : static PyObject *__pyx_getprop___pyx_memoryview_shape(PyObject *o, CYTHON_UNUSED void *x) {
   44018           0 :   return __pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(o);
   44019             : }
   44020             : 
   44021           0 : static PyObject *__pyx_getprop___pyx_memoryview_strides(PyObject *o, CYTHON_UNUSED void *x) {
   44022           0 :   return __pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(o);
   44023             : }
   44024             : 
   44025           0 : static PyObject *__pyx_getprop___pyx_memoryview_suboffsets(PyObject *o, CYTHON_UNUSED void *x) {
   44026           0 :   return __pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(o);
   44027             : }
   44028             : 
   44029           0 : static PyObject *__pyx_getprop___pyx_memoryview_ndim(PyObject *o, CYTHON_UNUSED void *x) {
   44030           0 :   return __pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(o);
   44031             : }
   44032             : 
   44033           0 : static PyObject *__pyx_getprop___pyx_memoryview_itemsize(PyObject *o, CYTHON_UNUSED void *x) {
   44034           0 :   return __pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(o);
   44035             : }
   44036             : 
   44037           0 : static PyObject *__pyx_getprop___pyx_memoryview_nbytes(PyObject *o, CYTHON_UNUSED void *x) {
   44038           0 :   return __pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(o);
   44039             : }
   44040             : 
   44041           0 : static PyObject *__pyx_getprop___pyx_memoryview_size(PyObject *o, CYTHON_UNUSED void *x) {
   44042           0 :   return __pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(o);
   44043             : }
   44044             : 
   44045           0 : static PyObject *__pyx_specialmethod___pyx_memoryview___repr__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
   44046           0 :   return __pyx_memoryview___repr__(self);
   44047             : }
   44048             : 
   44049             : static PyMethodDef __pyx_methods_memoryview[] = {
   44050             :   {"__repr__", (PyCFunction)__pyx_specialmethod___pyx_memoryview___repr__, METH_NOARGS|METH_COEXIST, 0},
   44051             :   {"is_c_contig", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_memoryview_is_c_contig, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
   44052             :   {"is_f_contig", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_memoryview_is_f_contig, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
   44053             :   {"copy", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_memoryview_copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
   44054             :   {"copy_fortran", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_memoryview_copy_fortran, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
   44055             :   {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_memoryview_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
   44056             :   {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_memoryview_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
   44057             :   {0, 0, 0, 0}
   44058             : };
   44059             : 
   44060             : static struct PyGetSetDef __pyx_getsets_memoryview[] = {
   44061             :   {(char *)"T", __pyx_getprop___pyx_memoryview_T, 0, (char *)0, 0},
   44062             :   {(char *)"base", __pyx_getprop___pyx_memoryview_base, 0, (char *)0, 0},
   44063             :   {(char *)"shape", __pyx_getprop___pyx_memoryview_shape, 0, (char *)0, 0},
   44064             :   {(char *)"strides", __pyx_getprop___pyx_memoryview_strides, 0, (char *)0, 0},
   44065             :   {(char *)"suboffsets", __pyx_getprop___pyx_memoryview_suboffsets, 0, (char *)0, 0},
   44066             :   {(char *)"ndim", __pyx_getprop___pyx_memoryview_ndim, 0, (char *)0, 0},
   44067             :   {(char *)"itemsize", __pyx_getprop___pyx_memoryview_itemsize, 0, (char *)0, 0},
   44068             :   {(char *)"nbytes", __pyx_getprop___pyx_memoryview_nbytes, 0, (char *)0, 0},
   44069             :   {(char *)"size", __pyx_getprop___pyx_memoryview_size, 0, (char *)0, 0},
   44070             :   {0, 0, 0, 0, 0}
   44071             : };
   44072             : #if CYTHON_USE_TYPE_SPECS
   44073             : #if !CYTHON_COMPILING_IN_LIMITED_API
   44074             : 
   44075             : static PyBufferProcs __pyx_tp_as_buffer_memoryview = {
   44076             :   #if PY_MAJOR_VERSION < 3
   44077             :   0, /*bf_getreadbuffer*/
   44078             :   #endif
   44079             :   #if PY_MAJOR_VERSION < 3
   44080             :   0, /*bf_getwritebuffer*/
   44081             :   #endif
   44082             :   #if PY_MAJOR_VERSION < 3
   44083             :   0, /*bf_getsegcount*/
   44084             :   #endif
   44085             :   #if PY_MAJOR_VERSION < 3
   44086             :   0, /*bf_getcharbuffer*/
   44087             :   #endif
   44088             :   __pyx_memoryview_getbuffer, /*bf_getbuffer*/
   44089             :   0, /*bf_releasebuffer*/
   44090             : };
   44091             : #endif
   44092             : static PyType_Slot __pyx_type___pyx_memoryview_slots[] = {
   44093             :   {Py_tp_dealloc, (void *)__pyx_tp_dealloc_memoryview},
   44094             :   {Py_tp_repr, (void *)__pyx_memoryview___repr__},
   44095             :   {Py_sq_length, (void *)__pyx_memoryview___len__},
   44096             :   {Py_sq_item, (void *)__pyx_sq_item_memoryview},
   44097             :   {Py_mp_length, (void *)__pyx_memoryview___len__},
   44098             :   {Py_mp_subscript, (void *)__pyx_memoryview___getitem__},
   44099             :   {Py_mp_ass_subscript, (void *)__pyx_mp_ass_subscript_memoryview},
   44100             :   {Py_tp_str, (void *)__pyx_memoryview___str__},
   44101             :   #if defined(Py_bf_getbuffer)
   44102             :   {Py_bf_getbuffer, (void *)__pyx_memoryview_getbuffer},
   44103             :   #endif
   44104             :   {Py_tp_traverse, (void *)__pyx_tp_traverse_memoryview},
   44105             :   {Py_tp_clear, (void *)__pyx_tp_clear_memoryview},
   44106             :   {Py_tp_methods, (void *)__pyx_methods_memoryview},
   44107             :   {Py_tp_getset, (void *)__pyx_getsets_memoryview},
   44108             :   {Py_tp_new, (void *)__pyx_tp_new_memoryview},
   44109             :   {0, 0},
   44110             : };
   44111             : static PyType_Spec __pyx_type___pyx_memoryview_spec = {
   44112             :   "_csparsetools.memoryview",
   44113             :   sizeof(struct __pyx_memoryview_obj),
   44114             :   0,
   44115             :   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
   44116             :   __pyx_type___pyx_memoryview_slots,
   44117             : };
   44118             : #else
   44119             : 
   44120             : static PySequenceMethods __pyx_tp_as_sequence_memoryview = {
   44121             :   __pyx_memoryview___len__, /*sq_length*/
   44122             :   0, /*sq_concat*/
   44123             :   0, /*sq_repeat*/
   44124             :   __pyx_sq_item_memoryview, /*sq_item*/
   44125             :   0, /*sq_slice*/
   44126             :   0, /*sq_ass_item*/
   44127             :   0, /*sq_ass_slice*/
   44128             :   0, /*sq_contains*/
   44129             :   0, /*sq_inplace_concat*/
   44130             :   0, /*sq_inplace_repeat*/
   44131             : };
   44132             : 
   44133             : static PyMappingMethods __pyx_tp_as_mapping_memoryview = {
   44134             :   __pyx_memoryview___len__, /*mp_length*/
   44135             :   __pyx_memoryview___getitem__, /*mp_subscript*/
   44136             :   __pyx_mp_ass_subscript_memoryview, /*mp_ass_subscript*/
   44137             : };
   44138             : 
   44139             : static PyBufferProcs __pyx_tp_as_buffer_memoryview = {
   44140             :   #if PY_MAJOR_VERSION < 3
   44141             :   0, /*bf_getreadbuffer*/
   44142             :   #endif
   44143             :   #if PY_MAJOR_VERSION < 3
   44144             :   0, /*bf_getwritebuffer*/
   44145             :   #endif
   44146             :   #if PY_MAJOR_VERSION < 3
   44147             :   0, /*bf_getsegcount*/
   44148             :   #endif
   44149             :   #if PY_MAJOR_VERSION < 3
   44150             :   0, /*bf_getcharbuffer*/
   44151             :   #endif
   44152             :   __pyx_memoryview_getbuffer, /*bf_getbuffer*/
   44153             :   0, /*bf_releasebuffer*/
   44154             : };
   44155             : 
   44156             : static PyTypeObject __pyx_type___pyx_memoryview = {
   44157             :   PyVarObject_HEAD_INIT(0, 0)
   44158             :   "_csparsetools.""memoryview", /*tp_name*/
   44159             :   sizeof(struct __pyx_memoryview_obj), /*tp_basicsize*/
   44160             :   0, /*tp_itemsize*/
   44161             :   __pyx_tp_dealloc_memoryview, /*tp_dealloc*/
   44162             :   #if PY_VERSION_HEX < 0x030800b4
   44163             :   0, /*tp_print*/
   44164             :   #endif
   44165             :   #if PY_VERSION_HEX >= 0x030800b4
   44166             :   0, /*tp_vectorcall_offset*/
   44167             :   #endif
   44168             :   0, /*tp_getattr*/
   44169             :   0, /*tp_setattr*/
   44170             :   #if PY_MAJOR_VERSION < 3
   44171             :   0, /*tp_compare*/
   44172             :   #endif
   44173             :   #if PY_MAJOR_VERSION >= 3
   44174             :   0, /*tp_as_async*/
   44175             :   #endif
   44176             :   __pyx_memoryview___repr__, /*tp_repr*/
   44177             :   0, /*tp_as_number*/
   44178             :   &__pyx_tp_as_sequence_memoryview, /*tp_as_sequence*/
   44179             :   &__pyx_tp_as_mapping_memoryview, /*tp_as_mapping*/
   44180             :   0, /*tp_hash*/
   44181             :   0, /*tp_call*/
   44182             :   __pyx_memoryview___str__, /*tp_str*/
   44183             :   0, /*tp_getattro*/
   44184             :   0, /*tp_setattro*/
   44185             :   &__pyx_tp_as_buffer_memoryview, /*tp_as_buffer*/
   44186             :   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
   44187             :   0, /*tp_doc*/
   44188             :   __pyx_tp_traverse_memoryview, /*tp_traverse*/
   44189             :   __pyx_tp_clear_memoryview, /*tp_clear*/
   44190             :   0, /*tp_richcompare*/
   44191             :   0, /*tp_weaklistoffset*/
   44192             :   0, /*tp_iter*/
   44193             :   0, /*tp_iternext*/
   44194             :   __pyx_methods_memoryview, /*tp_methods*/
   44195             :   0, /*tp_members*/
   44196             :   __pyx_getsets_memoryview, /*tp_getset*/
   44197             :   0, /*tp_base*/
   44198             :   0, /*tp_dict*/
   44199             :   0, /*tp_descr_get*/
   44200             :   0, /*tp_descr_set*/
   44201             :   #if !CYTHON_USE_TYPE_SPECS
   44202             :   0, /*tp_dictoffset*/
   44203             :   #endif
   44204             :   0, /*tp_init*/
   44205             :   0, /*tp_alloc*/
   44206             :   __pyx_tp_new_memoryview, /*tp_new*/
   44207             :   0, /*tp_free*/
   44208             :   0, /*tp_is_gc*/
   44209             :   0, /*tp_bases*/
   44210             :   0, /*tp_mro*/
   44211             :   0, /*tp_cache*/
   44212             :   0, /*tp_subclasses*/
   44213             :   0, /*tp_weaklist*/
   44214             :   0, /*tp_del*/
   44215             :   0, /*tp_version_tag*/
   44216             :   #if PY_VERSION_HEX >= 0x030400a1
   44217             :   #if CYTHON_USE_TP_FINALIZE
   44218             :   0, /*tp_finalize*/
   44219             :   #else
   44220             :   NULL, /*tp_finalize*/
   44221             :   #endif
   44222             :   #endif
   44223             :   #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
   44224             :   0, /*tp_vectorcall*/
   44225             :   #endif
   44226             :   #if __PYX_NEED_TP_PRINT_SLOT == 1
   44227             :   0, /*tp_print*/
   44228             :   #endif
   44229             :   #if PY_VERSION_HEX >= 0x030C0000
   44230             :   0, /*tp_watched*/
   44231             :   #endif
   44232             :   #if PY_VERSION_HEX >= 0x030d00A4
   44233             :   0, /*tp_versions_used*/
   44234             :   #endif
   44235             :   #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
   44236             :   0, /*tp_pypy_flags*/
   44237             :   #endif
   44238             : };
   44239             : #endif
   44240             : static struct __pyx_vtabstruct__memoryviewslice __pyx_vtable__memoryviewslice;
   44241             : 
   44242      136725 : static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k) {
   44243      136725 :   struct __pyx_memoryviewslice_obj *p;
   44244      136725 :   PyObject *o = __pyx_tp_new_memoryview(t, a, k);
   44245      136725 :   if (unlikely(!o)) return 0;
   44246      136725 :   p = ((struct __pyx_memoryviewslice_obj *)o);
   44247      136725 :   p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_memoryview*)__pyx_vtabptr__memoryviewslice;
   44248      136725 :   p->from_object = Py_None; Py_INCREF(Py_None);
   44249      136725 :   p->from_slice.memview = NULL;
   44250      136725 :   return o;
   44251             : }
   44252             : 
   44253      136725 : static void __pyx_tp_dealloc__memoryviewslice(PyObject *o) {
   44254      136725 :   struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o;
   44255             :   #if CYTHON_USE_TP_FINALIZE
   44256      136725 :   if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
   44257           0 :     if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc__memoryviewslice) {
   44258           0 :       if (PyObject_CallFinalizerFromDealloc(o)) return;
   44259             :     }
   44260             :   }
   44261             :   #endif
   44262      136725 :   PyObject_GC_UnTrack(o);
   44263             :   {
   44264      136725 :     PyObject *etype, *eval, *etb;
   44265      136725 :     PyErr_Fetch(&etype, &eval, &etb);
   44266      136725 :     __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
   44267      136725 :     __pyx_memoryviewslice___dealloc__(o);
   44268      136725 :     __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
   44269      136725 :     PyErr_Restore(etype, eval, etb);
   44270             :   }
   44271      136725 :   Py_CLEAR(p->from_object);
   44272      136725 :   PyObject_GC_Track(o);
   44273      136725 :   __pyx_tp_dealloc_memoryview(o);
   44274             : }
   44275             : 
   44276           0 : static int __pyx_tp_traverse__memoryviewslice(PyObject *o, visitproc v, void *a) {
   44277           0 :   int e;
   44278           0 :   struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o;
   44279           0 :   e = __pyx_tp_traverse_memoryview(o, v, a); if (e) return e;
   44280           0 :   if (p->from_object) {
   44281           0 :     e = (*v)(p->from_object, a); if (e) return e;
   44282             :   }
   44283             :   return 0;
   44284             : }
   44285             : 
   44286           0 : static int __pyx_tp_clear__memoryviewslice(PyObject *o) {
   44287           0 :   PyObject* tmp;
   44288           0 :   struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o;
   44289           0 :   __pyx_tp_clear_memoryview(o);
   44290           0 :   tmp = ((PyObject*)p->from_object);
   44291           0 :   p->from_object = Py_None; Py_INCREF(Py_None);
   44292           0 :   Py_XDECREF(tmp);
   44293           0 :   __PYX_XCLEAR_MEMVIEW(&p->from_slice, 1);
   44294           0 :   return 0;
   44295             : }
   44296             : 
   44297             : static PyMethodDef __pyx_methods__memoryviewslice[] = {
   44298             :   {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_memoryviewslice_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
   44299             :   {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_memoryviewslice_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
   44300             :   {0, 0, 0, 0}
   44301             : };
   44302             : #if CYTHON_USE_TYPE_SPECS
   44303             : static PyType_Slot __pyx_type___pyx_memoryviewslice_slots[] = {
   44304             :   {Py_tp_dealloc, (void *)__pyx_tp_dealloc__memoryviewslice},
   44305             :   {Py_tp_doc, (void *)PyDoc_STR("Internal class for passing memoryview slices to Python")},
   44306             :   {Py_tp_traverse, (void *)__pyx_tp_traverse__memoryviewslice},
   44307             :   {Py_tp_clear, (void *)__pyx_tp_clear__memoryviewslice},
   44308             :   {Py_tp_methods, (void *)__pyx_methods__memoryviewslice},
   44309             :   {Py_tp_new, (void *)__pyx_tp_new__memoryviewslice},
   44310             :   {0, 0},
   44311             : };
   44312             : static PyType_Spec __pyx_type___pyx_memoryviewslice_spec = {
   44313             :   "_csparsetools._memoryviewslice",
   44314             :   sizeof(struct __pyx_memoryviewslice_obj),
   44315             :   0,
   44316             :   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_SEQUENCE,
   44317             :   __pyx_type___pyx_memoryviewslice_slots,
   44318             : };
   44319             : #else
   44320             : 
   44321             : static PyTypeObject __pyx_type___pyx_memoryviewslice = {
   44322             :   PyVarObject_HEAD_INIT(0, 0)
   44323             :   "_csparsetools.""_memoryviewslice", /*tp_name*/
   44324             :   sizeof(struct __pyx_memoryviewslice_obj), /*tp_basicsize*/
   44325             :   0, /*tp_itemsize*/
   44326             :   __pyx_tp_dealloc__memoryviewslice, /*tp_dealloc*/
   44327             :   #if PY_VERSION_HEX < 0x030800b4
   44328             :   0, /*tp_print*/
   44329             :   #endif
   44330             :   #if PY_VERSION_HEX >= 0x030800b4
   44331             :   0, /*tp_vectorcall_offset*/
   44332             :   #endif
   44333             :   0, /*tp_getattr*/
   44334             :   0, /*tp_setattr*/
   44335             :   #if PY_MAJOR_VERSION < 3
   44336             :   0, /*tp_compare*/
   44337             :   #endif
   44338             :   #if PY_MAJOR_VERSION >= 3
   44339             :   0, /*tp_as_async*/
   44340             :   #endif
   44341             :   #if CYTHON_COMPILING_IN_PYPY || 0
   44342             :   __pyx_memoryview___repr__, /*tp_repr*/
   44343             :   #else
   44344             :   0, /*tp_repr*/
   44345             :   #endif
   44346             :   0, /*tp_as_number*/
   44347             :   0, /*tp_as_sequence*/
   44348             :   0, /*tp_as_mapping*/
   44349             :   0, /*tp_hash*/
   44350             :   0, /*tp_call*/
   44351             :   #if CYTHON_COMPILING_IN_PYPY || 0
   44352             :   __pyx_memoryview___str__, /*tp_str*/
   44353             :   #else
   44354             :   0, /*tp_str*/
   44355             :   #endif
   44356             :   0, /*tp_getattro*/
   44357             :   0, /*tp_setattro*/
   44358             :   0, /*tp_as_buffer*/
   44359             :   Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_SEQUENCE, /*tp_flags*/
   44360             :   PyDoc_STR("Internal class for passing memoryview slices to Python"), /*tp_doc*/
   44361             :   __pyx_tp_traverse__memoryviewslice, /*tp_traverse*/
   44362             :   __pyx_tp_clear__memoryviewslice, /*tp_clear*/
   44363             :   0, /*tp_richcompare*/
   44364             :   0, /*tp_weaklistoffset*/
   44365             :   0, /*tp_iter*/
   44366             :   0, /*tp_iternext*/
   44367             :   __pyx_methods__memoryviewslice, /*tp_methods*/
   44368             :   0, /*tp_members*/
   44369             :   0, /*tp_getset*/
   44370             :   0, /*tp_base*/
   44371             :   0, /*tp_dict*/
   44372             :   0, /*tp_descr_get*/
   44373             :   0, /*tp_descr_set*/
   44374             :   #if !CYTHON_USE_TYPE_SPECS
   44375             :   0, /*tp_dictoffset*/
   44376             :   #endif
   44377             :   0, /*tp_init*/
   44378             :   0, /*tp_alloc*/
   44379             :   __pyx_tp_new__memoryviewslice, /*tp_new*/
   44380             :   0, /*tp_free*/
   44381             :   0, /*tp_is_gc*/
   44382             :   0, /*tp_bases*/
   44383             :   0, /*tp_mro*/
   44384             :   0, /*tp_cache*/
   44385             :   0, /*tp_subclasses*/
   44386             :   0, /*tp_weaklist*/
   44387             :   0, /*tp_del*/
   44388             :   0, /*tp_version_tag*/
   44389             :   #if PY_VERSION_HEX >= 0x030400a1
   44390             :   #if CYTHON_USE_TP_FINALIZE
   44391             :   0, /*tp_finalize*/
   44392             :   #else
   44393             :   NULL, /*tp_finalize*/
   44394             :   #endif
   44395             :   #endif
   44396             :   #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
   44397             :   0, /*tp_vectorcall*/
   44398             :   #endif
   44399             :   #if __PYX_NEED_TP_PRINT_SLOT == 1
   44400             :   0, /*tp_print*/
   44401             :   #endif
   44402             :   #if PY_VERSION_HEX >= 0x030C0000
   44403             :   0, /*tp_watched*/
   44404             :   #endif
   44405             :   #if PY_VERSION_HEX >= 0x030d00A4
   44406             :   0, /*tp_versions_used*/
   44407             :   #endif
   44408             :   #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
   44409             :   0, /*tp_pypy_flags*/
   44410             :   #endif
   44411             : };
   44412             : #endif
   44413             : 
   44414             : static PyMethodDef __pyx_methods[] = {
   44415             :   {0, 0, 0, 0}
   44416             : };
   44417             : #ifndef CYTHON_SMALL_CODE
   44418             : #if defined(__clang__)
   44419             :     #define CYTHON_SMALL_CODE
   44420             : #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
   44421             :     #define CYTHON_SMALL_CODE __attribute__((cold))
   44422             : #else
   44423             :     #define CYTHON_SMALL_CODE
   44424             : #endif
   44425             : #endif
   44426             : /* #### Code section: pystring_table ### */
   44427             : 
   44428           3 : static int __Pyx_CreateStringTabAndInitStrings(void) {
   44429           3 :   __Pyx_StringTabEntry __pyx_string_tab[] = {
   44430           3 :     {&__pyx_kp_u_, __pyx_k_, sizeof(__pyx_k_), 0, 1, 0, 0},
   44431           3 :     {&__pyx_n_s_ASCII, __pyx_k_ASCII, sizeof(__pyx_k_ASCII), 0, 0, 1, 1},
   44432           3 :     {&__pyx_n_u_All, __pyx_k_All, sizeof(__pyx_k_All), 0, 1, 0, 1},
   44433           3 :     {&__pyx_kp_s_All_dimensions_preceding_dimensi, __pyx_k_All_dimensions_preceding_dimensi, sizeof(__pyx_k_All_dimensions_preceding_dimensi), 0, 0, 1, 0},
   44434           3 :     {&__pyx_n_s_AssertionError, __pyx_k_AssertionError, sizeof(__pyx_k_AssertionError), 0, 0, 1, 1},
   44435           3 :     {&__pyx_kp_s_Buffer_view_does_not_expose_stri, __pyx_k_Buffer_view_does_not_expose_stri, sizeof(__pyx_k_Buffer_view_does_not_expose_stri), 0, 0, 1, 0},
   44436           3 :     {&__pyx_kp_s_Can_only_create_a_buffer_that_is, __pyx_k_Can_only_create_a_buffer_that_is, sizeof(__pyx_k_Can_only_create_a_buffer_that_is), 0, 0, 1, 0},
   44437           3 :     {&__pyx_kp_s_Cannot_assign_to_read_only_memor, __pyx_k_Cannot_assign_to_read_only_memor, sizeof(__pyx_k_Cannot_assign_to_read_only_memor), 0, 0, 1, 0},
   44438           3 :     {&__pyx_kp_s_Cannot_create_writable_memory_vi, __pyx_k_Cannot_create_writable_memory_vi, sizeof(__pyx_k_Cannot_create_writable_memory_vi), 0, 0, 1, 0},
   44439           3 :     {&__pyx_kp_u_Cannot_index_with_type, __pyx_k_Cannot_index_with_type, sizeof(__pyx_k_Cannot_index_with_type), 0, 1, 0, 0},
   44440           3 :     {&__pyx_kp_s_Cannot_transpose_memoryview_with, __pyx_k_Cannot_transpose_memoryview_with, sizeof(__pyx_k_Cannot_transpose_memoryview_with), 0, 0, 1, 0},
   44441           3 :     {&__pyx_kp_s_Dimension_d_is_not_direct, __pyx_k_Dimension_d_is_not_direct, sizeof(__pyx_k_Dimension_d_is_not_direct), 0, 0, 1, 0},
   44442           3 :     {&__pyx_n_s_Ellipsis, __pyx_k_Ellipsis, sizeof(__pyx_k_Ellipsis), 0, 0, 1, 1},
   44443           3 :     {&__pyx_kp_s_Empty_shape_tuple_for_cython_arr, __pyx_k_Empty_shape_tuple_for_cython_arr, sizeof(__pyx_k_Empty_shape_tuple_for_cython_arr), 0, 0, 1, 0},
   44444           3 :     {&__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_k_Expected_at_least_d_argument_s_g, sizeof(__pyx_k_Expected_at_least_d_argument_s_g), 0, 0, 1, 0},
   44445           3 :     {&__pyx_kp_s_Function_call_with_ambiguous_arg, __pyx_k_Function_call_with_ambiguous_arg, sizeof(__pyx_k_Function_call_with_ambiguous_arg), 0, 0, 1, 0},
   44446           3 :     {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1},
   44447           3 :     {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_k_Incompatible_checksums_0x_x_vs_0, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0), 0, 0, 1, 0},
   44448           3 :     {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1},
   44449           3 :     {&__pyx_kp_s_Index_out_of_bounds_axis_d, __pyx_k_Index_out_of_bounds_axis_d, sizeof(__pyx_k_Index_out_of_bounds_axis_d), 0, 0, 1, 0},
   44450           3 :     {&__pyx_kp_s_Indirect_dimensions_not_supporte, __pyx_k_Indirect_dimensions_not_supporte, sizeof(__pyx_k_Indirect_dimensions_not_supporte), 0, 0, 1, 0},
   44451           3 :     {&__pyx_n_u_Integer, __pyx_k_Integer, sizeof(__pyx_k_Integer), 0, 1, 0, 1},
   44452           3 :     {&__pyx_kp_u_Invalid_mode_expected_c_or_fortr, __pyx_k_Invalid_mode_expected_c_or_fortr, sizeof(__pyx_k_Invalid_mode_expected_c_or_fortr), 0, 1, 0, 0},
   44453           3 :     {&__pyx_kp_u_Invalid_shape_in_axis, __pyx_k_Invalid_shape_in_axis, sizeof(__pyx_k_Invalid_shape_in_axis), 0, 1, 0, 0},
   44454           3 :     {&__pyx_n_s_M, __pyx_k_M, sizeof(__pyx_k_M), 0, 0, 1, 1},
   44455           3 :     {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1},
   44456           3 :     {&__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_k_MemoryView_of_r_at_0x_x, sizeof(__pyx_k_MemoryView_of_r_at_0x_x), 0, 0, 1, 0},
   44457           3 :     {&__pyx_kp_s_MemoryView_of_r_object, __pyx_k_MemoryView_of_r_object, sizeof(__pyx_k_MemoryView_of_r_object), 0, 0, 1, 0},
   44458           3 :     {&__pyx_n_s_N, __pyx_k_N, sizeof(__pyx_k_N), 0, 0, 1, 1},
   44459           3 :     {&__pyx_kp_s_No_matching_signature_found, __pyx_k_No_matching_signature_found, sizeof(__pyx_k_No_matching_signature_found), 0, 0, 1, 0},
   44460           3 :     {&__pyx_n_b_O, __pyx_k_O, sizeof(__pyx_k_O), 0, 0, 0, 1},
   44461           3 :     {&__pyx_kp_u_Out_of_bounds_on_buffer_access_a, __pyx_k_Out_of_bounds_on_buffer_access_a, sizeof(__pyx_k_Out_of_bounds_on_buffer_access_a), 0, 1, 0, 0},
   44462           3 :     {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1},
   44463           3 :     {&__pyx_n_u_SUVO, __pyx_k_SUVO, sizeof(__pyx_k_SUVO), 0, 1, 0, 1},
   44464           3 :     {&__pyx_n_s_Sequence, __pyx_k_Sequence, sizeof(__pyx_k_Sequence), 0, 0, 1, 1},
   44465           3 :     {&__pyx_kp_s_Step_may_not_be_zero_axis_d, __pyx_k_Step_may_not_be_zero_axis_d, sizeof(__pyx_k_Step_may_not_be_zero_axis_d), 0, 0, 1, 0},
   44466           3 :     {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
   44467           3 :     {&__pyx_kp_s_Unable_to_convert_item_to_object, __pyx_k_Unable_to_convert_item_to_object, sizeof(__pyx_k_Unable_to_convert_item_to_object), 0, 0, 1, 0},
   44468           3 :     {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
   44469           3 :     {&__pyx_n_s_View_MemoryView, __pyx_k_View_MemoryView, sizeof(__pyx_k_View_MemoryView), 0, 0, 1, 1},
   44470           3 :     {&__pyx_kp_s__11, __pyx_k__11, sizeof(__pyx_k__11), 0, 0, 1, 0},
   44471           3 :     {&__pyx_kp_s__12, __pyx_k__12, sizeof(__pyx_k__12), 0, 0, 1, 0},
   44472           3 :     {&__pyx_kp_u__12, __pyx_k__12, sizeof(__pyx_k__12), 0, 1, 0, 0},
   44473           3 :     {&__pyx_kp_u__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 1, 0, 0},
   44474           3 :     {&__pyx_n_s__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 0, 1, 1},
   44475           3 :     {&__pyx_kp_u__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 1, 0, 0},
   44476           3 :     {&__pyx_kp_u__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 1, 0, 0},
   44477           3 :     {&__pyx_n_s__93, __pyx_k__93, sizeof(__pyx_k__93), 0, 0, 1, 1},
   44478           3 :     {&__pyx_n_s_a, __pyx_k_a, sizeof(__pyx_k_a), 0, 0, 1, 1},
   44479           3 :     {&__pyx_n_s_abc, __pyx_k_abc, sizeof(__pyx_k_abc), 0, 0, 1, 1},
   44480           3 :     {&__pyx_n_s_allocate_buffer, __pyx_k_allocate_buffer, sizeof(__pyx_k_allocate_buffer), 0, 0, 1, 1},
   44481           3 :     {&__pyx_kp_u_and, __pyx_k_and, sizeof(__pyx_k_and), 0, 1, 0, 0},
   44482           3 :     {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1},
   44483           3 :     {&__pyx_n_s_asyncio_coroutines, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 0, 1, 1},
   44484           3 :     {&__pyx_n_s_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 0, 1, 1},
   44485           3 :     {&__pyx_n_s_base, __pyx_k_base, sizeof(__pyx_k_base), 0, 0, 1, 1},
   44486           3 :     {&__pyx_n_s_bool, __pyx_k_bool, sizeof(__pyx_k_bool), 0, 0, 1, 1},
   44487           3 :     {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1},
   44488           3 :     {&__pyx_n_u_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 1, 0, 1},
   44489           3 :     {&__pyx_kp_u_cannot_index_with_zero_stride, __pyx_k_cannot_index_with_zero_stride, sizeof(__pyx_k_cannot_index_with_zero_stride), 0, 1, 0, 0},
   44490           3 :     {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1},
   44491           3 :     {&__pyx_n_s_class_getitem, __pyx_k_class_getitem, sizeof(__pyx_k_class_getitem), 0, 0, 1, 1},
   44492           3 :     {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
   44493           3 :     {&__pyx_n_s_clongdouble, __pyx_k_clongdouble, sizeof(__pyx_k_clongdouble), 0, 0, 1, 1},
   44494           3 :     {&__pyx_n_s_collections, __pyx_k_collections, sizeof(__pyx_k_collections), 0, 0, 1, 1},
   44495           3 :     {&__pyx_kp_s_collections_abc, __pyx_k_collections_abc, sizeof(__pyx_k_collections_abc), 0, 0, 1, 0},
   44496           3 :     {&__pyx_kp_u_column_index, __pyx_k_column_index, sizeof(__pyx_k_column_index), 0, 1, 0, 0},
   44497           3 :     {&__pyx_n_s_complex128, __pyx_k_complex128, sizeof(__pyx_k_complex128), 0, 0, 1, 1},
   44498           3 :     {&__pyx_n_s_complex64, __pyx_k_complex64, sizeof(__pyx_k_complex64), 0, 0, 1, 1},
   44499           3 :     {&__pyx_kp_s_contiguous_and_direct, __pyx_k_contiguous_and_direct, sizeof(__pyx_k_contiguous_and_direct), 0, 0, 1, 0},
   44500           3 :     {&__pyx_kp_s_contiguous_and_indirect, __pyx_k_contiguous_and_indirect, sizeof(__pyx_k_contiguous_and_indirect), 0, 0, 1, 0},
   44501           3 :     {&__pyx_n_s_count, __pyx_k_count, sizeof(__pyx_k_count), 0, 0, 1, 1},
   44502           3 :     {&__pyx_n_s_csparsetools, __pyx_k_csparsetools, sizeof(__pyx_k_csparsetools), 0, 0, 1, 1},
   44503           3 :     {&__pyx_n_s_cur_data, __pyx_k_cur_data, sizeof(__pyx_k_cur_data), 0, 0, 1, 1},
   44504           3 :     {&__pyx_n_s_cur_row, __pyx_k_cur_row, sizeof(__pyx_k_cur_row), 0, 0, 1, 1},
   44505           3 :     {&__pyx_n_u_d, __pyx_k_d, sizeof(__pyx_k_d), 0, 1, 0, 1},
   44506           3 :     {&__pyx_n_s_data, __pyx_k_data, sizeof(__pyx_k_data), 0, 0, 1, 1},
   44507           3 :     {&__pyx_n_s_datas, __pyx_k_datas, sizeof(__pyx_k_datas), 0, 0, 1, 1},
   44508           3 :     {&__pyx_n_s_defaults, __pyx_k_defaults, sizeof(__pyx_k_defaults), 0, 0, 1, 1},
   44509           3 :     {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1},
   44510           3 :     {&__pyx_kp_u_disable, __pyx_k_disable, sizeof(__pyx_k_disable), 0, 1, 0, 0},
   44511           3 :     {&__pyx_n_s_double, __pyx_k_double, sizeof(__pyx_k_double), 0, 0, 1, 1},
   44512           3 :     {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1},
   44513           3 :     {&__pyx_n_s_dtype_is_object, __pyx_k_dtype_is_object, sizeof(__pyx_k_dtype_is_object), 0, 0, 1, 1},
   44514           3 :     {&__pyx_kp_u_enable, __pyx_k_enable, sizeof(__pyx_k_enable), 0, 1, 0, 0},
   44515           3 :     {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1},
   44516           3 :     {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1},
   44517           3 :     {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1},
   44518           3 :     {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1},
   44519           3 :     {&__pyx_n_s_float32, __pyx_k_float32, sizeof(__pyx_k_float32), 0, 0, 1, 1},
   44520           3 :     {&__pyx_n_s_float64, __pyx_k_float64, sizeof(__pyx_k_float64), 0, 0, 1, 1},
   44521           3 :     {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1},
   44522           3 :     {&__pyx_n_s_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 0, 1, 1},
   44523           3 :     {&__pyx_n_u_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 1, 0, 1},
   44524           3 :     {&__pyx_n_s_fused_sigindex, __pyx_k_fused_sigindex, sizeof(__pyx_k_fused_sigindex), 0, 0, 1, 1},
   44525           3 :     {&__pyx_kp_u_gc, __pyx_k_gc, sizeof(__pyx_k_gc), 0, 1, 0, 0},
   44526           3 :     {&__pyx_n_s_get, __pyx_k_get, sizeof(__pyx_k_get), 0, 0, 1, 1},
   44527           3 :     {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1},
   44528           3 :     {&__pyx_kp_u_got, __pyx_k_got, sizeof(__pyx_k_got), 0, 1, 0, 0},
   44529           3 :     {&__pyx_kp_u_got_differing_extents_in_dimensi, __pyx_k_got_differing_extents_in_dimensi, sizeof(__pyx_k_got_differing_extents_in_dimensi), 0, 1, 0, 0},
   44530           3 :     {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1},
   44531           3 :     {&__pyx_n_s_i_idx, __pyx_k_i_idx, sizeof(__pyx_k_i_idx), 0, 0, 1, 1},
   44532           3 :     {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1},
   44533           3 :     {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
   44534           3 :     {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1},
   44535           3 :     {&__pyx_n_s_initializing, __pyx_k_initializing, sizeof(__pyx_k_initializing), 0, 0, 1, 1},
   44536           3 :     {&__pyx_n_s_input, __pyx_k_input, sizeof(__pyx_k_input), 0, 0, 1, 1},
   44537           3 :     {&__pyx_n_s_int16, __pyx_k_int16, sizeof(__pyx_k_int16), 0, 0, 1, 1},
   44538           3 :     {&__pyx_n_s_int32, __pyx_k_int32, sizeof(__pyx_k_int32), 0, 0, 1, 1},
   44539           3 :     {&__pyx_n_s_int64, __pyx_k_int64, sizeof(__pyx_k_int64), 0, 0, 1, 1},
   44540           3 :     {&__pyx_n_s_int8, __pyx_k_int8, sizeof(__pyx_k_int8), 0, 0, 1, 1},
   44541           3 :     {&__pyx_n_s_irows, __pyx_k_irows, sizeof(__pyx_k_irows), 0, 0, 1, 1},
   44542           3 :     {&__pyx_n_s_is_coroutine, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1},
   44543           3 :     {&__pyx_kp_u_isenabled, __pyx_k_isenabled, sizeof(__pyx_k_isenabled), 0, 1, 0, 0},
   44544           3 :     {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1},
   44545           3 :     {&__pyx_n_s_itemsize, __pyx_k_itemsize, sizeof(__pyx_k_itemsize), 0, 0, 1, 1},
   44546           3 :     {&__pyx_kp_s_itemsize_0_for_cython_array, __pyx_k_itemsize_0_for_cython_array, sizeof(__pyx_k_itemsize_0_for_cython_array), 0, 0, 1, 0},
   44547           3 :     {&__pyx_n_s_j, __pyx_k_j, sizeof(__pyx_k_j), 0, 0, 1, 1},
   44548           3 :     {&__pyx_n_s_j_idx, __pyx_k_j_idx, sizeof(__pyx_k_j_idx), 0, 0, 1, 1},
   44549           3 :     {&__pyx_n_s_j_start, __pyx_k_j_start, sizeof(__pyx_k_j_start), 0, 0, 1, 1},
   44550           3 :     {&__pyx_n_s_j_stop, __pyx_k_j_stop, sizeof(__pyx_k_j_stop), 0, 0, 1, 1},
   44551           3 :     {&__pyx_n_s_j_stride, __pyx_k_j_stride, sizeof(__pyx_k_j_stride), 0, 0, 1, 1},
   44552           3 :     {&__pyx_n_s_k, __pyx_k_k, sizeof(__pyx_k_k), 0, 0, 1, 1},
   44553           3 :     {&__pyx_n_s_kind, __pyx_k_kind, sizeof(__pyx_k_kind), 0, 0, 1, 1},
   44554           3 :     {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1},
   44555           3 :     {&__pyx_n_s_lil_fancy_get, __pyx_k_lil_fancy_get, sizeof(__pyx_k_lil_fancy_get), 0, 0, 1, 1},
   44556           3 :     {&__pyx_n_s_lil_fancy_get_int32, __pyx_k_lil_fancy_get_int32, sizeof(__pyx_k_lil_fancy_get_int32), 0, 0, 1, 1},
   44557           3 :     {&__pyx_n_s_lil_fancy_get_int64, __pyx_k_lil_fancy_get_int64, sizeof(__pyx_k_lil_fancy_get_int64), 0, 0, 1, 1},
   44558           3 :     {&__pyx_n_s_lil_fancy_set, __pyx_k_lil_fancy_set, sizeof(__pyx_k_lil_fancy_set), 0, 0, 1, 1},
   44559           3 :     {&__pyx_n_s_lil_fancy_set_int32_bool, __pyx_k_lil_fancy_set_int32_bool, sizeof(__pyx_k_lil_fancy_set_int32_bool), 0, 0, 1, 1},
   44560           3 :     {&__pyx_n_s_lil_fancy_set_int32_clongdouble, __pyx_k_lil_fancy_set_int32_clongdouble, sizeof(__pyx_k_lil_fancy_set_int32_clongdouble), 0, 0, 1, 1},
   44561           3 :     {&__pyx_n_s_lil_fancy_set_int32_complex128, __pyx_k_lil_fancy_set_int32_complex128, sizeof(__pyx_k_lil_fancy_set_int32_complex128), 0, 0, 1, 1},
   44562           3 :     {&__pyx_n_s_lil_fancy_set_int32_complex64, __pyx_k_lil_fancy_set_int32_complex64, sizeof(__pyx_k_lil_fancy_set_int32_complex64), 0, 0, 1, 1},
   44563           3 :     {&__pyx_n_s_lil_fancy_set_int32_float32, __pyx_k_lil_fancy_set_int32_float32, sizeof(__pyx_k_lil_fancy_set_int32_float32), 0, 0, 1, 1},
   44564           3 :     {&__pyx_n_s_lil_fancy_set_int32_float64, __pyx_k_lil_fancy_set_int32_float64, sizeof(__pyx_k_lil_fancy_set_int32_float64), 0, 0, 1, 1},
   44565           3 :     {&__pyx_n_s_lil_fancy_set_int32_int16, __pyx_k_lil_fancy_set_int32_int16, sizeof(__pyx_k_lil_fancy_set_int32_int16), 0, 0, 1, 1},
   44566           3 :     {&__pyx_n_s_lil_fancy_set_int32_int32, __pyx_k_lil_fancy_set_int32_int32, sizeof(__pyx_k_lil_fancy_set_int32_int32), 0, 0, 1, 1},
   44567           3 :     {&__pyx_n_s_lil_fancy_set_int32_int64, __pyx_k_lil_fancy_set_int32_int64, sizeof(__pyx_k_lil_fancy_set_int32_int64), 0, 0, 1, 1},
   44568           3 :     {&__pyx_n_s_lil_fancy_set_int32_int8, __pyx_k_lil_fancy_set_int32_int8, sizeof(__pyx_k_lil_fancy_set_int32_int8), 0, 0, 1, 1},
   44569           3 :     {&__pyx_n_s_lil_fancy_set_int32_longdouble, __pyx_k_lil_fancy_set_int32_longdouble, sizeof(__pyx_k_lil_fancy_set_int32_longdouble), 0, 0, 1, 1},
   44570           3 :     {&__pyx_n_s_lil_fancy_set_int32_uint16, __pyx_k_lil_fancy_set_int32_uint16, sizeof(__pyx_k_lil_fancy_set_int32_uint16), 0, 0, 1, 1},
   44571           3 :     {&__pyx_n_s_lil_fancy_set_int32_uint32, __pyx_k_lil_fancy_set_int32_uint32, sizeof(__pyx_k_lil_fancy_set_int32_uint32), 0, 0, 1, 1},
   44572           3 :     {&__pyx_n_s_lil_fancy_set_int32_uint64, __pyx_k_lil_fancy_set_int32_uint64, sizeof(__pyx_k_lil_fancy_set_int32_uint64), 0, 0, 1, 1},
   44573           3 :     {&__pyx_n_s_lil_fancy_set_int32_uint8, __pyx_k_lil_fancy_set_int32_uint8, sizeof(__pyx_k_lil_fancy_set_int32_uint8), 0, 0, 1, 1},
   44574           3 :     {&__pyx_n_s_lil_fancy_set_int64_bool, __pyx_k_lil_fancy_set_int64_bool, sizeof(__pyx_k_lil_fancy_set_int64_bool), 0, 0, 1, 1},
   44575           3 :     {&__pyx_n_s_lil_fancy_set_int64_clongdouble, __pyx_k_lil_fancy_set_int64_clongdouble, sizeof(__pyx_k_lil_fancy_set_int64_clongdouble), 0, 0, 1, 1},
   44576           3 :     {&__pyx_n_s_lil_fancy_set_int64_complex128, __pyx_k_lil_fancy_set_int64_complex128, sizeof(__pyx_k_lil_fancy_set_int64_complex128), 0, 0, 1, 1},
   44577           3 :     {&__pyx_n_s_lil_fancy_set_int64_complex64, __pyx_k_lil_fancy_set_int64_complex64, sizeof(__pyx_k_lil_fancy_set_int64_complex64), 0, 0, 1, 1},
   44578           3 :     {&__pyx_n_s_lil_fancy_set_int64_float32, __pyx_k_lil_fancy_set_int64_float32, sizeof(__pyx_k_lil_fancy_set_int64_float32), 0, 0, 1, 1},
   44579           3 :     {&__pyx_n_s_lil_fancy_set_int64_float64, __pyx_k_lil_fancy_set_int64_float64, sizeof(__pyx_k_lil_fancy_set_int64_float64), 0, 0, 1, 1},
   44580           3 :     {&__pyx_n_s_lil_fancy_set_int64_int16, __pyx_k_lil_fancy_set_int64_int16, sizeof(__pyx_k_lil_fancy_set_int64_int16), 0, 0, 1, 1},
   44581           3 :     {&__pyx_n_s_lil_fancy_set_int64_int32, __pyx_k_lil_fancy_set_int64_int32, sizeof(__pyx_k_lil_fancy_set_int64_int32), 0, 0, 1, 1},
   44582           3 :     {&__pyx_n_s_lil_fancy_set_int64_int64, __pyx_k_lil_fancy_set_int64_int64, sizeof(__pyx_k_lil_fancy_set_int64_int64), 0, 0, 1, 1},
   44583           3 :     {&__pyx_n_s_lil_fancy_set_int64_int8, __pyx_k_lil_fancy_set_int64_int8, sizeof(__pyx_k_lil_fancy_set_int64_int8), 0, 0, 1, 1},
   44584           3 :     {&__pyx_n_s_lil_fancy_set_int64_longdouble, __pyx_k_lil_fancy_set_int64_longdouble, sizeof(__pyx_k_lil_fancy_set_int64_longdouble), 0, 0, 1, 1},
   44585           3 :     {&__pyx_n_s_lil_fancy_set_int64_uint16, __pyx_k_lil_fancy_set_int64_uint16, sizeof(__pyx_k_lil_fancy_set_int64_uint16), 0, 0, 1, 1},
   44586           3 :     {&__pyx_n_s_lil_fancy_set_int64_uint32, __pyx_k_lil_fancy_set_int64_uint32, sizeof(__pyx_k_lil_fancy_set_int64_uint32), 0, 0, 1, 1},
   44587           3 :     {&__pyx_n_s_lil_fancy_set_int64_uint64, __pyx_k_lil_fancy_set_int64_uint64, sizeof(__pyx_k_lil_fancy_set_int64_uint64), 0, 0, 1, 1},
   44588           3 :     {&__pyx_n_s_lil_fancy_set_int64_uint8, __pyx_k_lil_fancy_set_int64_uint8, sizeof(__pyx_k_lil_fancy_set_int64_uint8), 0, 0, 1, 1},
   44589           3 :     {&__pyx_n_s_lil_flatten_to_array, __pyx_k_lil_flatten_to_array, sizeof(__pyx_k_lil_flatten_to_array), 0, 0, 1, 1},
   44590           3 :     {&__pyx_n_s_lil_flatten_to_array_bool, __pyx_k_lil_flatten_to_array_bool, sizeof(__pyx_k_lil_flatten_to_array_bool), 0, 0, 1, 1},
   44591           3 :     {&__pyx_n_s_lil_flatten_to_array_clongdoubl, __pyx_k_lil_flatten_to_array_clongdoubl, sizeof(__pyx_k_lil_flatten_to_array_clongdoubl), 0, 0, 1, 1},
   44592           3 :     {&__pyx_n_s_lil_flatten_to_array_complex128, __pyx_k_lil_flatten_to_array_complex128, sizeof(__pyx_k_lil_flatten_to_array_complex128), 0, 0, 1, 1},
   44593           3 :     {&__pyx_n_s_lil_flatten_to_array_complex64, __pyx_k_lil_flatten_to_array_complex64, sizeof(__pyx_k_lil_flatten_to_array_complex64), 0, 0, 1, 1},
   44594           3 :     {&__pyx_n_s_lil_flatten_to_array_float32, __pyx_k_lil_flatten_to_array_float32, sizeof(__pyx_k_lil_flatten_to_array_float32), 0, 0, 1, 1},
   44595           3 :     {&__pyx_n_s_lil_flatten_to_array_float64, __pyx_k_lil_flatten_to_array_float64, sizeof(__pyx_k_lil_flatten_to_array_float64), 0, 0, 1, 1},
   44596           3 :     {&__pyx_n_s_lil_flatten_to_array_int16, __pyx_k_lil_flatten_to_array_int16, sizeof(__pyx_k_lil_flatten_to_array_int16), 0, 0, 1, 1},
   44597           3 :     {&__pyx_n_s_lil_flatten_to_array_int32, __pyx_k_lil_flatten_to_array_int32, sizeof(__pyx_k_lil_flatten_to_array_int32), 0, 0, 1, 1},
   44598           3 :     {&__pyx_n_s_lil_flatten_to_array_int64, __pyx_k_lil_flatten_to_array_int64, sizeof(__pyx_k_lil_flatten_to_array_int64), 0, 0, 1, 1},
   44599           3 :     {&__pyx_n_s_lil_flatten_to_array_int8, __pyx_k_lil_flatten_to_array_int8, sizeof(__pyx_k_lil_flatten_to_array_int8), 0, 0, 1, 1},
   44600           3 :     {&__pyx_n_s_lil_flatten_to_array_longdouble, __pyx_k_lil_flatten_to_array_longdouble, sizeof(__pyx_k_lil_flatten_to_array_longdouble), 0, 0, 1, 1},
   44601           3 :     {&__pyx_n_s_lil_flatten_to_array_uint16, __pyx_k_lil_flatten_to_array_uint16, sizeof(__pyx_k_lil_flatten_to_array_uint16), 0, 0, 1, 1},
   44602           3 :     {&__pyx_n_s_lil_flatten_to_array_uint32, __pyx_k_lil_flatten_to_array_uint32, sizeof(__pyx_k_lil_flatten_to_array_uint32), 0, 0, 1, 1},
   44603           3 :     {&__pyx_n_s_lil_flatten_to_array_uint64, __pyx_k_lil_flatten_to_array_uint64, sizeof(__pyx_k_lil_flatten_to_array_uint64), 0, 0, 1, 1},
   44604           3 :     {&__pyx_n_s_lil_flatten_to_array_uint8, __pyx_k_lil_flatten_to_array_uint8, sizeof(__pyx_k_lil_flatten_to_array_uint8), 0, 0, 1, 1},
   44605           3 :     {&__pyx_n_s_lil_get1, __pyx_k_lil_get1, sizeof(__pyx_k_lil_get1), 0, 0, 1, 1},
   44606           3 :     {&__pyx_n_s_lil_get_lengths, __pyx_k_lil_get_lengths, sizeof(__pyx_k_lil_get_lengths), 0, 0, 1, 1},
   44607           3 :     {&__pyx_n_s_lil_get_lengths_int32, __pyx_k_lil_get_lengths_int32, sizeof(__pyx_k_lil_get_lengths_int32), 0, 0, 1, 1},
   44608           3 :     {&__pyx_n_s_lil_get_lengths_int64, __pyx_k_lil_get_lengths_int64, sizeof(__pyx_k_lil_get_lengths_int64), 0, 0, 1, 1},
   44609           3 :     {&__pyx_n_s_lil_get_row_ranges, __pyx_k_lil_get_row_ranges, sizeof(__pyx_k_lil_get_row_ranges), 0, 0, 1, 1},
   44610           3 :     {&__pyx_n_s_lil_insert, __pyx_k_lil_insert, sizeof(__pyx_k_lil_insert), 0, 0, 1, 1},
   44611           3 :     {&__pyx_n_s_longdouble, __pyx_k_longdouble, sizeof(__pyx_k_longdouble), 0, 0, 1, 1},
   44612           3 :     {&__pyx_n_s_m, __pyx_k_m, sizeof(__pyx_k_m), 0, 0, 1, 1},
   44613           3 :     {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
   44614           3 :     {&__pyx_n_s_memview, __pyx_k_memview, sizeof(__pyx_k_memview), 0, 0, 1, 1},
   44615           3 :     {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1},
   44616           3 :     {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
   44617           3 :     {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1},
   44618           3 :     {&__pyx_n_s_ndim, __pyx_k_ndim, sizeof(__pyx_k_ndim), 0, 0, 1, 1},
   44619           3 :     {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1},
   44620           3 :     {&__pyx_n_s_new_data, __pyx_k_new_data, sizeof(__pyx_k_new_data), 0, 0, 1, 1},
   44621           3 :     {&__pyx_n_s_new_datas, __pyx_k_new_datas, sizeof(__pyx_k_new_datas), 0, 0, 1, 1},
   44622           3 :     {&__pyx_n_s_new_row, __pyx_k_new_row, sizeof(__pyx_k_new_row), 0, 0, 1, 1},
   44623           3 :     {&__pyx_n_s_new_rows, __pyx_k_new_rows, sizeof(__pyx_k_new_rows), 0, 0, 1, 1},
   44624           3 :     {&__pyx_n_s_nj, __pyx_k_nj, sizeof(__pyx_k_nj), 0, 0, 1, 1},
   44625           3 :     {&__pyx_n_s_nk, __pyx_k_nk, sizeof(__pyx_k_nk), 0, 0, 1, 1},
   44626           3 :     {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0},
   44627           3 :     {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1},
   44628           3 :     {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1},
   44629           3 :     {&__pyx_kp_u_numpy__core_multiarray_failed_to, __pyx_k_numpy__core_multiarray_failed_to, sizeof(__pyx_k_numpy__core_multiarray_failed_to), 0, 1, 0, 0},
   44630           3 :     {&__pyx_kp_u_numpy__core_umath_failed_to_impo, __pyx_k_numpy__core_umath_failed_to_impo, sizeof(__pyx_k_numpy__core_umath_failed_to_impo), 0, 1, 0, 0},
   44631           3 :     {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1},
   44632           3 :     {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1},
   44633           3 :     {&__pyx_kp_u_out_of_bounds, __pyx_k_out_of_bounds, sizeof(__pyx_k_out_of_bounds), 0, 1, 0, 0},
   44634           3 :     {&__pyx_kp_u_out_of_bounds_2, __pyx_k_out_of_bounds_2, sizeof(__pyx_k_out_of_bounds_2), 0, 1, 0, 0},
   44635           3 :     {&__pyx_n_s_output, __pyx_k_output, sizeof(__pyx_k_output), 0, 0, 1, 1},
   44636           3 :     {&__pyx_n_s_p, __pyx_k_p, sizeof(__pyx_k_p), 0, 0, 1, 1},
   44637           3 :     {&__pyx_n_s_pack, __pyx_k_pack, sizeof(__pyx_k_pack), 0, 0, 1, 1},
   44638           3 :     {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1},
   44639           3 :     {&__pyx_n_s_pos, __pyx_k_pos, sizeof(__pyx_k_pos), 0, 0, 1, 1},
   44640           3 :     {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1},
   44641           3 :     {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1},
   44642           3 :     {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1},
   44643           3 :     {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1},
   44644           3 :     {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1},
   44645           3 :     {&__pyx_n_s_pyx_unpickle_Enum, __pyx_k_pyx_unpickle_Enum, sizeof(__pyx_k_pyx_unpickle_Enum), 0, 0, 1, 1},
   44646           3 :     {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1},
   44647           3 :     {&__pyx_n_s_r, __pyx_k_r, sizeof(__pyx_k_r), 0, 0, 1, 1},
   44648           3 :     {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
   44649           3 :     {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1},
   44650           3 :     {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1},
   44651           3 :     {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1},
   44652           3 :     {&__pyx_n_s_register, __pyx_k_register, sizeof(__pyx_k_register), 0, 0, 1, 1},
   44653           3 :     {&__pyx_n_s_row, __pyx_k_row, sizeof(__pyx_k_row), 0, 0, 1, 1},
   44654           3 :     {&__pyx_kp_u_row_index, __pyx_k_row_index, sizeof(__pyx_k_row_index), 0, 1, 0, 0},
   44655           3 :     {&__pyx_kp_u_row_index_2, __pyx_k_row_index_2, sizeof(__pyx_k_row_index_2), 0, 1, 0, 0},
   44656           3 :     {&__pyx_n_s_rows, __pyx_k_rows, sizeof(__pyx_k_rows), 0, 0, 1, 1},
   44657           3 :     {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1},
   44658           3 :     {&__pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_k_scipy_sparse__csparsetools_pyx, sizeof(__pyx_k_scipy_sparse__csparsetools_pyx), 0, 0, 1, 0},
   44659           3 :     {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1},
   44660           3 :     {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1},
   44661           3 :     {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1},
   44662           3 :     {&__pyx_n_s_signatures, __pyx_k_signatures, sizeof(__pyx_k_signatures), 0, 0, 1, 1},
   44663           3 :     {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1},
   44664           3 :     {&__pyx_n_s_spec, __pyx_k_spec, sizeof(__pyx_k_spec), 0, 0, 1, 1},
   44665           3 :     {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1},
   44666           3 :     {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1},
   44667           3 :     {&__pyx_n_s_step, __pyx_k_step, sizeof(__pyx_k_step), 0, 0, 1, 1},
   44668           3 :     {&__pyx_n_s_stop, __pyx_k_stop, sizeof(__pyx_k_stop), 0, 0, 1, 1},
   44669           3 :     {&__pyx_kp_s_strided_and_direct, __pyx_k_strided_and_direct, sizeof(__pyx_k_strided_and_direct), 0, 0, 1, 0},
   44670           3 :     {&__pyx_kp_s_strided_and_direct_or_indirect, __pyx_k_strided_and_direct_or_indirect, sizeof(__pyx_k_strided_and_direct_or_indirect), 0, 0, 1, 0},
   44671           3 :     {&__pyx_kp_s_strided_and_indirect, __pyx_k_strided_and_indirect, sizeof(__pyx_k_strided_and_indirect), 0, 0, 1, 0},
   44672           3 :     {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0},
   44673           3 :     {&__pyx_n_s_strip, __pyx_k_strip, sizeof(__pyx_k_strip), 0, 0, 1, 1},
   44674           3 :     {&__pyx_n_s_struct, __pyx_k_struct, sizeof(__pyx_k_struct), 0, 0, 1, 1},
   44675           3 :     {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1},
   44676           3 :     {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
   44677           3 :     {&__pyx_n_s_typecodes, __pyx_k_typecodes, sizeof(__pyx_k_typecodes), 0, 0, 1, 1},
   44678           3 :     {&__pyx_n_s_uint16, __pyx_k_uint16, sizeof(__pyx_k_uint16), 0, 0, 1, 1},
   44679           3 :     {&__pyx_n_s_uint32, __pyx_k_uint32, sizeof(__pyx_k_uint32), 0, 0, 1, 1},
   44680           3 :     {&__pyx_n_s_uint64, __pyx_k_uint64, sizeof(__pyx_k_uint64), 0, 0, 1, 1},
   44681           3 :     {&__pyx_n_s_uint8, __pyx_k_uint8, sizeof(__pyx_k_uint8), 0, 0, 1, 1},
   44682           3 :     {&__pyx_kp_s_unable_to_allocate_array_data, __pyx_k_unable_to_allocate_array_data, sizeof(__pyx_k_unable_to_allocate_array_data), 0, 0, 1, 0},
   44683           3 :     {&__pyx_kp_s_unable_to_allocate_shape_and_str, __pyx_k_unable_to_allocate_shape_and_str, sizeof(__pyx_k_unable_to_allocate_shape_and_str), 0, 0, 1, 0},
   44684           3 :     {&__pyx_n_s_unpack, __pyx_k_unpack, sizeof(__pyx_k_unpack), 0, 0, 1, 1},
   44685           3 :     {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1},
   44686           3 :     {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1},
   44687           3 :     {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1},
   44688           3 :     {&__pyx_n_s_version_info, __pyx_k_version_info, sizeof(__pyx_k_version_info), 0, 0, 1, 1},
   44689           3 :     {&__pyx_n_s_view, __pyx_k_view, sizeof(__pyx_k_view), 0, 0, 1, 1},
   44690           3 :     {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1},
   44691           3 :     {&__pyx_n_s_y, __pyx_k_y, sizeof(__pyx_k_y), 0, 0, 1, 1},
   44692             :     {0, 0, 0, 0, 0, 0, 0}
   44693             :   };
   44694           3 :   return __Pyx_InitStrings(__pyx_string_tab);
   44695             : }
   44696             : /* #### Code section: cached_builtins ### */
   44697           3 : static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
   44698           3 :   __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(0, 41, __pyx_L1_error)
   44699           3 :   __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 116, __pyx_L1_error)
   44700           3 :   __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 141, __pyx_L1_error)
   44701           3 :   __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 141, __pyx_L1_error)
   44702           3 :   __pyx_builtin_AssertionError = __Pyx_GetBuiltinName(__pyx_n_s_AssertionError); if (!__pyx_builtin_AssertionError) __PYX_ERR(0, 436, __pyx_L1_error)
   44703           3 :   __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 991, __pyx_L1_error)
   44704           3 :   __pyx_builtin___import__ = __Pyx_GetBuiltinName(__pyx_n_s_import); if (!__pyx_builtin___import__) __PYX_ERR(1, 100, __pyx_L1_error)
   44705           3 :   __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(1, 156, __pyx_L1_error)
   44706           3 :   __pyx_builtin_Ellipsis = __Pyx_GetBuiltinName(__pyx_n_s_Ellipsis); if (!__pyx_builtin_Ellipsis) __PYX_ERR(1, 408, __pyx_L1_error)
   44707           3 :   __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(1, 618, __pyx_L1_error)
   44708           3 :   __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1025, __pyx_L1_error)
   44709             :   return 0;
   44710             :   __pyx_L1_error:;
   44711             :   return -1;
   44712             : }
   44713             : /* #### Code section: cached_constants ### */
   44714             : 
   44715           3 : static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
   44716             :   __Pyx_RefNannyDeclarations
   44717           3 :   __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
   44718             : 
   44719             :   /* "View.MemoryView":582
   44720             :  *     def suboffsets(self):
   44721             :  *         if self.view.suboffsets == NULL:
   44722             :  *             return (-1,) * self.view.ndim             # <<<<<<<<<<<<<<
   44723             :  * 
   44724             :  *         return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]])
   44725             :  */
   44726           3 :   __pyx_tuple__4 = PyTuple_New(1); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 582, __pyx_L1_error)
   44727           3 :   __Pyx_GOTREF(__pyx_tuple__4);
   44728           3 :   __Pyx_INCREF(__pyx_int_neg_1);
   44729           3 :   __Pyx_GIVEREF(__pyx_int_neg_1);
   44730           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_tuple__4, 0, __pyx_int_neg_1)) __PYX_ERR(1, 582, __pyx_L1_error);
   44731           3 :   __Pyx_GIVEREF(__pyx_tuple__4);
   44732             : 
   44733             :   /* "View.MemoryView":679
   44734             :  *     tup = <tuple>index if isinstance(index, tuple) else (index,)
   44735             :  * 
   44736             :  *     result = [slice(None)] * ndim             # <<<<<<<<<<<<<<
   44737             :  *     have_slices = False
   44738             :  *     seen_ellipsis = False
   44739             :  */
   44740           3 :   __pyx_slice__5 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__5)) __PYX_ERR(1, 679, __pyx_L1_error)
   44741           3 :   __Pyx_GOTREF(__pyx_slice__5);
   44742           3 :   __Pyx_GIVEREF(__pyx_slice__5);
   44743             : 
   44744             :   /* "(tree fragment)":4
   44745             :  *     cdef object __pyx_PickleError
   44746             :  *     cdef object __pyx_result
   44747             :  *     if __pyx_checksum not in (0x82a3537, 0x6ae9995, 0xb068931):             # <<<<<<<<<<<<<<
   44748             :  *         from pickle import PickleError as __pyx_PickleError
   44749             :  *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
   44750             :  */
   44751           3 :   __pyx_tuple__8 = PyTuple_Pack(3, __pyx_int_136983863, __pyx_int_112105877, __pyx_int_184977713); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 4, __pyx_L1_error)
   44752           3 :   __Pyx_GOTREF(__pyx_tuple__8);
   44753           3 :   __Pyx_GIVEREF(__pyx_tuple__8);
   44754             : 
   44755             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1025
   44756             :  *         __pyx_import_array()
   44757             :  *     except Exception:
   44758             :  *         raise ImportError("numpy._core.multiarray failed to import")             # <<<<<<<<<<<<<<
   44759             :  * 
   44760             :  * cdef inline int import_umath() except -1:
   44761             :  */
   44762           3 :   __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_u_numpy__core_multiarray_failed_to); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 1025, __pyx_L1_error)
   44763           3 :   __Pyx_GOTREF(__pyx_tuple__9);
   44764           3 :   __Pyx_GIVEREF(__pyx_tuple__9);
   44765             : 
   44766             :   /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1031
   44767             :  *         _import_umath()
   44768             :  *     except Exception:
   44769             :  *         raise ImportError("numpy._core.umath failed to import")             # <<<<<<<<<<<<<<
   44770             :  * 
   44771             :  * cdef inline int import_ufunc() except -1:
   44772             :  */
   44773           3 :   __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_u_numpy__core_umath_failed_to_impo); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(2, 1031, __pyx_L1_error)
   44774           3 :   __Pyx_GOTREF(__pyx_tuple__10);
   44775           3 :   __Pyx_GIVEREF(__pyx_tuple__10);
   44776             : 
   44777             :   /* "_csparsetools.pyx":141
   44778             :  *     double
   44779             :  * 
   44780             :  * def lil_flatten_to_array(const obj_fused[:] input,             # <<<<<<<<<<<<<<
   44781             :  *                          cnp.ndarray output):
   44782             :  *     return _LIL_FLATTEN_TO_ARRAY_DISPATCH[output.dtype](input, output)
   44783             :  */
   44784           3 :   __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_No_matching_signature_found); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 141, __pyx_L1_error)
   44785           3 :   __Pyx_GOTREF(__pyx_tuple__13);
   44786           3 :   __Pyx_GIVEREF(__pyx_tuple__13);
   44787           3 :   __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_Function_call_with_ambiguous_arg); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 141, __pyx_L1_error)
   44788           3 :   __Pyx_GOTREF(__pyx_tuple__14);
   44789           3 :   __Pyx_GIVEREF(__pyx_tuple__14);
   44790             : 
   44791             :   /* "_csparsetools.pyx":989
   44792             :  * 
   44793             :  *     if j_stride == 0:
   44794             :  *         raise ValueError("cannot index with zero stride")             # <<<<<<<<<<<<<<
   44795             :  * 
   44796             :  *     for nk, k in enumerate(irows):
   44797             :  */
   44798           3 :   __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_u_cannot_index_with_zero_stride); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 989, __pyx_L1_error)
   44799           3 :   __Pyx_GOTREF(__pyx_tuple__15);
   44800           3 :   __Pyx_GIVEREF(__pyx_tuple__15);
   44801             : 
   44802             :   /* "View.MemoryView":100
   44803             :  * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
   44804             :  * try:
   44805             :  *     if __import__("sys").version_info >= (3, 3):             # <<<<<<<<<<<<<<
   44806             :  *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
   44807             :  *     else:
   44808             :  */
   44809           3 :   __pyx_tuple__16 = PyTuple_Pack(1, __pyx_n_s_sys); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 100, __pyx_L1_error)
   44810           3 :   __Pyx_GOTREF(__pyx_tuple__16);
   44811           3 :   __Pyx_GIVEREF(__pyx_tuple__16);
   44812           3 :   __pyx_tuple__17 = PyTuple_Pack(2, __pyx_int_3, __pyx_int_3); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 100, __pyx_L1_error)
   44813           3 :   __Pyx_GOTREF(__pyx_tuple__17);
   44814           3 :   __Pyx_GIVEREF(__pyx_tuple__17);
   44815             : 
   44816             :   /* "View.MemoryView":101
   44817             :  * try:
   44818             :  *     if __import__("sys").version_info >= (3, 3):
   44819             :  *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence             # <<<<<<<<<<<<<<
   44820             :  *     else:
   44821             :  *         __pyx_collections_abc_Sequence = __import__("collections").Sequence
   44822             :  */
   44823           3 :   __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_collections_abc); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(1, 101, __pyx_L1_error)
   44824           3 :   __Pyx_GOTREF(__pyx_tuple__18);
   44825           3 :   __Pyx_GIVEREF(__pyx_tuple__18);
   44826             : 
   44827             :   /* "View.MemoryView":103
   44828             :  *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
   44829             :  *     else:
   44830             :  *         __pyx_collections_abc_Sequence = __import__("collections").Sequence             # <<<<<<<<<<<<<<
   44831             :  * except:
   44832             :  * 
   44833             :  */
   44834           3 :   __pyx_tuple__19 = PyTuple_Pack(1, __pyx_n_s_collections); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(1, 103, __pyx_L1_error)
   44835           3 :   __Pyx_GOTREF(__pyx_tuple__19);
   44836           3 :   __Pyx_GIVEREF(__pyx_tuple__19);
   44837             : 
   44838             :   /* "View.MemoryView":309
   44839             :  *         return self.name
   44840             :  * 
   44841             :  * cdef generic = Enum("<strided and direct or indirect>")             # <<<<<<<<<<<<<<
   44842             :  * cdef strided = Enum("<strided and direct>") # default
   44843             :  * cdef indirect = Enum("<strided and indirect>")
   44844             :  */
   44845           3 :   __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct_or_indirect); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(1, 309, __pyx_L1_error)
   44846           3 :   __Pyx_GOTREF(__pyx_tuple__20);
   44847           3 :   __Pyx_GIVEREF(__pyx_tuple__20);
   44848             : 
   44849             :   /* "View.MemoryView":310
   44850             :  * 
   44851             :  * cdef generic = Enum("<strided and direct or indirect>")
   44852             :  * cdef strided = Enum("<strided and direct>") # default             # <<<<<<<<<<<<<<
   44853             :  * cdef indirect = Enum("<strided and indirect>")
   44854             :  * 
   44855             :  */
   44856           3 :   __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(1, 310, __pyx_L1_error)
   44857           3 :   __Pyx_GOTREF(__pyx_tuple__21);
   44858           3 :   __Pyx_GIVEREF(__pyx_tuple__21);
   44859             : 
   44860             :   /* "View.MemoryView":311
   44861             :  * cdef generic = Enum("<strided and direct or indirect>")
   44862             :  * cdef strided = Enum("<strided and direct>") # default
   44863             :  * cdef indirect = Enum("<strided and indirect>")             # <<<<<<<<<<<<<<
   44864             :  * 
   44865             :  * 
   44866             :  */
   44867           3 :   __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_s_strided_and_indirect); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(1, 311, __pyx_L1_error)
   44868           3 :   __Pyx_GOTREF(__pyx_tuple__22);
   44869           3 :   __Pyx_GIVEREF(__pyx_tuple__22);
   44870             : 
   44871             :   /* "View.MemoryView":314
   44872             :  * 
   44873             :  * 
   44874             :  * cdef contiguous = Enum("<contiguous and direct>")             # <<<<<<<<<<<<<<
   44875             :  * cdef indirect_contiguous = Enum("<contiguous and indirect>")
   44876             :  * 
   44877             :  */
   44878           3 :   __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_direct); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(1, 314, __pyx_L1_error)
   44879           3 :   __Pyx_GOTREF(__pyx_tuple__23);
   44880           3 :   __Pyx_GIVEREF(__pyx_tuple__23);
   44881             : 
   44882             :   /* "View.MemoryView":315
   44883             :  * 
   44884             :  * cdef contiguous = Enum("<contiguous and direct>")
   44885             :  * cdef indirect_contiguous = Enum("<contiguous and indirect>")             # <<<<<<<<<<<<<<
   44886             :  * 
   44887             :  * 
   44888             :  */
   44889           3 :   __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_indirect); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(1, 315, __pyx_L1_error)
   44890           3 :   __Pyx_GOTREF(__pyx_tuple__24);
   44891           3 :   __Pyx_GIVEREF(__pyx_tuple__24);
   44892             : 
   44893             :   /* "(tree fragment)":1
   44894             :  * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
   44895             :  *     cdef object __pyx_PickleError
   44896             :  *     cdef object __pyx_result
   44897             :  */
   44898           3 :   __pyx_tuple__25 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(1, 1, __pyx_L1_error)
   44899           3 :   __Pyx_GOTREF(__pyx_tuple__25);
   44900           3 :   __Pyx_GIVEREF(__pyx_tuple__25);
   44901           3 :   __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Enum, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(1, 1, __pyx_L1_error)
   44902             : 
   44903             :   /* "_csparsetools.pyx":18
   44904             :  * 
   44905             :  * @cython.wraparound(False)
   44906             :  * cpdef lil_get1(cnp.npy_intp M, cnp.npy_intp N, object[:] rows, object[:] datas,             # <<<<<<<<<<<<<<
   44907             :  *                cnp.npy_intp i, cnp.npy_intp j):
   44908             :  *     """
   44909             :  */
   44910           3 :   __pyx_tuple__27 = PyTuple_Pack(6, __pyx_n_s_M, __pyx_n_s_N, __pyx_n_s_rows, __pyx_n_s_datas, __pyx_n_s_i, __pyx_n_s_j); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 18, __pyx_L1_error)
   44911           3 :   __Pyx_GOTREF(__pyx_tuple__27);
   44912           3 :   __Pyx_GIVEREF(__pyx_tuple__27);
   44913           3 :   __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_get1, 18, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 18, __pyx_L1_error)
   44914             : 
   44915             :   /* "_csparsetools.pyx":61
   44916             :  * 
   44917             :  * @cython.wraparound(False)
   44918             :  * cpdef int lil_insert(cnp.npy_intp M, cnp.npy_intp N, object[:] rows,             # <<<<<<<<<<<<<<
   44919             :  *                      object[:] datas, cnp.npy_intp i, cnp.npy_intp j,
   44920             :  *                      object x) except -1:
   44921             :  */
   44922           3 :   __pyx_tuple__29 = PyTuple_Pack(7, __pyx_n_s_M, __pyx_n_s_N, __pyx_n_s_rows, __pyx_n_s_datas, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_x); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 61, __pyx_L1_error)
   44923           3 :   __Pyx_GOTREF(__pyx_tuple__29);
   44924           3 :   __Pyx_GIVEREF(__pyx_tuple__29);
   44925           3 :   __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_insert, 61, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 61, __pyx_L1_error)
   44926             : 
   44927             :   /* "_csparsetools.pyx":109
   44928             :  *             data[pos] = x
   44929             :  * 
   44930             :  * def lil_get_lengths(object[:] input,             # <<<<<<<<<<<<<<
   44931             :  *                     cnp.ndarray output):
   44932             :  *     return _LIL_GET_LENGTHS_DISPATCH[output.dtype](input, output)
   44933             :  */
   44934           3 :   __pyx_tuple__31 = PyTuple_Pack(2, __pyx_n_s_input, __pyx_n_s_output); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 109, __pyx_L1_error)
   44935           3 :   __Pyx_GOTREF(__pyx_tuple__31);
   44936           3 :   __Pyx_GIVEREF(__pyx_tuple__31);
   44937           3 :   __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_get_lengths, 109, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 109, __pyx_L1_error)
   44938             : 
   44939             :   /* "_csparsetools.pyx":112
   44940             :  *                     cnp.ndarray output):
   44941             :  *     return _LIL_GET_LENGTHS_DISPATCH[output.dtype](input, output)
   44942             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   44943             :  * @cython.wraparound(False)
   44944             :  * def _lil_get_lengths_int32(object[:] input,
   44945             :  */
   44946           3 :   __pyx_tuple__33 = PyTuple_Pack(3, __pyx_n_s_input, __pyx_n_s_output, __pyx_n_s_i); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 112, __pyx_L1_error)
   44947           3 :   __Pyx_GOTREF(__pyx_tuple__33);
   44948           3 :   __Pyx_GIVEREF(__pyx_tuple__33);
   44949           3 :   __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_get_lengths_int32, 112, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 112, __pyx_L1_error)
   44950             : 
   44951             :   /* "_csparsetools.pyx":118
   44952             :  *     for i in range(len(input)):
   44953             :  *         output[i] = len(input[i])
   44954             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   44955             :  * @cython.wraparound(False)
   44956             :  * def _lil_get_lengths_int64(object[:] input,
   44957             :  */
   44958           3 :   __pyx_codeobj__35 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_get_lengths_int64, 118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__35)) __PYX_ERR(0, 118, __pyx_L1_error)
   44959             : 
   44960             :   /* "_csparsetools.pyx":141
   44961             :  *     double
   44962             :  * 
   44963             :  * def lil_flatten_to_array(const obj_fused[:] input,             # <<<<<<<<<<<<<<
   44964             :  *                          cnp.ndarray output):
   44965             :  *     return _LIL_FLATTEN_TO_ARRAY_DISPATCH[output.dtype](input, output)
   44966             :  */
   44967           3 :   __pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_flatten_to_array, 141, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(0, 141, __pyx_L1_error)
   44968             : 
   44969             :   /* "_csparsetools.pyx":144
   44970             :  *                          cnp.ndarray output):
   44971             :  *     return _LIL_FLATTEN_TO_ARRAY_DISPATCH[output.dtype](input, output)
   44972             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   44973             :  * @cython.wraparound(False)
   44974             :  * def _lil_flatten_to_array_bool_(object[:] input not None, cnp.ndarray[cnp.npy_bool] output not None):
   44975             :  */
   44976           3 :   __pyx_tuple__37 = PyTuple_Pack(6, __pyx_n_s_input, __pyx_n_s_output, __pyx_n_s_row, __pyx_n_s_pos, __pyx_n_s_i, __pyx_n_s_j); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 144, __pyx_L1_error)
   44977           3 :   __Pyx_GOTREF(__pyx_tuple__37);
   44978           3 :   __Pyx_GIVEREF(__pyx_tuple__37);
   44979           3 :   __pyx_codeobj__38 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_flatten_to_array_bool, 144, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__38)) __PYX_ERR(0, 144, __pyx_L1_error)
   44980             : 
   44981             :   /* "_csparsetools.pyx":154
   44982             :  *             output[pos] = row[j]
   44983             :  *             pos += 1
   44984             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   44985             :  * @cython.wraparound(False)
   44986             :  * def _lil_flatten_to_array_int8(object[:] input not None, cnp.ndarray[cnp.npy_int8] output not None):
   44987             :  */
   44988           3 :   __pyx_codeobj__39 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_flatten_to_array_int8, 154, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__39)) __PYX_ERR(0, 154, __pyx_L1_error)
   44989             : 
   44990             :   /* "_csparsetools.pyx":164
   44991             :  *             output[pos] = row[j]
   44992             :  *             pos += 1
   44993             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   44994             :  * @cython.wraparound(False)
   44995             :  * def _lil_flatten_to_array_uint8(object[:] input not None, cnp.ndarray[cnp.npy_uint8] output not None):
   44996             :  */
   44997           3 :   __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_flatten_to_array_uint8, 164, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(0, 164, __pyx_L1_error)
   44998             : 
   44999             :   /* "_csparsetools.pyx":174
   45000             :  *             output[pos] = row[j]
   45001             :  *             pos += 1
   45002             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45003             :  * @cython.wraparound(False)
   45004             :  * def _lil_flatten_to_array_int16(object[:] input not None, cnp.ndarray[cnp.npy_int16] output not None):
   45005             :  */
   45006           3 :   __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_flatten_to_array_int16, 174, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(0, 174, __pyx_L1_error)
   45007             : 
   45008             :   /* "_csparsetools.pyx":184
   45009             :  *             output[pos] = row[j]
   45010             :  *             pos += 1
   45011             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45012             :  * @cython.wraparound(False)
   45013             :  * def _lil_flatten_to_array_uint16(object[:] input not None, cnp.ndarray[cnp.npy_uint16] output not None):
   45014             :  */
   45015           3 :   __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_flatten_to_array_uint16, 184, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(0, 184, __pyx_L1_error)
   45016             : 
   45017             :   /* "_csparsetools.pyx":194
   45018             :  *             output[pos] = row[j]
   45019             :  *             pos += 1
   45020             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45021             :  * @cython.wraparound(False)
   45022             :  * def _lil_flatten_to_array_int32(object[:] input not None, cnp.ndarray[cnp.npy_int32] output not None):
   45023             :  */
   45024           3 :   __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_flatten_to_array_int32, 194, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(0, 194, __pyx_L1_error)
   45025             : 
   45026             :   /* "_csparsetools.pyx":204
   45027             :  *             output[pos] = row[j]
   45028             :  *             pos += 1
   45029             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45030             :  * @cython.wraparound(False)
   45031             :  * def _lil_flatten_to_array_uint32(object[:] input not None, cnp.ndarray[cnp.npy_uint32] output not None):
   45032             :  */
   45033           3 :   __pyx_codeobj__44 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_flatten_to_array_uint32, 204, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__44)) __PYX_ERR(0, 204, __pyx_L1_error)
   45034             : 
   45035             :   /* "_csparsetools.pyx":214
   45036             :  *             output[pos] = row[j]
   45037             :  *             pos += 1
   45038             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45039             :  * @cython.wraparound(False)
   45040             :  * def _lil_flatten_to_array_int64(object[:] input not None, cnp.ndarray[cnp.npy_int64] output not None):
   45041             :  */
   45042           3 :   __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_flatten_to_array_int64, 214, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(0, 214, __pyx_L1_error)
   45043             : 
   45044             :   /* "_csparsetools.pyx":224
   45045             :  *             output[pos] = row[j]
   45046             :  *             pos += 1
   45047             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45048             :  * @cython.wraparound(False)
   45049             :  * def _lil_flatten_to_array_uint64(object[:] input not None, cnp.ndarray[cnp.npy_uint64] output not None):
   45050             :  */
   45051           3 :   __pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_flatten_to_array_uint64, 224, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(0, 224, __pyx_L1_error)
   45052             : 
   45053             :   /* "_csparsetools.pyx":234
   45054             :  *             output[pos] = row[j]
   45055             :  *             pos += 1
   45056             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45057             :  * @cython.wraparound(False)
   45058             :  * def _lil_flatten_to_array_float32(object[:] input not None, cnp.ndarray[cnp.npy_float32] output not None):
   45059             :  */
   45060           3 :   __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_flatten_to_array_float32, 234, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(0, 234, __pyx_L1_error)
   45061             : 
   45062             :   /* "_csparsetools.pyx":244
   45063             :  *             output[pos] = row[j]
   45064             :  *             pos += 1
   45065             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45066             :  * @cython.wraparound(False)
   45067             :  * def _lil_flatten_to_array_float64(object[:] input not None, cnp.ndarray[cnp.npy_float64] output not None):
   45068             :  */
   45069           3 :   __pyx_codeobj__48 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_flatten_to_array_float64, 244, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__48)) __PYX_ERR(0, 244, __pyx_L1_error)
   45070             : 
   45071             :   /* "_csparsetools.pyx":254
   45072             :  *             output[pos] = row[j]
   45073             :  *             pos += 1
   45074             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45075             :  * @cython.wraparound(False)
   45076             :  * def _lil_flatten_to_array_longdouble(object[:] input not None, cnp.ndarray[long double] output not None):
   45077             :  */
   45078           3 :   __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_flatten_to_array_longdouble, 254, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(0, 254, __pyx_L1_error)
   45079             : 
   45080             :   /* "_csparsetools.pyx":264
   45081             :  *             output[pos] = row[j]
   45082             :  *             pos += 1
   45083             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45084             :  * @cython.wraparound(False)
   45085             :  * def _lil_flatten_to_array_complex64(object[:] input not None, cnp.ndarray[float complex] output not None):
   45086             :  */
   45087           3 :   __pyx_codeobj__50 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_flatten_to_array_complex64, 264, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__50)) __PYX_ERR(0, 264, __pyx_L1_error)
   45088             : 
   45089             :   /* "_csparsetools.pyx":274
   45090             :  *             output[pos] = row[j]
   45091             :  *             pos += 1
   45092             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45093             :  * @cython.wraparound(False)
   45094             :  * def _lil_flatten_to_array_complex128(object[:] input not None, cnp.ndarray[double complex] output not None):
   45095             :  */
   45096           3 :   __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_flatten_to_array_complex128, 274, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(0, 274, __pyx_L1_error)
   45097             : 
   45098             :   /* "_csparsetools.pyx":284
   45099             :  *             output[pos] = row[j]
   45100             :  *             pos += 1
   45101             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45102             :  * @cython.wraparound(False)
   45103             :  * def _lil_flatten_to_array_clongdouble(object[:] input not None, cnp.ndarray[long double complex] output not None):
   45104             :  */
   45105           3 :   __pyx_codeobj__52 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_flatten_to_array_clongdoubl, 284, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__52)) __PYX_ERR(0, 284, __pyx_L1_error)
   45106             : 
   45107             :   /* "_csparsetools.pyx":316
   45108             :  * 
   45109             :  * 
   45110             :  * def lil_fancy_get(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   45111             :  *                   object[:] rows,
   45112             :  *                   object[:] datas,
   45113             :  */
   45114           3 :   __pyx_tuple__53 = PyTuple_Pack(8, __pyx_n_s_M, __pyx_n_s_N, __pyx_n_s_rows, __pyx_n_s_datas, __pyx_n_s_new_rows, __pyx_n_s_new_datas, __pyx_n_s_i_idx, __pyx_n_s_j_idx); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(0, 316, __pyx_L1_error)
   45115           3 :   __Pyx_GOTREF(__pyx_tuple__53);
   45116           3 :   __Pyx_GIVEREF(__pyx_tuple__53);
   45117           3 :   __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_get, 316, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(0, 316, __pyx_L1_error)
   45118             : 
   45119             :   /* "_csparsetools.pyx":340
   45120             :  *     return _LIL_FANCY_GET_DISPATCH[i_idx.dtype](M, N, rows, datas, new_rows, new_datas, i_idx, j_idx)
   45121             :  * 
   45122             :  * def _lil_fancy_get_int32(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   45123             :  *                             object[:] rows,
   45124             :  *                             object[:] datas,
   45125             :  */
   45126           3 :   __pyx_tuple__55 = PyTuple_Pack(15, __pyx_n_s_M, __pyx_n_s_N, __pyx_n_s_rows, __pyx_n_s_datas, __pyx_n_s_new_rows, __pyx_n_s_new_datas, __pyx_n_s_i_idx, __pyx_n_s_j_idx, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_value, __pyx_n_s_new_row, __pyx_n_s_new_data); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(0, 340, __pyx_L1_error)
   45127           3 :   __Pyx_GOTREF(__pyx_tuple__55);
   45128           3 :   __Pyx_GIVEREF(__pyx_tuple__55);
   45129           3 :   __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_get_int32, 340, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(0, 340, __pyx_L1_error)
   45130             : 
   45131             :   /* "_csparsetools.pyx":370
   45132             :  *         new_rows[x] = new_row
   45133             :  *         new_datas[x] = new_data
   45134             :  * def _lil_fancy_get_int64(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   45135             :  *                             object[:] rows,
   45136             :  *                             object[:] datas,
   45137             :  */
   45138           3 :   __pyx_codeobj__57 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_get_int64, 370, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__57)) __PYX_ERR(0, 370, __pyx_L1_error)
   45139             : 
   45140             :   /* "_csparsetools.pyx":411
   45141             :  * 
   45142             :  * 
   45143             :  * def lil_fancy_set(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   45144             :  *                   object[:] rows,
   45145             :  *                   object[:] data,
   45146             :  */
   45147           3 :   __pyx_tuple__58 = PyTuple_Pack(7, __pyx_n_s_M, __pyx_n_s_N, __pyx_n_s_rows, __pyx_n_s_data, __pyx_n_s_i_idx, __pyx_n_s_j_idx, __pyx_n_s_values); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(0, 411, __pyx_L1_error)
   45148           3 :   __Pyx_GOTREF(__pyx_tuple__58);
   45149           3 :   __Pyx_GIVEREF(__pyx_tuple__58);
   45150           3 :   __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__58, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set, 411, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(0, 411, __pyx_L1_error)
   45151             : 
   45152             :   /* "_csparsetools.pyx":439
   45153             :  *     return _LIL_FANCY_SET_DISPATCH[i_idx.dtype, values.dtype](M, N, rows, data, i_idx, j_idx, values)
   45154             :  * 
   45155             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45156             :  * @cython.wraparound(False)
   45157             :  * def _lil_fancy_set_int32_bool_(cnp.npy_intp M, cnp.npy_intp N,
   45158             :  */
   45159           3 :   __pyx_tuple__60 = PyTuple_Pack(11, __pyx_n_s_M, __pyx_n_s_N, __pyx_n_s_rows, __pyx_n_s_data, __pyx_n_s_i_idx, __pyx_n_s_j_idx, __pyx_n_s_values, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_i, __pyx_n_s_j); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(0, 439, __pyx_L1_error)
   45160           3 :   __Pyx_GOTREF(__pyx_tuple__60);
   45161           3 :   __Pyx_GIVEREF(__pyx_tuple__60);
   45162           3 :   __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int32_bool, 439, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(0, 439, __pyx_L1_error)
   45163             : 
   45164             :   /* "_csparsetools.pyx":455
   45165             :  *             j = j_idx[x,y]
   45166             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45167             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45168             :  * @cython.wraparound(False)
   45169             :  * def _lil_fancy_set_int32_int8(cnp.npy_intp M, cnp.npy_intp N,
   45170             :  */
   45171           3 :   __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int32_int8, 455, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(0, 455, __pyx_L1_error)
   45172             : 
   45173             :   /* "_csparsetools.pyx":471
   45174             :  *             j = j_idx[x,y]
   45175             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45176             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45177             :  * @cython.wraparound(False)
   45178             :  * def _lil_fancy_set_int32_uint8(cnp.npy_intp M, cnp.npy_intp N,
   45179             :  */
   45180           3 :   __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int32_uint8, 471, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(0, 471, __pyx_L1_error)
   45181             : 
   45182             :   /* "_csparsetools.pyx":487
   45183             :  *             j = j_idx[x,y]
   45184             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45185             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45186             :  * @cython.wraparound(False)
   45187             :  * def _lil_fancy_set_int32_int16(cnp.npy_intp M, cnp.npy_intp N,
   45188             :  */
   45189           3 :   __pyx_codeobj__64 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int32_int16, 487, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__64)) __PYX_ERR(0, 487, __pyx_L1_error)
   45190             : 
   45191             :   /* "_csparsetools.pyx":503
   45192             :  *             j = j_idx[x,y]
   45193             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45194             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45195             :  * @cython.wraparound(False)
   45196             :  * def _lil_fancy_set_int32_uint16(cnp.npy_intp M, cnp.npy_intp N,
   45197             :  */
   45198           3 :   __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int32_uint16, 503, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(0, 503, __pyx_L1_error)
   45199             : 
   45200             :   /* "_csparsetools.pyx":519
   45201             :  *             j = j_idx[x,y]
   45202             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45203             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45204             :  * @cython.wraparound(False)
   45205             :  * def _lil_fancy_set_int32_int32(cnp.npy_intp M, cnp.npy_intp N,
   45206             :  */
   45207           3 :   __pyx_codeobj__66 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int32_int32, 519, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__66)) __PYX_ERR(0, 519, __pyx_L1_error)
   45208             : 
   45209             :   /* "_csparsetools.pyx":535
   45210             :  *             j = j_idx[x,y]
   45211             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45212             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45213             :  * @cython.wraparound(False)
   45214             :  * def _lil_fancy_set_int32_uint32(cnp.npy_intp M, cnp.npy_intp N,
   45215             :  */
   45216           3 :   __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int32_uint32, 535, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(0, 535, __pyx_L1_error)
   45217             : 
   45218             :   /* "_csparsetools.pyx":551
   45219             :  *             j = j_idx[x,y]
   45220             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45221             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45222             :  * @cython.wraparound(False)
   45223             :  * def _lil_fancy_set_int32_int64(cnp.npy_intp M, cnp.npy_intp N,
   45224             :  */
   45225           3 :   __pyx_codeobj__68 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int32_int64, 551, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__68)) __PYX_ERR(0, 551, __pyx_L1_error)
   45226             : 
   45227             :   /* "_csparsetools.pyx":567
   45228             :  *             j = j_idx[x,y]
   45229             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45230             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45231             :  * @cython.wraparound(False)
   45232             :  * def _lil_fancy_set_int32_uint64(cnp.npy_intp M, cnp.npy_intp N,
   45233             :  */
   45234           3 :   __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int32_uint64, 567, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(0, 567, __pyx_L1_error)
   45235             : 
   45236             :   /* "_csparsetools.pyx":583
   45237             :  *             j = j_idx[x,y]
   45238             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45239             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45240             :  * @cython.wraparound(False)
   45241             :  * def _lil_fancy_set_int32_float32(cnp.npy_intp M, cnp.npy_intp N,
   45242             :  */
   45243           3 :   __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int32_float32, 583, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(0, 583, __pyx_L1_error)
   45244             : 
   45245             :   /* "_csparsetools.pyx":599
   45246             :  *             j = j_idx[x,y]
   45247             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45248             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45249             :  * @cython.wraparound(False)
   45250             :  * def _lil_fancy_set_int32_float64(cnp.npy_intp M, cnp.npy_intp N,
   45251             :  */
   45252           3 :   __pyx_codeobj__71 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int32_float64, 599, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__71)) __PYX_ERR(0, 599, __pyx_L1_error)
   45253             : 
   45254             :   /* "_csparsetools.pyx":615
   45255             :  *             j = j_idx[x,y]
   45256             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45257             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45258             :  * @cython.wraparound(False)
   45259             :  * def _lil_fancy_set_int32_longdouble(cnp.npy_intp M, cnp.npy_intp N,
   45260             :  */
   45261           3 :   __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int32_longdouble, 615, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(0, 615, __pyx_L1_error)
   45262             : 
   45263             :   /* "_csparsetools.pyx":631
   45264             :  *             j = j_idx[x,y]
   45265             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45266             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45267             :  * @cython.wraparound(False)
   45268             :  * def _lil_fancy_set_int32_complex64(cnp.npy_intp M, cnp.npy_intp N,
   45269             :  */
   45270           3 :   __pyx_codeobj__73 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int32_complex64, 631, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__73)) __PYX_ERR(0, 631, __pyx_L1_error)
   45271             : 
   45272             :   /* "_csparsetools.pyx":647
   45273             :  *             j = j_idx[x,y]
   45274             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45275             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45276             :  * @cython.wraparound(False)
   45277             :  * def _lil_fancy_set_int32_complex128(cnp.npy_intp M, cnp.npy_intp N,
   45278             :  */
   45279           3 :   __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int32_complex128, 647, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(0, 647, __pyx_L1_error)
   45280             : 
   45281             :   /* "_csparsetools.pyx":663
   45282             :  *             j = j_idx[x,y]
   45283             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45284             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45285             :  * @cython.wraparound(False)
   45286             :  * def _lil_fancy_set_int32_clongdouble(cnp.npy_intp M, cnp.npy_intp N,
   45287             :  */
   45288           3 :   __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int32_clongdouble, 663, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) __PYX_ERR(0, 663, __pyx_L1_error)
   45289             : 
   45290             :   /* "_csparsetools.pyx":679
   45291             :  *             j = j_idx[x,y]
   45292             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45293             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45294             :  * @cython.wraparound(False)
   45295             :  * def _lil_fancy_set_int64_bool_(cnp.npy_intp M, cnp.npy_intp N,
   45296             :  */
   45297           3 :   __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int64_bool, 679, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(0, 679, __pyx_L1_error)
   45298             : 
   45299             :   /* "_csparsetools.pyx":695
   45300             :  *             j = j_idx[x,y]
   45301             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45302             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45303             :  * @cython.wraparound(False)
   45304             :  * def _lil_fancy_set_int64_int8(cnp.npy_intp M, cnp.npy_intp N,
   45305             :  */
   45306           3 :   __pyx_codeobj__77 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int64_int8, 695, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__77)) __PYX_ERR(0, 695, __pyx_L1_error)
   45307             : 
   45308             :   /* "_csparsetools.pyx":711
   45309             :  *             j = j_idx[x,y]
   45310             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45311             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45312             :  * @cython.wraparound(False)
   45313             :  * def _lil_fancy_set_int64_uint8(cnp.npy_intp M, cnp.npy_intp N,
   45314             :  */
   45315           3 :   __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int64_uint8, 711, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(0, 711, __pyx_L1_error)
   45316             : 
   45317             :   /* "_csparsetools.pyx":727
   45318             :  *             j = j_idx[x,y]
   45319             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45320             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45321             :  * @cython.wraparound(False)
   45322             :  * def _lil_fancy_set_int64_int16(cnp.npy_intp M, cnp.npy_intp N,
   45323             :  */
   45324           3 :   __pyx_codeobj__79 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int64_int16, 727, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__79)) __PYX_ERR(0, 727, __pyx_L1_error)
   45325             : 
   45326             :   /* "_csparsetools.pyx":743
   45327             :  *             j = j_idx[x,y]
   45328             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45329             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45330             :  * @cython.wraparound(False)
   45331             :  * def _lil_fancy_set_int64_uint16(cnp.npy_intp M, cnp.npy_intp N,
   45332             :  */
   45333           3 :   __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int64_uint16, 743, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(0, 743, __pyx_L1_error)
   45334             : 
   45335             :   /* "_csparsetools.pyx":759
   45336             :  *             j = j_idx[x,y]
   45337             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45338             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45339             :  * @cython.wraparound(False)
   45340             :  * def _lil_fancy_set_int64_int32(cnp.npy_intp M, cnp.npy_intp N,
   45341             :  */
   45342           3 :   __pyx_codeobj__81 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int64_int32, 759, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__81)) __PYX_ERR(0, 759, __pyx_L1_error)
   45343             : 
   45344             :   /* "_csparsetools.pyx":775
   45345             :  *             j = j_idx[x,y]
   45346             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45347             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45348             :  * @cython.wraparound(False)
   45349             :  * def _lil_fancy_set_int64_uint32(cnp.npy_intp M, cnp.npy_intp N,
   45350             :  */
   45351           3 :   __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int64_uint32, 775, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(0, 775, __pyx_L1_error)
   45352             : 
   45353             :   /* "_csparsetools.pyx":791
   45354             :  *             j = j_idx[x,y]
   45355             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45356             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45357             :  * @cython.wraparound(False)
   45358             :  * def _lil_fancy_set_int64_int64(cnp.npy_intp M, cnp.npy_intp N,
   45359             :  */
   45360           3 :   __pyx_codeobj__83 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int64_int64, 791, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__83)) __PYX_ERR(0, 791, __pyx_L1_error)
   45361             : 
   45362             :   /* "_csparsetools.pyx":807
   45363             :  *             j = j_idx[x,y]
   45364             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45365             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45366             :  * @cython.wraparound(False)
   45367             :  * def _lil_fancy_set_int64_uint64(cnp.npy_intp M, cnp.npy_intp N,
   45368             :  */
   45369           3 :   __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int64_uint64, 807, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(0, 807, __pyx_L1_error)
   45370             : 
   45371             :   /* "_csparsetools.pyx":823
   45372             :  *             j = j_idx[x,y]
   45373             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45374             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45375             :  * @cython.wraparound(False)
   45376             :  * def _lil_fancy_set_int64_float32(cnp.npy_intp M, cnp.npy_intp N,
   45377             :  */
   45378           3 :   __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int64_float32, 823, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__85)) __PYX_ERR(0, 823, __pyx_L1_error)
   45379             : 
   45380             :   /* "_csparsetools.pyx":839
   45381             :  *             j = j_idx[x,y]
   45382             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45383             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45384             :  * @cython.wraparound(False)
   45385             :  * def _lil_fancy_set_int64_float64(cnp.npy_intp M, cnp.npy_intp N,
   45386             :  */
   45387           3 :   __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int64_float64, 839, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(0, 839, __pyx_L1_error)
   45388             : 
   45389             :   /* "_csparsetools.pyx":855
   45390             :  *             j = j_idx[x,y]
   45391             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45392             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45393             :  * @cython.wraparound(False)
   45394             :  * def _lil_fancy_set_int64_longdouble(cnp.npy_intp M, cnp.npy_intp N,
   45395             :  */
   45396           3 :   __pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int64_longdouble, 855, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(0, 855, __pyx_L1_error)
   45397             : 
   45398             :   /* "_csparsetools.pyx":871
   45399             :  *             j = j_idx[x,y]
   45400             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45401             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45402             :  * @cython.wraparound(False)
   45403             :  * def _lil_fancy_set_int64_complex64(cnp.npy_intp M, cnp.npy_intp N,
   45404             :  */
   45405           3 :   __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int64_complex64, 871, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(0, 871, __pyx_L1_error)
   45406             : 
   45407             :   /* "_csparsetools.pyx":887
   45408             :  *             j = j_idx[x,y]
   45409             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45410             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45411             :  * @cython.wraparound(False)
   45412             :  * def _lil_fancy_set_int64_complex128(cnp.npy_intp M, cnp.npy_intp N,
   45413             :  */
   45414           3 :   __pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int64_complex128, 887, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(0, 887, __pyx_L1_error)
   45415             : 
   45416             :   /* "_csparsetools.pyx":903
   45417             :  *             j = j_idx[x,y]
   45418             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   45419             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   45420             :  * @cython.wraparound(False)
   45421             :  * def _lil_fancy_set_int64_clongdouble(cnp.npy_intp M, cnp.npy_intp N,
   45422             :  */
   45423           3 :   __pyx_codeobj__90 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_fancy_set_int64_clongdouble, 903, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) __PYX_ERR(0, 903, __pyx_L1_error)
   45424             : 
   45425             :   /* "_csparsetools.pyx":958
   45426             :  * 
   45427             :  * 
   45428             :  * def lil_get_row_ranges(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   45429             :  *                        const obj_fused[:] rows, const obj_fused[:] datas,
   45430             :  *                        object[:] new_rows, object[:] new_datas,
   45431             :  */
   45432           3 :   __pyx_tuple__91 = PyTuple_Pack(23, __pyx_n_s_M, __pyx_n_s_N, __pyx_n_s_rows, __pyx_n_s_datas, __pyx_n_s_new_rows, __pyx_n_s_new_datas, __pyx_n_s_irows, __pyx_n_s_j_start, __pyx_n_s_j_stop, __pyx_n_s_j_stride, __pyx_n_s_nj, __pyx_n_s_nk, __pyx_n_s_k, __pyx_n_s_j, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_m, __pyx_n_s_r, __pyx_n_s_p, __pyx_n_s_cur_row, __pyx_n_s_cur_data, __pyx_n_s_new_row, __pyx_n_s_new_data); if (unlikely(!__pyx_tuple__91)) __PYX_ERR(0, 958, __pyx_L1_error)
   45433           3 :   __Pyx_GOTREF(__pyx_tuple__91);
   45434           3 :   __Pyx_GIVEREF(__pyx_tuple__91);
   45435           3 :   __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(11, 0, 0, 23, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__91, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_scipy_sparse__csparsetools_pyx, __pyx_n_s_lil_get_row_ranges, 958, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(0, 958, __pyx_L1_error)
   45436             :   __Pyx_RefNannyFinishContext();
   45437             :   return 0;
   45438             :   __pyx_L1_error:;
   45439             :   __Pyx_RefNannyFinishContext();
   45440             :   return -1;
   45441             : }
   45442             : /* #### Code section: init_constants ### */
   45443             : 
   45444           3 : static CYTHON_SMALL_CODE int __Pyx_InitConstants(void) {
   45445           3 :   __pyx_umethod_PyDict_Type_get.type = (PyObject*)&PyDict_Type;
   45446           3 :   __pyx_umethod_PyDict_Type_get.method_name = &__pyx_n_s_get;
   45447           3 :   __pyx_umethod_PyDict_Type_values.type = (PyObject*)&PyDict_Type;
   45448           3 :   __pyx_umethod_PyDict_Type_values.method_name = &__pyx_n_s_values;
   45449           3 :   if (__Pyx_CreateStringTabAndInitStrings() < 0) __PYX_ERR(0, 1, __pyx_L1_error);
   45450           3 :   __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error)
   45451           3 :   __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error)
   45452           3 :   __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error)
   45453           3 :   __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(0, 1, __pyx_L1_error)
   45454           3 :   __pyx_int_11 = PyInt_FromLong(11); if (unlikely(!__pyx_int_11)) __PYX_ERR(0, 1, __pyx_L1_error)
   45455           3 :   __pyx_int_112105877 = PyInt_FromLong(112105877L); if (unlikely(!__pyx_int_112105877)) __PYX_ERR(0, 1, __pyx_L1_error)
   45456           3 :   __pyx_int_136983863 = PyInt_FromLong(136983863L); if (unlikely(!__pyx_int_136983863)) __PYX_ERR(0, 1, __pyx_L1_error)
   45457           3 :   __pyx_int_184977713 = PyInt_FromLong(184977713L); if (unlikely(!__pyx_int_184977713)) __PYX_ERR(0, 1, __pyx_L1_error)
   45458           3 :   __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error)
   45459             :   return 0;
   45460             :   __pyx_L1_error:;
   45461             :   return -1;
   45462             : }
   45463             : /* #### Code section: init_globals ### */
   45464             : 
   45465           3 : static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
   45466             :   /* AssertionsEnabled.init */
   45467           3 :   if (likely(__Pyx_init_assertions_enabled() == 0)); else
   45468             : 
   45469           0 : if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
   45470             : 
   45471             :   return 0;
   45472           0 :   __pyx_L1_error:;
   45473           0 :   return -1;
   45474             : }
   45475             : /* #### Code section: init_module ### */
   45476             : 
   45477             : static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/
   45478             : static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/
   45479             : static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/
   45480             : static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/
   45481             : static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/
   45482             : static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/
   45483             : static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/
   45484             : 
   45485           3 : static int __Pyx_modinit_global_init_code(void) {
   45486             :   __Pyx_RefNannyDeclarations
   45487           3 :   __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
   45488             :   /*--- Global init code ---*/
   45489           3 :   __pyx_v_13_csparsetools__LIL_GET_LENGTHS_DISPATCH = ((PyObject*)Py_None); Py_INCREF(Py_None);
   45490           3 :   __pyx_v_13_csparsetools__LIL_FLATTEN_TO_ARRAY_DISPATCH = ((PyObject*)Py_None); Py_INCREF(Py_None);
   45491           3 :   __pyx_v_13_csparsetools__LIL_FANCY_GET_DISPATCH = ((PyObject*)Py_None); Py_INCREF(Py_None);
   45492           3 :   __pyx_v_13_csparsetools__LIL_FANCY_SET_DISPATCH = ((PyObject*)Py_None); Py_INCREF(Py_None);
   45493           3 :   __pyx_collections_abc_Sequence = Py_None; Py_INCREF(Py_None);
   45494           3 :   generic = Py_None; Py_INCREF(Py_None);
   45495           3 :   strided = Py_None; Py_INCREF(Py_None);
   45496           3 :   indirect = Py_None; Py_INCREF(Py_None);
   45497           3 :   contiguous = Py_None; Py_INCREF(Py_None);
   45498           3 :   indirect_contiguous = Py_None; Py_INCREF(Py_None);
   45499           3 :   __Pyx_RefNannyFinishContext();
   45500           3 :   return 0;
   45501             : }
   45502             : 
   45503             : static int __Pyx_modinit_variable_export_code(void) {
   45504             :   __Pyx_RefNannyDeclarations
   45505             :   __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
   45506             :   /*--- Variable export code ---*/
   45507             :   __Pyx_RefNannyFinishContext();
   45508             :   return 0;
   45509             : }
   45510             : 
   45511             : static int __Pyx_modinit_function_export_code(void) {
   45512             :   __Pyx_RefNannyDeclarations
   45513             :   __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
   45514             :   /*--- Function export code ---*/
   45515             :   __Pyx_RefNannyFinishContext();
   45516             :   return 0;
   45517             : }
   45518             : 
   45519           3 : static int __Pyx_modinit_type_init_code(void) {
   45520             :   __Pyx_RefNannyDeclarations
   45521           3 :   PyObject *__pyx_t_1 = NULL;
   45522           3 :   int __pyx_lineno = 0;
   45523           3 :   const char *__pyx_filename = NULL;
   45524           3 :   int __pyx_clineno = 0;
   45525           3 :   __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
   45526             :   /*--- Type init code ---*/
   45527           3 :   __pyx_vtabptr_array = &__pyx_vtable_array;
   45528           3 :   __pyx_vtable_array.get_memview = (PyObject *(*)(struct __pyx_array_obj *))__pyx_array_get_memview;
   45529             :   #if CYTHON_USE_TYPE_SPECS
   45530             :   __pyx_array_type = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type___pyx_array_spec, NULL); if (unlikely(!__pyx_array_type)) __PYX_ERR(1, 114, __pyx_L1_error)
   45531             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   45532             :   __pyx_array_type->tp_as_buffer = &__pyx_tp_as_buffer_array;
   45533             :   if (!__pyx_array_type->tp_as_buffer->bf_releasebuffer && __pyx_array_type->tp_base->tp_as_buffer && __pyx_array_type->tp_base->tp_as_buffer->bf_releasebuffer) {
   45534             :     __pyx_array_type->tp_as_buffer->bf_releasebuffer = __pyx_array_type->tp_base->tp_as_buffer->bf_releasebuffer;
   45535             :   }
   45536             :   #elif defined(Py_bf_getbuffer) && defined(Py_bf_releasebuffer)
   45537             :   /* PY_VERSION_HEX >= 0x03090000 || Py_LIMITED_API >= 0x030B0000 */
   45538             :   #elif defined(_MSC_VER)
   45539             :   #pragma message ("The buffer protocol is not supported in the Limited C-API < 3.11.")
   45540             :   #else
   45541             :   #warning "The buffer protocol is not supported in the Limited C-API < 3.11."
   45542             :   #endif
   45543             :   if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_array_spec, __pyx_array_type) < 0) __PYX_ERR(1, 114, __pyx_L1_error)
   45544             :   #else
   45545           3 :   __pyx_array_type = &__pyx_type___pyx_array;
   45546             :   #endif
   45547             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   45548             :   #endif
   45549             :   #if !CYTHON_USE_TYPE_SPECS
   45550           3 :   if (__Pyx_PyType_Ready(__pyx_array_type) < 0) __PYX_ERR(1, 114, __pyx_L1_error)
   45551             :   #endif
   45552             :   #if PY_MAJOR_VERSION < 3
   45553             :   __pyx_array_type->tp_print = 0;
   45554             :   #endif
   45555           3 :   if (__Pyx_SetVtable(__pyx_array_type, __pyx_vtabptr_array) < 0) __PYX_ERR(1, 114, __pyx_L1_error)
   45556             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   45557           3 :   if (__Pyx_MergeVtables(__pyx_array_type) < 0) __PYX_ERR(1, 114, __pyx_L1_error)
   45558             :   #endif
   45559             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   45560           3 :   if (__Pyx_setup_reduce((PyObject *) __pyx_array_type) < 0) __PYX_ERR(1, 114, __pyx_L1_error)
   45561             :   #endif
   45562             :   #if CYTHON_USE_TYPE_SPECS
   45563             :   __pyx_MemviewEnum_type = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type___pyx_MemviewEnum_spec, NULL); if (unlikely(!__pyx_MemviewEnum_type)) __PYX_ERR(1, 302, __pyx_L1_error)
   45564             :   if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_MemviewEnum_spec, __pyx_MemviewEnum_type) < 0) __PYX_ERR(1, 302, __pyx_L1_error)
   45565             :   #else
   45566           3 :   __pyx_MemviewEnum_type = &__pyx_type___pyx_MemviewEnum;
   45567             :   #endif
   45568             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   45569             :   #endif
   45570             :   #if !CYTHON_USE_TYPE_SPECS
   45571           3 :   if (__Pyx_PyType_Ready(__pyx_MemviewEnum_type) < 0) __PYX_ERR(1, 302, __pyx_L1_error)
   45572             :   #endif
   45573             :   #if PY_MAJOR_VERSION < 3
   45574             :   __pyx_MemviewEnum_type->tp_print = 0;
   45575             :   #endif
   45576             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   45577           3 :   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_MemviewEnum_type->tp_dictoffset && __pyx_MemviewEnum_type->tp_getattro == PyObject_GenericGetAttr)) {
   45578           3 :     __pyx_MemviewEnum_type->tp_getattro = __Pyx_PyObject_GenericGetAttr;
   45579             :   }
   45580             :   #endif
   45581             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   45582           3 :   if (__Pyx_setup_reduce((PyObject *) __pyx_MemviewEnum_type) < 0) __PYX_ERR(1, 302, __pyx_L1_error)
   45583             :   #endif
   45584           3 :   __pyx_vtabptr_memoryview = &__pyx_vtable_memoryview;
   45585           3 :   __pyx_vtable_memoryview.get_item_pointer = (char *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_get_item_pointer;
   45586           3 :   __pyx_vtable_memoryview.is_slice = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_is_slice;
   45587           3 :   __pyx_vtable_memoryview.setitem_slice_assignment = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_slice_assignment;
   45588           3 :   __pyx_vtable_memoryview.setitem_slice_assign_scalar = (PyObject *(*)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_setitem_slice_assign_scalar;
   45589           3 :   __pyx_vtable_memoryview.setitem_indexed = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_indexed;
   45590           3 :   __pyx_vtable_memoryview.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryview_convert_item_to_object;
   45591           3 :   __pyx_vtable_memoryview.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryview_assign_item_from_object;
   45592           3 :   __pyx_vtable_memoryview._get_base = (PyObject *(*)(struct __pyx_memoryview_obj *))__pyx_memoryview__get_base;
   45593             :   #if CYTHON_USE_TYPE_SPECS
   45594             :   __pyx_memoryview_type = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type___pyx_memoryview_spec, NULL); if (unlikely(!__pyx_memoryview_type)) __PYX_ERR(1, 337, __pyx_L1_error)
   45595             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   45596             :   __pyx_memoryview_type->tp_as_buffer = &__pyx_tp_as_buffer_memoryview;
   45597             :   if (!__pyx_memoryview_type->tp_as_buffer->bf_releasebuffer && __pyx_memoryview_type->tp_base->tp_as_buffer && __pyx_memoryview_type->tp_base->tp_as_buffer->bf_releasebuffer) {
   45598             :     __pyx_memoryview_type->tp_as_buffer->bf_releasebuffer = __pyx_memoryview_type->tp_base->tp_as_buffer->bf_releasebuffer;
   45599             :   }
   45600             :   #elif defined(Py_bf_getbuffer) && defined(Py_bf_releasebuffer)
   45601             :   /* PY_VERSION_HEX >= 0x03090000 || Py_LIMITED_API >= 0x030B0000 */
   45602             :   #elif defined(_MSC_VER)
   45603             :   #pragma message ("The buffer protocol is not supported in the Limited C-API < 3.11.")
   45604             :   #else
   45605             :   #warning "The buffer protocol is not supported in the Limited C-API < 3.11."
   45606             :   #endif
   45607             :   if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_memoryview_spec, __pyx_memoryview_type) < 0) __PYX_ERR(1, 337, __pyx_L1_error)
   45608             :   #else
   45609           3 :   __pyx_memoryview_type = &__pyx_type___pyx_memoryview;
   45610             :   #endif
   45611             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   45612             :   #endif
   45613             :   #if !CYTHON_USE_TYPE_SPECS
   45614           3 :   if (__Pyx_PyType_Ready(__pyx_memoryview_type) < 0) __PYX_ERR(1, 337, __pyx_L1_error)
   45615             :   #endif
   45616             :   #if PY_MAJOR_VERSION < 3
   45617             :   __pyx_memoryview_type->tp_print = 0;
   45618             :   #endif
   45619             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   45620           3 :   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_memoryview_type->tp_dictoffset && __pyx_memoryview_type->tp_getattro == PyObject_GenericGetAttr)) {
   45621           3 :     __pyx_memoryview_type->tp_getattro = __Pyx_PyObject_GenericGetAttr;
   45622             :   }
   45623             :   #endif
   45624           3 :   if (__Pyx_SetVtable(__pyx_memoryview_type, __pyx_vtabptr_memoryview) < 0) __PYX_ERR(1, 337, __pyx_L1_error)
   45625             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   45626           3 :   if (__Pyx_MergeVtables(__pyx_memoryview_type) < 0) __PYX_ERR(1, 337, __pyx_L1_error)
   45627             :   #endif
   45628             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   45629           3 :   if (__Pyx_setup_reduce((PyObject *) __pyx_memoryview_type) < 0) __PYX_ERR(1, 337, __pyx_L1_error)
   45630             :   #endif
   45631           3 :   __pyx_vtabptr__memoryviewslice = &__pyx_vtable__memoryviewslice;
   45632           3 :   __pyx_vtable__memoryviewslice.__pyx_base = *__pyx_vtabptr_memoryview;
   45633           3 :   __pyx_vtable__memoryviewslice.__pyx_base.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryviewslice_convert_item_to_object;
   45634           3 :   __pyx_vtable__memoryviewslice.__pyx_base.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryviewslice_assign_item_from_object;
   45635           3 :   __pyx_vtable__memoryviewslice.__pyx_base._get_base = (PyObject *(*)(struct __pyx_memoryview_obj *))__pyx_memoryviewslice__get_base;
   45636             :   #if CYTHON_USE_TYPE_SPECS
   45637             :   __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_memoryview_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 952, __pyx_L1_error)
   45638             :   __Pyx_GOTREF(__pyx_t_1);
   45639             :   __pyx_memoryviewslice_type = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type___pyx_memoryviewslice_spec, __pyx_t_1);
   45640             :   __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
   45641             :   if (unlikely(!__pyx_memoryviewslice_type)) __PYX_ERR(1, 952, __pyx_L1_error)
   45642             :   if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_memoryviewslice_spec, __pyx_memoryviewslice_type) < 0) __PYX_ERR(1, 952, __pyx_L1_error)
   45643             :   #else
   45644           3 :   __pyx_memoryviewslice_type = &__pyx_type___pyx_memoryviewslice;
   45645             :   #endif
   45646             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   45647           3 :   __pyx_memoryviewslice_type->tp_base = __pyx_memoryview_type;
   45648             :   #endif
   45649             :   #if !CYTHON_USE_TYPE_SPECS
   45650           3 :   if (__Pyx_PyType_Ready(__pyx_memoryviewslice_type) < 0) __PYX_ERR(1, 952, __pyx_L1_error)
   45651             :   #endif
   45652             :   #if PY_MAJOR_VERSION < 3
   45653             :   __pyx_memoryviewslice_type->tp_print = 0;
   45654             :   #endif
   45655             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   45656           3 :   if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_memoryviewslice_type->tp_dictoffset && __pyx_memoryviewslice_type->tp_getattro == PyObject_GenericGetAttr)) {
   45657           3 :     __pyx_memoryviewslice_type->tp_getattro = __Pyx_PyObject_GenericGetAttr;
   45658             :   }
   45659             :   #endif
   45660           3 :   if (__Pyx_SetVtable(__pyx_memoryviewslice_type, __pyx_vtabptr__memoryviewslice) < 0) __PYX_ERR(1, 952, __pyx_L1_error)
   45661             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   45662           3 :   if (__Pyx_MergeVtables(__pyx_memoryviewslice_type) < 0) __PYX_ERR(1, 952, __pyx_L1_error)
   45663             :   #endif
   45664             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   45665           3 :   if (__Pyx_setup_reduce((PyObject *) __pyx_memoryviewslice_type) < 0) __PYX_ERR(1, 952, __pyx_L1_error)
   45666             :   #endif
   45667             :   __Pyx_RefNannyFinishContext();
   45668             :   return 0;
   45669           0 :   __pyx_L1_error:;
   45670           0 :   __Pyx_XDECREF(__pyx_t_1);
   45671           0 :   __Pyx_RefNannyFinishContext();
   45672           0 :   return -1;
   45673             : }
   45674             : 
   45675           3 : static int __Pyx_modinit_type_import_code(void) {
   45676             :   __Pyx_RefNannyDeclarations
   45677           3 :   PyObject *__pyx_t_1 = NULL;
   45678           3 :   int __pyx_lineno = 0;
   45679           3 :   const char *__pyx_filename = NULL;
   45680           3 :   int __pyx_clineno = 0;
   45681           3 :   __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
   45682             :   /*--- Type import code ---*/
   45683           3 :   __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error)
   45684           3 :   __Pyx_GOTREF(__pyx_t_1);
   45685           3 :   __pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_0_11(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", 
   45686             :   #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
   45687             :   sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyTypeObject),
   45688             :   #elif CYTHON_COMPILING_IN_LIMITED_API
   45689             :   sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyTypeObject),
   45690             :   #else
   45691             :   sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyHeapTypeObject),
   45692             :   #endif
   45693           3 :   __Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error)
   45694           3 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   45695           3 :   __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 271, __pyx_L1_error)
   45696           3 :   __Pyx_GOTREF(__pyx_t_1);
   45697           3 :   __pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArray_Descr),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 271, __pyx_L1_error)
   45698           3 :   __pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 316, __pyx_L1_error)
   45699           3 :   __pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayMultiIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 320, __pyx_L1_error)
   45700           3 :   __pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 359, __pyx_L1_error)
   45701           3 :   __pyx_ptype_5numpy_generic = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 847, __pyx_L1_error)
   45702           3 :   __pyx_ptype_5numpy_number = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "number", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 849, __pyx_L1_error)
   45703           3 :   __pyx_ptype_5numpy_integer = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 851, __pyx_L1_error)
   45704           3 :   __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 853, __pyx_L1_error)
   45705           3 :   __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 855, __pyx_L1_error)
   45706           3 :   __pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 857, __pyx_L1_error)
   45707           3 :   __pyx_ptype_5numpy_floating = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 859, __pyx_L1_error)
   45708           3 :   __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 861, __pyx_L1_error)
   45709           3 :   __pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 863, __pyx_L1_error)
   45710           3 :   __pyx_ptype_5numpy_character = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "character", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 865, __pyx_L1_error)
   45711           3 :   __pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyUFuncObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 929, __pyx_L1_error)
   45712           3 :   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   45713             :   __Pyx_RefNannyFinishContext();
   45714             :   return 0;
   45715           0 :   __pyx_L1_error:;
   45716           0 :   __Pyx_XDECREF(__pyx_t_1);
   45717           0 :   __Pyx_RefNannyFinishContext();
   45718           0 :   return -1;
   45719             : }
   45720             : 
   45721             : static int __Pyx_modinit_variable_import_code(void) {
   45722             :   __Pyx_RefNannyDeclarations
   45723             :   __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
   45724             :   /*--- Variable import code ---*/
   45725             :   __Pyx_RefNannyFinishContext();
   45726             :   return 0;
   45727             : }
   45728             : 
   45729             : static int __Pyx_modinit_function_import_code(void) {
   45730             :   __Pyx_RefNannyDeclarations
   45731             :   __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
   45732             :   /*--- Function import code ---*/
   45733             :   __Pyx_RefNannyFinishContext();
   45734             :   return 0;
   45735             : }
   45736             : 
   45737             : 
   45738             : #if PY_MAJOR_VERSION >= 3
   45739             : #if CYTHON_PEP489_MULTI_PHASE_INIT
   45740             : static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
   45741             : static int __pyx_pymod_exec__csparsetools(PyObject* module); /*proto*/
   45742             : static PyModuleDef_Slot __pyx_moduledef_slots[] = {
   45743             :   {Py_mod_create, (void*)__pyx_pymod_create},
   45744             :   {Py_mod_exec, (void*)__pyx_pymod_exec__csparsetools},
   45745             :   {0, NULL}
   45746             : };
   45747             : #endif
   45748             : 
   45749             : #ifdef __cplusplus
   45750             : namespace {
   45751             :   struct PyModuleDef __pyx_moduledef =
   45752             :   #else
   45753             :   static struct PyModuleDef __pyx_moduledef =
   45754             :   #endif
   45755             :   {
   45756             :       PyModuleDef_HEAD_INIT,
   45757             :       "_csparsetools",
   45758             :       __pyx_k_Fast_snippets_for_LIL_matrices, /* m_doc */
   45759             :     #if CYTHON_PEP489_MULTI_PHASE_INIT
   45760             :       0, /* m_size */
   45761             :     #elif CYTHON_USE_MODULE_STATE
   45762             :       sizeof(__pyx_mstate), /* m_size */
   45763             :     #else
   45764             :       -1, /* m_size */
   45765             :     #endif
   45766             :       __pyx_methods /* m_methods */,
   45767             :     #if CYTHON_PEP489_MULTI_PHASE_INIT
   45768             :       __pyx_moduledef_slots, /* m_slots */
   45769             :     #else
   45770             :       NULL, /* m_reload */
   45771             :     #endif
   45772             :     #if CYTHON_USE_MODULE_STATE
   45773             :       __pyx_m_traverse, /* m_traverse */
   45774             :       __pyx_m_clear, /* m_clear */
   45775             :       NULL /* m_free */
   45776             :     #else
   45777             :       NULL, /* m_traverse */
   45778             :       NULL, /* m_clear */
   45779             :       NULL /* m_free */
   45780             :     #endif
   45781             :   };
   45782             :   #ifdef __cplusplus
   45783             : } /* anonymous namespace */
   45784             : #endif
   45785             : #endif
   45786             : 
   45787             : #ifndef CYTHON_NO_PYINIT_EXPORT
   45788             : #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
   45789             : #elif PY_MAJOR_VERSION < 3
   45790             : #ifdef __cplusplus
   45791             : #define __Pyx_PyMODINIT_FUNC extern "C" void
   45792             : #else
   45793             : #define __Pyx_PyMODINIT_FUNC void
   45794             : #endif
   45795             : #else
   45796             : #ifdef __cplusplus
   45797             : #define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
   45798             : #else
   45799             : #define __Pyx_PyMODINIT_FUNC PyObject *
   45800             : #endif
   45801             : #endif
   45802             : 
   45803             : 
   45804             : #if PY_MAJOR_VERSION < 3
   45805             : __Pyx_PyMODINIT_FUNC init_csparsetools(void) CYTHON_SMALL_CODE; /*proto*/
   45806             : __Pyx_PyMODINIT_FUNC init_csparsetools(void)
   45807             : #else
   45808             : __Pyx_PyMODINIT_FUNC PyInit__csparsetools(void) CYTHON_SMALL_CODE; /*proto*/
   45809           3 : __Pyx_PyMODINIT_FUNC PyInit__csparsetools(void)
   45810             : #if CYTHON_PEP489_MULTI_PHASE_INIT
   45811             : {
   45812           3 :   return PyModuleDef_Init(&__pyx_moduledef);
   45813             : }
   45814           3 : static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
   45815             :     #if PY_VERSION_HEX >= 0x030700A1
   45816           3 :     static PY_INT64_T main_interpreter_id = -1;
   45817           3 :     PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
   45818           3 :     if (main_interpreter_id == -1) {
   45819           3 :         main_interpreter_id = current_id;
   45820           6 :         return (unlikely(current_id == -1)) ? -1 : 0;
   45821           0 :     } else if (unlikely(main_interpreter_id != current_id))
   45822             :     #else
   45823             :     static PyInterpreterState *main_interpreter = NULL;
   45824             :     PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
   45825             :     if (!main_interpreter) {
   45826             :         main_interpreter = current_interpreter;
   45827             :     } else if (unlikely(main_interpreter != current_interpreter))
   45828             :     #endif
   45829             :     {
   45830           0 :         PyErr_SetString(
   45831             :             PyExc_ImportError,
   45832             :             "Interpreter change detected - this module can only be loaded into one interpreter per process.");
   45833           0 :         return -1;
   45834             :     }
   45835             :     return 0;
   45836             : }
   45837             : #if CYTHON_COMPILING_IN_LIMITED_API
   45838             : static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *module, const char* from_name, const char* to_name, int allow_none)
   45839             : #else
   45840          12 : static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none)
   45841             : #endif
   45842             : {
   45843          12 :     PyObject *value = PyObject_GetAttrString(spec, from_name);
   45844          12 :     int result = 0;
   45845          12 :     if (likely(value)) {
   45846          12 :         if (allow_none || value != Py_None) {
   45847             : #if CYTHON_COMPILING_IN_LIMITED_API
   45848             :             result = PyModule_AddObject(module, to_name, value);
   45849             : #else
   45850           9 :             result = PyDict_SetItemString(moddict, to_name, value);
   45851             : #endif
   45852             :         }
   45853          12 :         Py_DECREF(value);
   45854           0 :     } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
   45855           0 :         PyErr_Clear();
   45856             :     } else {
   45857             :         result = -1;
   45858             :     }
   45859          12 :     return result;
   45860             : }
   45861           3 : static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) {
   45862           3 :     PyObject *module = NULL, *moddict, *modname;
   45863           3 :     CYTHON_UNUSED_VAR(def);
   45864           3 :     if (__Pyx_check_single_interpreter())
   45865             :         return NULL;
   45866           3 :     if (__pyx_m)
   45867           0 :         return __Pyx_NewRef(__pyx_m);
   45868           3 :     modname = PyObject_GetAttrString(spec, "name");
   45869           3 :     if (unlikely(!modname)) goto bad;
   45870           3 :     module = PyModule_NewObject(modname);
   45871           3 :     Py_DECREF(modname);
   45872           3 :     if (unlikely(!module)) goto bad;
   45873             : #if CYTHON_COMPILING_IN_LIMITED_API
   45874             :     moddict = module;
   45875             : #else
   45876           3 :     moddict = PyModule_GetDict(module);
   45877           3 :     if (unlikely(!moddict)) goto bad;
   45878             : #endif
   45879           3 :     if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
   45880           3 :     if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
   45881           3 :     if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
   45882           3 :     if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
   45883             :     return module;
   45884           0 : bad:
   45885           0 :     Py_XDECREF(module);
   45886           0 :     return NULL;
   45887             : }
   45888             : 
   45889             : 
   45890           3 : static CYTHON_SMALL_CODE int __pyx_pymod_exec__csparsetools(PyObject *__pyx_pyinit_module)
   45891             : #endif
   45892             : #endif
   45893             : {
   45894           3 :   int stringtab_initialized = 0;
   45895             :   #if CYTHON_USE_MODULE_STATE
   45896             :   int pystate_addmodule_run = 0;
   45897             :   #endif
   45898           3 :   PyObject *__pyx_t_1 = NULL;
   45899           3 :   PyObject *__pyx_t_2 = NULL;
   45900           3 :   PyObject *__pyx_t_3 = NULL;
   45901           3 :   PyObject *__pyx_t_4 = NULL;
   45902           3 :   PyObject *__pyx_t_5 = NULL;
   45903           3 :   int __pyx_t_6;
   45904           3 :   PyObject *__pyx_t_7 = NULL;
   45905           3 :   static PyThread_type_lock __pyx_t_8[8];
   45906           3 :   int __pyx_t_9;
   45907           3 :   PyObject *__pyx_t_10 = NULL;
   45908           3 :   PyObject *__pyx_t_11 = NULL;
   45909           3 :   int __pyx_lineno = 0;
   45910           3 :   const char *__pyx_filename = NULL;
   45911           3 :   int __pyx_clineno = 0;
   45912             :   __Pyx_RefNannyDeclarations
   45913             :   #if CYTHON_PEP489_MULTI_PHASE_INIT
   45914           3 :   if (__pyx_m) {
   45915           0 :     if (__pyx_m == __pyx_pyinit_module) return 0;
   45916           0 :     PyErr_SetString(PyExc_RuntimeError, "Module '_csparsetools' has already been imported. Re-initialisation is not supported.");
   45917           0 :     return -1;
   45918             :   }
   45919             :   #elif PY_MAJOR_VERSION >= 3
   45920             :   if (__pyx_m) return __Pyx_NewRef(__pyx_m);
   45921             :   #endif
   45922             :   /*--- Module creation code ---*/
   45923             :   #if CYTHON_PEP489_MULTI_PHASE_INIT
   45924           3 :   __pyx_m = __pyx_pyinit_module;
   45925           3 :   Py_INCREF(__pyx_m);
   45926             :   #else
   45927             :   #if PY_MAJOR_VERSION < 3
   45928             :   __pyx_m = Py_InitModule4("_csparsetools", __pyx_methods, __pyx_k_Fast_snippets_for_LIL_matrices, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
   45929             :   if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
   45930             :   #elif CYTHON_USE_MODULE_STATE
   45931             :   __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
   45932             :   {
   45933             :     int add_module_result = PyState_AddModule(__pyx_t_1, &__pyx_moduledef);
   45934             :     __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "_csparsetools" pseudovariable */
   45935             :     if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
   45936             :     pystate_addmodule_run = 1;
   45937             :   }
   45938             :   #else
   45939             :   __pyx_m = PyModule_Create(&__pyx_moduledef);
   45940             :   if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
   45941             :   #endif
   45942             :   #endif
   45943           3 :   CYTHON_UNUSED_VAR(__pyx_t_1);
   45944           3 :   __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
   45945           3 :   Py_INCREF(__pyx_d);
   45946           3 :   __pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
   45947           3 :   __pyx_cython_runtime = __Pyx_PyImport_AddModuleRef((const char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
   45948           3 :   if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
   45949             :   #if CYTHON_REFNANNY
   45950             : __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
   45951             : if (!__Pyx_RefNanny) {
   45952             :   PyErr_Clear();
   45953             :   __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
   45954             :   if (!__Pyx_RefNanny)
   45955             :       Py_FatalError("failed to import 'refnanny' module");
   45956             : }
   45957             : #endif
   45958           3 :   __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit__csparsetools(void)", 0);
   45959           3 :   if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
   45960             :   #ifdef __Pxy_PyFrame_Initialize_Offsets
   45961             :   __Pxy_PyFrame_Initialize_Offsets();
   45962             :   #endif
   45963           3 :   __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
   45964           3 :   __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
   45965           3 :   __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
   45966             :   #ifdef __Pyx_CyFunction_USED
   45967           3 :   if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
   45968             :   #endif
   45969             :   #ifdef __Pyx_FusedFunction_USED
   45970           3 :   if (__pyx_FusedFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
   45971             :   #endif
   45972             :   #ifdef __Pyx_Coroutine_USED
   45973             :   if (__pyx_Coroutine_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
   45974             :   #endif
   45975             :   #ifdef __Pyx_Generator_USED
   45976             :   if (__pyx_Generator_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
   45977             :   #endif
   45978             :   #ifdef __Pyx_AsyncGen_USED
   45979             :   if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
   45980             :   #endif
   45981             :   #ifdef __Pyx_StopAsyncIteration_USED
   45982             :   if (__pyx_StopAsyncIteration_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
   45983             :   #endif
   45984             :   /*--- Library function declarations ---*/
   45985             :   /*--- Threads initialization code ---*/
   45986             :   #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
   45987             :   PyEval_InitThreads();
   45988             :   #endif
   45989             :   /*--- Initialize various global constants etc. ---*/
   45990           3 :   if (__Pyx_InitConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
   45991           3 :   stringtab_initialized = 1;
   45992           3 :   if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
   45993             :   #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
   45994             :   if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
   45995             :   #endif
   45996           3 :   if (__pyx_module_is_main__csparsetools) {
   45997           0 :     if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
   45998             :   }
   45999             :   #if PY_MAJOR_VERSION >= 3
   46000             :   {
   46001           3 :     PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
   46002           3 :     if (!PyDict_GetItemString(modules, "_csparsetools")) {
   46003           3 :       if (unlikely((PyDict_SetItemString(modules, "_csparsetools", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
   46004             :     }
   46005             :   }
   46006             :   #endif
   46007             :   /*--- Builtin init code ---*/
   46008           3 :   if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
   46009             :   /*--- Constants init code ---*/
   46010           3 :   if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
   46011             :   /*--- Global type/function init code ---*/
   46012           3 :   (void)__Pyx_modinit_global_init_code();
   46013           3 :   (void)__Pyx_modinit_variable_export_code();
   46014           3 :   (void)__Pyx_modinit_function_export_code();
   46015           3 :   if (unlikely((__Pyx_modinit_type_init_code() < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
   46016           3 :   if (unlikely((__Pyx_modinit_type_import_code() < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
   46017           3 :   (void)__Pyx_modinit_variable_import_code();
   46018           3 :   (void)__Pyx_modinit_function_import_code();
   46019             :   /*--- Execution code ---*/
   46020             :   #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
   46021             :   if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
   46022             :   #endif
   46023             : 
   46024             :   /* "View.MemoryView":99
   46025             :  * 
   46026             :  * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
   46027             :  * try:             # <<<<<<<<<<<<<<
   46028             :  *     if __import__("sys").version_info >= (3, 3):
   46029             :  *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
   46030             :  */
   46031             :   {
   46032           3 :     __Pyx_PyThreadState_declare
   46033           3 :     __Pyx_PyThreadState_assign
   46034           3 :     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
   46035           3 :     __Pyx_XGOTREF(__pyx_t_1);
   46036           3 :     __Pyx_XGOTREF(__pyx_t_2);
   46037           3 :     __Pyx_XGOTREF(__pyx_t_3);
   46038             :     /*try:*/ {
   46039             : 
   46040             :       /* "View.MemoryView":100
   46041             :  * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
   46042             :  * try:
   46043             :  *     if __import__("sys").version_info >= (3, 3):             # <<<<<<<<<<<<<<
   46044             :  *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
   46045             :  *     else:
   46046             :  */
   46047           3 :       __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin___import__, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 100, __pyx_L2_error)
   46048           3 :       __Pyx_GOTREF(__pyx_t_4);
   46049           3 :       __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_version_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 100, __pyx_L2_error)
   46050           3 :       __Pyx_GOTREF(__pyx_t_5);
   46051           3 :       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46052           3 :       __pyx_t_4 = PyObject_RichCompare(__pyx_t_5, __pyx_tuple__17, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 100, __pyx_L2_error)
   46053           3 :       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46054           3 :       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(1, 100, __pyx_L2_error)
   46055           3 :       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46056           3 :       if (__pyx_t_6) {
   46057             : 
   46058             :         /* "View.MemoryView":101
   46059             :  * try:
   46060             :  *     if __import__("sys").version_info >= (3, 3):
   46061             :  *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence             # <<<<<<<<<<<<<<
   46062             :  *     else:
   46063             :  *         __pyx_collections_abc_Sequence = __import__("collections").Sequence
   46064             :  */
   46065           3 :         __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin___import__, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 101, __pyx_L2_error)
   46066           3 :         __Pyx_GOTREF(__pyx_t_4);
   46067           3 :         __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_abc); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 101, __pyx_L2_error)
   46068           3 :         __Pyx_GOTREF(__pyx_t_5);
   46069           3 :         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46070           3 :         __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_Sequence); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 101, __pyx_L2_error)
   46071           3 :         __Pyx_GOTREF(__pyx_t_4);
   46072           3 :         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46073           3 :         __Pyx_XGOTREF(__pyx_collections_abc_Sequence);
   46074           3 :         __Pyx_DECREF_SET(__pyx_collections_abc_Sequence, __pyx_t_4);
   46075           3 :         __Pyx_GIVEREF(__pyx_t_4);
   46076           3 :         __pyx_t_4 = 0;
   46077             : 
   46078             :         /* "View.MemoryView":100
   46079             :  * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
   46080             :  * try:
   46081             :  *     if __import__("sys").version_info >= (3, 3):             # <<<<<<<<<<<<<<
   46082             :  *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
   46083             :  *     else:
   46084             :  */
   46085           3 :         goto __pyx_L8;
   46086             :       }
   46087             : 
   46088             :       /* "View.MemoryView":103
   46089             :  *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
   46090             :  *     else:
   46091             :  *         __pyx_collections_abc_Sequence = __import__("collections").Sequence             # <<<<<<<<<<<<<<
   46092             :  * except:
   46093             :  * 
   46094             :  */
   46095             :       /*else*/ {
   46096           0 :         __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin___import__, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 103, __pyx_L2_error)
   46097           0 :         __Pyx_GOTREF(__pyx_t_4);
   46098           0 :         __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_Sequence); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 103, __pyx_L2_error)
   46099           0 :         __Pyx_GOTREF(__pyx_t_5);
   46100           0 :         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46101           0 :         __Pyx_XGOTREF(__pyx_collections_abc_Sequence);
   46102           0 :         __Pyx_DECREF_SET(__pyx_collections_abc_Sequence, __pyx_t_5);
   46103           0 :         __Pyx_GIVEREF(__pyx_t_5);
   46104           0 :         __pyx_t_5 = 0;
   46105             :       }
   46106           3 :       __pyx_L8:;
   46107             : 
   46108             :       /* "View.MemoryView":99
   46109             :  * 
   46110             :  * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
   46111             :  * try:             # <<<<<<<<<<<<<<
   46112             :  *     if __import__("sys").version_info >= (3, 3):
   46113             :  *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
   46114             :  */
   46115             :     }
   46116           3 :     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
   46117           3 :     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
   46118           3 :     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
   46119           3 :     goto __pyx_L7_try_end;
   46120           0 :     __pyx_L2_error:;
   46121           0 :     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
   46122           0 :     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
   46123             : 
   46124             :     /* "View.MemoryView":104
   46125             :  *     else:
   46126             :  *         __pyx_collections_abc_Sequence = __import__("collections").Sequence
   46127             :  * except:             # <<<<<<<<<<<<<<
   46128             :  * 
   46129             :  *     __pyx_collections_abc_Sequence = None
   46130             :  */
   46131             :     /*except:*/ {
   46132           0 :       __Pyx_AddTraceback("View.MemoryView", __pyx_clineno, __pyx_lineno, __pyx_filename);
   46133           0 :       if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_7) < 0) __PYX_ERR(1, 104, __pyx_L4_except_error)
   46134           0 :       __Pyx_XGOTREF(__pyx_t_5);
   46135           0 :       __Pyx_XGOTREF(__pyx_t_4);
   46136           0 :       __Pyx_XGOTREF(__pyx_t_7);
   46137             : 
   46138             :       /* "View.MemoryView":106
   46139             :  * except:
   46140             :  * 
   46141             :  *     __pyx_collections_abc_Sequence = None             # <<<<<<<<<<<<<<
   46142             :  * 
   46143             :  * 
   46144             :  */
   46145           0 :       __Pyx_INCREF(Py_None);
   46146           0 :       __Pyx_XGOTREF(__pyx_collections_abc_Sequence);
   46147           0 :       __Pyx_DECREF_SET(__pyx_collections_abc_Sequence, Py_None);
   46148           0 :       __Pyx_GIVEREF(Py_None);
   46149           0 :       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
   46150           0 :       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
   46151           0 :       __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
   46152           0 :       goto __pyx_L3_exception_handled;
   46153             :     }
   46154             : 
   46155             :     /* "View.MemoryView":99
   46156             :  * 
   46157             :  * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
   46158             :  * try:             # <<<<<<<<<<<<<<
   46159             :  *     if __import__("sys").version_info >= (3, 3):
   46160             :  *         __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
   46161             :  */
   46162           0 :     __pyx_L4_except_error:;
   46163           0 :     __Pyx_XGIVEREF(__pyx_t_1);
   46164           0 :     __Pyx_XGIVEREF(__pyx_t_2);
   46165           0 :     __Pyx_XGIVEREF(__pyx_t_3);
   46166           0 :     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
   46167           0 :     goto __pyx_L1_error;
   46168           0 :     __pyx_L3_exception_handled:;
   46169           0 :     __Pyx_XGIVEREF(__pyx_t_1);
   46170           0 :     __Pyx_XGIVEREF(__pyx_t_2);
   46171           0 :     __Pyx_XGIVEREF(__pyx_t_3);
   46172           0 :     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
   46173           3 :     __pyx_L7_try_end:;
   46174             :   }
   46175             : 
   46176             :   /* "View.MemoryView":241
   46177             :  * 
   46178             :  * 
   46179             :  *     try:             # <<<<<<<<<<<<<<
   46180             :  *         count = __pyx_collections_abc_Sequence.count
   46181             :  *         index = __pyx_collections_abc_Sequence.index
   46182             :  */
   46183             :   {
   46184           3 :     __Pyx_PyThreadState_declare
   46185           3 :     __Pyx_PyThreadState_assign
   46186           3 :     __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1);
   46187           3 :     __Pyx_XGOTREF(__pyx_t_3);
   46188           3 :     __Pyx_XGOTREF(__pyx_t_2);
   46189           3 :     __Pyx_XGOTREF(__pyx_t_1);
   46190             :     /*try:*/ {
   46191             : 
   46192             :       /* "View.MemoryView":242
   46193             :  * 
   46194             :  *     try:
   46195             :  *         count = __pyx_collections_abc_Sequence.count             # <<<<<<<<<<<<<<
   46196             :  *         index = __pyx_collections_abc_Sequence.index
   46197             :  *     except:
   46198             :  */
   46199           3 :       __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_count); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 242, __pyx_L11_error)
   46200           3 :       __Pyx_GOTREF(__pyx_t_7);
   46201           3 :       if (__Pyx_SetItemOnTypeDict(__pyx_array_type, __pyx_n_s_count, __pyx_t_7) < 0) __PYX_ERR(1, 242, __pyx_L11_error)
   46202           3 :       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46203           3 :       PyType_Modified(__pyx_array_type);
   46204             : 
   46205             :       /* "View.MemoryView":243
   46206             :  *     try:
   46207             :  *         count = __pyx_collections_abc_Sequence.count
   46208             :  *         index = __pyx_collections_abc_Sequence.index             # <<<<<<<<<<<<<<
   46209             :  *     except:
   46210             :  *         pass
   46211             :  */
   46212           3 :       __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_index); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 243, __pyx_L11_error)
   46213           3 :       __Pyx_GOTREF(__pyx_t_7);
   46214           3 :       if (__Pyx_SetItemOnTypeDict(__pyx_array_type, __pyx_n_s_index, __pyx_t_7) < 0) __PYX_ERR(1, 243, __pyx_L11_error)
   46215           3 :       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46216           3 :       PyType_Modified(__pyx_array_type);
   46217             : 
   46218             :       /* "View.MemoryView":241
   46219             :  * 
   46220             :  * 
   46221             :  *     try:             # <<<<<<<<<<<<<<
   46222             :  *         count = __pyx_collections_abc_Sequence.count
   46223             :  *         index = __pyx_collections_abc_Sequence.index
   46224             :  */
   46225             :     }
   46226           3 :     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
   46227           3 :     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
   46228           3 :     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
   46229           3 :     goto __pyx_L16_try_end;
   46230           0 :     __pyx_L11_error:;
   46231           0 :     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
   46232           0 :     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
   46233           0 :     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
   46234             : 
   46235             :     /* "View.MemoryView":244
   46236             :  *         count = __pyx_collections_abc_Sequence.count
   46237             :  *         index = __pyx_collections_abc_Sequence.index
   46238             :  *     except:             # <<<<<<<<<<<<<<
   46239             :  *         pass
   46240             :  * 
   46241             :  */
   46242             :     /*except:*/ {
   46243           0 :       __Pyx_ErrRestore(0,0,0);
   46244           0 :       goto __pyx_L12_exception_handled;
   46245             :     }
   46246           0 :     __pyx_L12_exception_handled:;
   46247           0 :     __Pyx_XGIVEREF(__pyx_t_3);
   46248           0 :     __Pyx_XGIVEREF(__pyx_t_2);
   46249           0 :     __Pyx_XGIVEREF(__pyx_t_1);
   46250           0 :     __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_2, __pyx_t_1);
   46251           3 :     __pyx_L16_try_end:;
   46252             :   }
   46253             : 
   46254             :   /* "View.MemoryView":309
   46255             :  *         return self.name
   46256             :  * 
   46257             :  * cdef generic = Enum("<strided and direct or indirect>")             # <<<<<<<<<<<<<<
   46258             :  * cdef strided = Enum("<strided and direct>") # default
   46259             :  * cdef indirect = Enum("<strided and indirect>")
   46260             :  */
   46261           3 :   __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 309, __pyx_L1_error)
   46262           3 :   __Pyx_GOTREF(__pyx_t_7);
   46263           3 :   __Pyx_XGOTREF(generic);
   46264           3 :   __Pyx_DECREF_SET(generic, __pyx_t_7);
   46265           3 :   __Pyx_GIVEREF(__pyx_t_7);
   46266           3 :   __pyx_t_7 = 0;
   46267             : 
   46268             :   /* "View.MemoryView":310
   46269             :  * 
   46270             :  * cdef generic = Enum("<strided and direct or indirect>")
   46271             :  * cdef strided = Enum("<strided and direct>") # default             # <<<<<<<<<<<<<<
   46272             :  * cdef indirect = Enum("<strided and indirect>")
   46273             :  * 
   46274             :  */
   46275           3 :   __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 310, __pyx_L1_error)
   46276           3 :   __Pyx_GOTREF(__pyx_t_7);
   46277           3 :   __Pyx_XGOTREF(strided);
   46278           3 :   __Pyx_DECREF_SET(strided, __pyx_t_7);
   46279           3 :   __Pyx_GIVEREF(__pyx_t_7);
   46280           3 :   __pyx_t_7 = 0;
   46281             : 
   46282             :   /* "View.MemoryView":311
   46283             :  * cdef generic = Enum("<strided and direct or indirect>")
   46284             :  * cdef strided = Enum("<strided and direct>") # default
   46285             :  * cdef indirect = Enum("<strided and indirect>")             # <<<<<<<<<<<<<<
   46286             :  * 
   46287             :  * 
   46288             :  */
   46289           3 :   __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 311, __pyx_L1_error)
   46290           3 :   __Pyx_GOTREF(__pyx_t_7);
   46291           3 :   __Pyx_XGOTREF(indirect);
   46292           3 :   __Pyx_DECREF_SET(indirect, __pyx_t_7);
   46293           3 :   __Pyx_GIVEREF(__pyx_t_7);
   46294           3 :   __pyx_t_7 = 0;
   46295             : 
   46296             :   /* "View.MemoryView":314
   46297             :  * 
   46298             :  * 
   46299             :  * cdef contiguous = Enum("<contiguous and direct>")             # <<<<<<<<<<<<<<
   46300             :  * cdef indirect_contiguous = Enum("<contiguous and indirect>")
   46301             :  * 
   46302             :  */
   46303           3 :   __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 314, __pyx_L1_error)
   46304           3 :   __Pyx_GOTREF(__pyx_t_7);
   46305           3 :   __Pyx_XGOTREF(contiguous);
   46306           3 :   __Pyx_DECREF_SET(contiguous, __pyx_t_7);
   46307           3 :   __Pyx_GIVEREF(__pyx_t_7);
   46308           3 :   __pyx_t_7 = 0;
   46309             : 
   46310             :   /* "View.MemoryView":315
   46311             :  * 
   46312             :  * cdef contiguous = Enum("<contiguous and direct>")
   46313             :  * cdef indirect_contiguous = Enum("<contiguous and indirect>")             # <<<<<<<<<<<<<<
   46314             :  * 
   46315             :  * 
   46316             :  */
   46317           3 :   __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 315, __pyx_L1_error)
   46318           3 :   __Pyx_GOTREF(__pyx_t_7);
   46319           3 :   __Pyx_XGOTREF(indirect_contiguous);
   46320           3 :   __Pyx_DECREF_SET(indirect_contiguous, __pyx_t_7);
   46321           3 :   __Pyx_GIVEREF(__pyx_t_7);
   46322           3 :   __pyx_t_7 = 0;
   46323             : 
   46324             :   /* "View.MemoryView":323
   46325             :  * 
   46326             :  * 
   46327             :  * cdef int __pyx_memoryview_thread_locks_used = 0             # <<<<<<<<<<<<<<
   46328             :  * cdef PyThread_type_lock[8] __pyx_memoryview_thread_locks = [
   46329             :  *     PyThread_allocate_lock(),
   46330             :  */
   46331           3 :   __pyx_memoryview_thread_locks_used = 0;
   46332             : 
   46333             :   /* "View.MemoryView":324
   46334             :  * 
   46335             :  * cdef int __pyx_memoryview_thread_locks_used = 0
   46336             :  * cdef PyThread_type_lock[8] __pyx_memoryview_thread_locks = [             # <<<<<<<<<<<<<<
   46337             :  *     PyThread_allocate_lock(),
   46338             :  *     PyThread_allocate_lock(),
   46339             :  */
   46340           3 :   __pyx_t_8[0] = PyThread_allocate_lock();
   46341           3 :   __pyx_t_8[1] = PyThread_allocate_lock();
   46342           3 :   __pyx_t_8[2] = PyThread_allocate_lock();
   46343           3 :   __pyx_t_8[3] = PyThread_allocate_lock();
   46344           3 :   __pyx_t_8[4] = PyThread_allocate_lock();
   46345           3 :   __pyx_t_8[5] = PyThread_allocate_lock();
   46346           3 :   __pyx_t_8[6] = PyThread_allocate_lock();
   46347           3 :   __pyx_t_8[7] = PyThread_allocate_lock();
   46348           3 :   memcpy(&(__pyx_memoryview_thread_locks[0]), __pyx_t_8, sizeof(__pyx_memoryview_thread_locks[0]) * (8));
   46349             : 
   46350             :   /* "View.MemoryView":982
   46351             :  * 
   46352             :  * 
   46353             :  *     try:             # <<<<<<<<<<<<<<
   46354             :  *         count = __pyx_collections_abc_Sequence.count
   46355             :  *         index = __pyx_collections_abc_Sequence.index
   46356             :  */
   46357             :   {
   46358           3 :     __Pyx_PyThreadState_declare
   46359           3 :     __Pyx_PyThreadState_assign
   46360           3 :     __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
   46361           3 :     __Pyx_XGOTREF(__pyx_t_1);
   46362           3 :     __Pyx_XGOTREF(__pyx_t_2);
   46363           3 :     __Pyx_XGOTREF(__pyx_t_3);
   46364             :     /*try:*/ {
   46365             : 
   46366             :       /* "View.MemoryView":983
   46367             :  * 
   46368             :  *     try:
   46369             :  *         count = __pyx_collections_abc_Sequence.count             # <<<<<<<<<<<<<<
   46370             :  *         index = __pyx_collections_abc_Sequence.index
   46371             :  *     except:
   46372             :  */
   46373           3 :       __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_count); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 983, __pyx_L17_error)
   46374           3 :       __Pyx_GOTREF(__pyx_t_7);
   46375           3 :       if (__Pyx_SetItemOnTypeDict(__pyx_memoryviewslice_type, __pyx_n_s_count, __pyx_t_7) < 0) __PYX_ERR(1, 983, __pyx_L17_error)
   46376           3 :       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46377           3 :       PyType_Modified(__pyx_memoryviewslice_type);
   46378             : 
   46379             :       /* "View.MemoryView":984
   46380             :  *     try:
   46381             :  *         count = __pyx_collections_abc_Sequence.count
   46382             :  *         index = __pyx_collections_abc_Sequence.index             # <<<<<<<<<<<<<<
   46383             :  *     except:
   46384             :  *         pass
   46385             :  */
   46386           3 :       __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_index); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 984, __pyx_L17_error)
   46387           3 :       __Pyx_GOTREF(__pyx_t_7);
   46388           3 :       if (__Pyx_SetItemOnTypeDict(__pyx_memoryviewslice_type, __pyx_n_s_index, __pyx_t_7) < 0) __PYX_ERR(1, 984, __pyx_L17_error)
   46389           3 :       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46390           3 :       PyType_Modified(__pyx_memoryviewslice_type);
   46391             : 
   46392             :       /* "View.MemoryView":982
   46393             :  * 
   46394             :  * 
   46395             :  *     try:             # <<<<<<<<<<<<<<
   46396             :  *         count = __pyx_collections_abc_Sequence.count
   46397             :  *         index = __pyx_collections_abc_Sequence.index
   46398             :  */
   46399             :     }
   46400           3 :     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
   46401           3 :     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
   46402           3 :     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
   46403           3 :     goto __pyx_L22_try_end;
   46404           0 :     __pyx_L17_error:;
   46405           0 :     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
   46406           0 :     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
   46407           0 :     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
   46408             : 
   46409             :     /* "View.MemoryView":985
   46410             :  *         count = __pyx_collections_abc_Sequence.count
   46411             :  *         index = __pyx_collections_abc_Sequence.index
   46412             :  *     except:             # <<<<<<<<<<<<<<
   46413             :  *         pass
   46414             :  * 
   46415             :  */
   46416             :     /*except:*/ {
   46417           0 :       __Pyx_ErrRestore(0,0,0);
   46418           0 :       goto __pyx_L18_exception_handled;
   46419             :     }
   46420           0 :     __pyx_L18_exception_handled:;
   46421           0 :     __Pyx_XGIVEREF(__pyx_t_1);
   46422           0 :     __Pyx_XGIVEREF(__pyx_t_2);
   46423           0 :     __Pyx_XGIVEREF(__pyx_t_3);
   46424           0 :     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
   46425           3 :     __pyx_L22_try_end:;
   46426             :   }
   46427             : 
   46428             :   /* "View.MemoryView":988
   46429             :  *         pass
   46430             :  * 
   46431             :  * try:             # <<<<<<<<<<<<<<
   46432             :  *     if __pyx_collections_abc_Sequence:
   46433             :  * 
   46434             :  */
   46435             :   {
   46436           3 :     __Pyx_PyThreadState_declare
   46437           3 :     __Pyx_PyThreadState_assign
   46438           3 :     __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1);
   46439           3 :     __Pyx_XGOTREF(__pyx_t_3);
   46440           3 :     __Pyx_XGOTREF(__pyx_t_2);
   46441           3 :     __Pyx_XGOTREF(__pyx_t_1);
   46442             :     /*try:*/ {
   46443             : 
   46444             :       /* "View.MemoryView":989
   46445             :  * 
   46446             :  * try:
   46447             :  *     if __pyx_collections_abc_Sequence:             # <<<<<<<<<<<<<<
   46448             :  * 
   46449             :  * 
   46450             :  */
   46451           3 :       __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_collections_abc_Sequence); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(1, 989, __pyx_L23_error)
   46452           3 :       if (__pyx_t_6) {
   46453             : 
   46454             :         /* "View.MemoryView":993
   46455             :  * 
   46456             :  * 
   46457             :  *         __pyx_collections_abc_Sequence.register(_memoryviewslice)             # <<<<<<<<<<<<<<
   46458             :  *         __pyx_collections_abc_Sequence.register(array)
   46459             :  * except:
   46460             :  */
   46461           3 :         __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_register); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 993, __pyx_L23_error)
   46462           3 :         __Pyx_GOTREF(__pyx_t_7);
   46463           3 :         __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_7, ((PyObject *)__pyx_memoryviewslice_type)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 993, __pyx_L23_error)
   46464           3 :         __Pyx_GOTREF(__pyx_t_4);
   46465           3 :         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46466           3 :         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46467             : 
   46468             :         /* "View.MemoryView":994
   46469             :  * 
   46470             :  *         __pyx_collections_abc_Sequence.register(_memoryviewslice)
   46471             :  *         __pyx_collections_abc_Sequence.register(array)             # <<<<<<<<<<<<<<
   46472             :  * except:
   46473             :  *     pass  # ignore failure, it's a minor issue
   46474             :  */
   46475           3 :         __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_register); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 994, __pyx_L23_error)
   46476           3 :         __Pyx_GOTREF(__pyx_t_4);
   46477           3 :         __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_array_type)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 994, __pyx_L23_error)
   46478           3 :         __Pyx_GOTREF(__pyx_t_7);
   46479           3 :         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46480           6 :         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46481             : 
   46482             :         /* "View.MemoryView":989
   46483             :  * 
   46484             :  * try:
   46485             :  *     if __pyx_collections_abc_Sequence:             # <<<<<<<<<<<<<<
   46486             :  * 
   46487             :  * 
   46488             :  */
   46489             :       }
   46490             : 
   46491             :       /* "View.MemoryView":988
   46492             :  *         pass
   46493             :  * 
   46494             :  * try:             # <<<<<<<<<<<<<<
   46495             :  *     if __pyx_collections_abc_Sequence:
   46496             :  * 
   46497             :  */
   46498             :     }
   46499           3 :     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
   46500           3 :     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
   46501           3 :     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
   46502           3 :     goto __pyx_L28_try_end;
   46503           0 :     __pyx_L23_error:;
   46504           0 :     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
   46505           0 :     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
   46506           0 :     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
   46507             : 
   46508             :     /* "View.MemoryView":995
   46509             :  *         __pyx_collections_abc_Sequence.register(_memoryviewslice)
   46510             :  *         __pyx_collections_abc_Sequence.register(array)
   46511             :  * except:             # <<<<<<<<<<<<<<
   46512             :  *     pass  # ignore failure, it's a minor issue
   46513             :  * 
   46514             :  */
   46515             :     /*except:*/ {
   46516           0 :       __Pyx_ErrRestore(0,0,0);
   46517           0 :       goto __pyx_L24_exception_handled;
   46518             :     }
   46519           0 :     __pyx_L24_exception_handled:;
   46520           0 :     __Pyx_XGIVEREF(__pyx_t_3);
   46521           0 :     __Pyx_XGIVEREF(__pyx_t_2);
   46522           0 :     __Pyx_XGIVEREF(__pyx_t_1);
   46523           0 :     __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_2, __pyx_t_1);
   46524           3 :     __pyx_L28_try_end:;
   46525             :   }
   46526             : 
   46527             :   /* "(tree fragment)":1
   46528             :  * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
   46529             :  *     cdef object __pyx_PickleError
   46530             :  *     cdef object __pyx_result
   46531             :  */
   46532           3 :   __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum, NULL, __pyx_n_s_View_MemoryView); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1, __pyx_L1_error)
   46533           3 :   __Pyx_GOTREF(__pyx_t_7);
   46534           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Enum, __pyx_t_7) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
   46535           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46536             : 
   46537             :   /* "_csparsetools.pyx":11
   46538             :  * cimport cython
   46539             :  * cimport numpy as cnp
   46540             :  * import numpy as np             # <<<<<<<<<<<<<<
   46541             :  * 
   46542             :  * 
   46543             :  */
   46544           3 :   __pyx_t_7 = __Pyx_ImportDottedModule(__pyx_n_s_numpy, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 11, __pyx_L1_error)
   46545           3 :   __Pyx_GOTREF(__pyx_t_7);
   46546           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_7) < 0) __PYX_ERR(0, 11, __pyx_L1_error)
   46547           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46548             : 
   46549             :   /* "_csparsetools.pyx":14
   46550             :  * 
   46551             :  * 
   46552             :  * cnp.import_array()             # <<<<<<<<<<<<<<
   46553             :  * 
   46554             :  * 
   46555             :  */
   46556           3 :   __pyx_t_9 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 14, __pyx_L1_error)
   46557             : 
   46558             :   /* "_csparsetools.pyx":18
   46559             :  * 
   46560             :  * @cython.wraparound(False)
   46561             :  * cpdef lil_get1(cnp.npy_intp M, cnp.npy_intp N, object[:] rows, object[:] datas,             # <<<<<<<<<<<<<<
   46562             :  *                cnp.npy_intp i, cnp.npy_intp j):
   46563             :  *     """
   46564             :  */
   46565           3 :   __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_1lil_get1, 0, __pyx_n_s_lil_get1, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 18, __pyx_L1_error)
   46566           3 :   __Pyx_GOTREF(__pyx_t_7);
   46567           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_get1, __pyx_t_7) < 0) __PYX_ERR(0, 18, __pyx_L1_error)
   46568           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46569             : 
   46570             :   /* "_csparsetools.pyx":61
   46571             :  * 
   46572             :  * @cython.wraparound(False)
   46573             :  * cpdef int lil_insert(cnp.npy_intp M, cnp.npy_intp N, object[:] rows,             # <<<<<<<<<<<<<<
   46574             :  *                      object[:] datas, cnp.npy_intp i, cnp.npy_intp j,
   46575             :  *                      object x) except -1:
   46576             :  */
   46577           3 :   __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_3lil_insert, 0, __pyx_n_s_lil_insert, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 61, __pyx_L1_error)
   46578           3 :   __Pyx_GOTREF(__pyx_t_7);
   46579           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_insert, __pyx_t_7) < 0) __PYX_ERR(0, 61, __pyx_L1_error)
   46580           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46581             : 
   46582             :   /* "_csparsetools.pyx":109
   46583             :  *             data[pos] = x
   46584             :  * 
   46585             :  * def lil_get_lengths(object[:] input,             # <<<<<<<<<<<<<<
   46586             :  *                     cnp.ndarray output):
   46587             :  *     return _LIL_GET_LENGTHS_DISPATCH[output.dtype](input, output)
   46588             :  */
   46589           3 :   __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_5lil_get_lengths, 0, __pyx_n_s_lil_get_lengths, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 109, __pyx_L1_error)
   46590           3 :   __Pyx_GOTREF(__pyx_t_7);
   46591           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_get_lengths, __pyx_t_7) < 0) __PYX_ERR(0, 109, __pyx_L1_error)
   46592           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46593             : 
   46594             :   /* "_csparsetools.pyx":112
   46595             :  *                     cnp.ndarray output):
   46596             :  *     return _LIL_GET_LENGTHS_DISPATCH[output.dtype](input, output)
   46597             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46598             :  * @cython.wraparound(False)
   46599             :  * def _lil_get_lengths_int32(object[:] input,
   46600             :  */
   46601           3 :   __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_7_lil_get_lengths_int32, 0, __pyx_n_s_lil_get_lengths_int32, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 112, __pyx_L1_error)
   46602           3 :   __Pyx_GOTREF(__pyx_t_7);
   46603           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_get_lengths_int32, __pyx_t_7) < 0) __PYX_ERR(0, 112, __pyx_L1_error)
   46604           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46605             : 
   46606             :   /* "_csparsetools.pyx":118
   46607             :  *     for i in range(len(input)):
   46608             :  *         output[i] = len(input[i])
   46609             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46610             :  * @cython.wraparound(False)
   46611             :  * def _lil_get_lengths_int64(object[:] input,
   46612             :  */
   46613           3 :   __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_9_lil_get_lengths_int64, 0, __pyx_n_s_lil_get_lengths_int64, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__35)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 118, __pyx_L1_error)
   46614           3 :   __Pyx_GOTREF(__pyx_t_7);
   46615           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_get_lengths_int64, __pyx_t_7) < 0) __PYX_ERR(0, 118, __pyx_L1_error)
   46616           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46617             : 
   46618             :   /* "_csparsetools.pyx":127
   46619             :  * cdef dict _LIL_GET_LENGTHS_DISPATCH = {
   46620             :  * 
   46621             :  * np.dtype(np.int32): _lil_get_lengths_int32,             # <<<<<<<<<<<<<<
   46622             :  * np.dtype(np.int64): _lil_get_lengths_int64,
   46623             :  * }
   46624             :  */
   46625           3 :   __pyx_t_7 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 127, __pyx_L1_error)
   46626           3 :   __Pyx_GOTREF(__pyx_t_7);
   46627           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 127, __pyx_L1_error)
   46628           3 :   __Pyx_GOTREF(__pyx_t_4);
   46629           3 :   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 127, __pyx_L1_error)
   46630           3 :   __Pyx_GOTREF(__pyx_t_5);
   46631           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46632           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 127, __pyx_L1_error)
   46633           3 :   __Pyx_GOTREF(__pyx_t_4);
   46634           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_int32); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 127, __pyx_L1_error)
   46635           3 :   __Pyx_GOTREF(__pyx_t_10);
   46636           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46637           3 :   __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 127, __pyx_L1_error)
   46638           3 :   __Pyx_GOTREF(__pyx_t_4);
   46639           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46640           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   46641           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_get_lengths_int32); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 127, __pyx_L1_error)
   46642           3 :   __Pyx_GOTREF(__pyx_t_10);
   46643           3 :   if (PyDict_SetItem(__pyx_t_7, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 127, __pyx_L1_error)
   46644           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46645           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   46646             : 
   46647             :   /* "_csparsetools.pyx":128
   46648             :  * 
   46649             :  * np.dtype(np.int32): _lil_get_lengths_int32,
   46650             :  * np.dtype(np.int64): _lil_get_lengths_int64,             # <<<<<<<<<<<<<<
   46651             :  * }
   46652             :  * 
   46653             :  */
   46654           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 128, __pyx_L1_error)
   46655           3 :   __Pyx_GOTREF(__pyx_t_10);
   46656           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 128, __pyx_L1_error)
   46657           3 :   __Pyx_GOTREF(__pyx_t_4);
   46658           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   46659           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 128, __pyx_L1_error)
   46660           3 :   __Pyx_GOTREF(__pyx_t_10);
   46661           3 :   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 128, __pyx_L1_error)
   46662           3 :   __Pyx_GOTREF(__pyx_t_5);
   46663           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   46664           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 128, __pyx_L1_error)
   46665           3 :   __Pyx_GOTREF(__pyx_t_10);
   46666           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46667           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46668           3 :   __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_lil_get_lengths_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 128, __pyx_L1_error)
   46669           3 :   __Pyx_GOTREF(__pyx_t_5);
   46670           3 :   if (PyDict_SetItem(__pyx_t_7, __pyx_t_10, __pyx_t_5) < 0) __PYX_ERR(0, 127, __pyx_L1_error)
   46671           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   46672           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46673           3 :   __Pyx_XGOTREF(__pyx_v_13_csparsetools__LIL_GET_LENGTHS_DISPATCH);
   46674           3 :   __Pyx_DECREF_SET(__pyx_v_13_csparsetools__LIL_GET_LENGTHS_DISPATCH, ((PyObject*)__pyx_t_7));
   46675           3 :   __Pyx_GIVEREF(__pyx_t_7);
   46676           3 :   __pyx_t_7 = 0;
   46677             : 
   46678             :   /* "_csparsetools.pyx":141
   46679             :  *     double
   46680             :  * 
   46681             :  * def lil_flatten_to_array(const obj_fused[:] input,             # <<<<<<<<<<<<<<
   46682             :  *                          cnp.ndarray output):
   46683             :  *     return _LIL_FLATTEN_TO_ARRAY_DISPATCH[output.dtype](input, output)
   46684             :  */
   46685           3 :   __pyx_t_7 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 141, __pyx_L1_error)
   46686           3 :   __Pyx_GOTREF(__pyx_t_7);
   46687           3 :   __pyx_t_5 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_13_csparsetools_113lil_flatten_to_array, 0, __pyx_n_s_lil_flatten_to_array, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 141, __pyx_L1_error)
   46688           3 :   __Pyx_GOTREF(__pyx_t_5);
   46689           6 :   __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_empty_tuple);
   46690           3 :   if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_object, __pyx_t_5) < 0) __PYX_ERR(0, 141, __pyx_L1_error)
   46691           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46692           3 :   __pyx_t_5 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_13_csparsetools_115lil_flatten_to_array, 0, __pyx_n_s_lil_flatten_to_array, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 141, __pyx_L1_error)
   46693           3 :   __Pyx_GOTREF(__pyx_t_5);
   46694           6 :   __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_empty_tuple);
   46695           3 :   if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_double, __pyx_t_5) < 0) __PYX_ERR(0, 141, __pyx_L1_error)
   46696           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46697           3 :   __pyx_t_5 = __pyx_FusedFunction_New(&__pyx_mdef_13_csparsetools_11lil_flatten_to_array, 0, __pyx_n_s_lil_flatten_to_array, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 141, __pyx_L1_error)
   46698           3 :   __Pyx_GOTREF(__pyx_t_5);
   46699           3 :   if (!__Pyx_CyFunction_InitDefaults(__pyx_t_5, sizeof(__pyx_defaults), 1)) __PYX_ERR(0, 141, __pyx_L1_error)
   46700           3 :   __pyx_t_10 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 141, __pyx_L1_error)
   46701           3 :   __Pyx_GOTREF(__pyx_t_10);
   46702           3 :   __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_t_5)->__pyx_arg__fused_sigindex = __pyx_t_10;
   46703           3 :   __Pyx_GIVEREF(__pyx_t_10);
   46704           3 :   __pyx_t_10 = 0;
   46705           6 :   __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_empty_tuple);
   46706           3 :   ((__pyx_FusedFunctionObject *) __pyx_t_5)->__signatures__ = __pyx_t_7;
   46707           3 :   __Pyx_GIVEREF(__pyx_t_7);
   46708           3 :   __pyx_t_7 = 0;
   46709           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_flatten_to_array, __pyx_t_5) < 0) __PYX_ERR(0, 141, __pyx_L1_error)
   46710           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46711             : 
   46712             :   /* "_csparsetools.pyx":144
   46713             :  *                          cnp.ndarray output):
   46714             :  *     return _LIL_FLATTEN_TO_ARRAY_DISPATCH[output.dtype](input, output)
   46715             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46716             :  * @cython.wraparound(False)
   46717             :  * def _lil_flatten_to_array_bool_(object[:] input not None, cnp.ndarray[cnp.npy_bool] output not None):
   46718             :  */
   46719           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_13_lil_flatten_to_array_bool_, 0, __pyx_n_s_lil_flatten_to_array_bool, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 144, __pyx_L1_error)
   46720           3 :   __Pyx_GOTREF(__pyx_t_5);
   46721           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_flatten_to_array_bool, __pyx_t_5) < 0) __PYX_ERR(0, 144, __pyx_L1_error)
   46722           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46723             : 
   46724             :   /* "_csparsetools.pyx":154
   46725             :  *             output[pos] = row[j]
   46726             :  *             pos += 1
   46727             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46728             :  * @cython.wraparound(False)
   46729             :  * def _lil_flatten_to_array_int8(object[:] input not None, cnp.ndarray[cnp.npy_int8] output not None):
   46730             :  */
   46731           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_15_lil_flatten_to_array_int8, 0, __pyx_n_s_lil_flatten_to_array_int8, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__39)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 154, __pyx_L1_error)
   46732           3 :   __Pyx_GOTREF(__pyx_t_5);
   46733           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_flatten_to_array_int8, __pyx_t_5) < 0) __PYX_ERR(0, 154, __pyx_L1_error)
   46734           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46735             : 
   46736             :   /* "_csparsetools.pyx":164
   46737             :  *             output[pos] = row[j]
   46738             :  *             pos += 1
   46739             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46740             :  * @cython.wraparound(False)
   46741             :  * def _lil_flatten_to_array_uint8(object[:] input not None, cnp.ndarray[cnp.npy_uint8] output not None):
   46742             :  */
   46743           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_17_lil_flatten_to_array_uint8, 0, __pyx_n_s_lil_flatten_to_array_uint8, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 164, __pyx_L1_error)
   46744           3 :   __Pyx_GOTREF(__pyx_t_5);
   46745           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_flatten_to_array_uint8, __pyx_t_5) < 0) __PYX_ERR(0, 164, __pyx_L1_error)
   46746           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46747             : 
   46748             :   /* "_csparsetools.pyx":174
   46749             :  *             output[pos] = row[j]
   46750             :  *             pos += 1
   46751             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46752             :  * @cython.wraparound(False)
   46753             :  * def _lil_flatten_to_array_int16(object[:] input not None, cnp.ndarray[cnp.npy_int16] output not None):
   46754             :  */
   46755           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_19_lil_flatten_to_array_int16, 0, __pyx_n_s_lil_flatten_to_array_int16, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 174, __pyx_L1_error)
   46756           3 :   __Pyx_GOTREF(__pyx_t_5);
   46757           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_flatten_to_array_int16, __pyx_t_5) < 0) __PYX_ERR(0, 174, __pyx_L1_error)
   46758           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46759             : 
   46760             :   /* "_csparsetools.pyx":184
   46761             :  *             output[pos] = row[j]
   46762             :  *             pos += 1
   46763             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46764             :  * @cython.wraparound(False)
   46765             :  * def _lil_flatten_to_array_uint16(object[:] input not None, cnp.ndarray[cnp.npy_uint16] output not None):
   46766             :  */
   46767           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_21_lil_flatten_to_array_uint16, 0, __pyx_n_s_lil_flatten_to_array_uint16, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 184, __pyx_L1_error)
   46768           3 :   __Pyx_GOTREF(__pyx_t_5);
   46769           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_flatten_to_array_uint16, __pyx_t_5) < 0) __PYX_ERR(0, 184, __pyx_L1_error)
   46770           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46771             : 
   46772             :   /* "_csparsetools.pyx":194
   46773             :  *             output[pos] = row[j]
   46774             :  *             pos += 1
   46775             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46776             :  * @cython.wraparound(False)
   46777             :  * def _lil_flatten_to_array_int32(object[:] input not None, cnp.ndarray[cnp.npy_int32] output not None):
   46778             :  */
   46779           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_23_lil_flatten_to_array_int32, 0, __pyx_n_s_lil_flatten_to_array_int32, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 194, __pyx_L1_error)
   46780           3 :   __Pyx_GOTREF(__pyx_t_5);
   46781           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_flatten_to_array_int32, __pyx_t_5) < 0) __PYX_ERR(0, 194, __pyx_L1_error)
   46782           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46783             : 
   46784             :   /* "_csparsetools.pyx":204
   46785             :  *             output[pos] = row[j]
   46786             :  *             pos += 1
   46787             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46788             :  * @cython.wraparound(False)
   46789             :  * def _lil_flatten_to_array_uint32(object[:] input not None, cnp.ndarray[cnp.npy_uint32] output not None):
   46790             :  */
   46791           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_25_lil_flatten_to_array_uint32, 0, __pyx_n_s_lil_flatten_to_array_uint32, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__44)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 204, __pyx_L1_error)
   46792           3 :   __Pyx_GOTREF(__pyx_t_5);
   46793           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_flatten_to_array_uint32, __pyx_t_5) < 0) __PYX_ERR(0, 204, __pyx_L1_error)
   46794           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46795             : 
   46796             :   /* "_csparsetools.pyx":214
   46797             :  *             output[pos] = row[j]
   46798             :  *             pos += 1
   46799             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46800             :  * @cython.wraparound(False)
   46801             :  * def _lil_flatten_to_array_int64(object[:] input not None, cnp.ndarray[cnp.npy_int64] output not None):
   46802             :  */
   46803           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_27_lil_flatten_to_array_int64, 0, __pyx_n_s_lil_flatten_to_array_int64, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 214, __pyx_L1_error)
   46804           3 :   __Pyx_GOTREF(__pyx_t_5);
   46805           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_flatten_to_array_int64, __pyx_t_5) < 0) __PYX_ERR(0, 214, __pyx_L1_error)
   46806           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46807             : 
   46808             :   /* "_csparsetools.pyx":224
   46809             :  *             output[pos] = row[j]
   46810             :  *             pos += 1
   46811             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46812             :  * @cython.wraparound(False)
   46813             :  * def _lil_flatten_to_array_uint64(object[:] input not None, cnp.ndarray[cnp.npy_uint64] output not None):
   46814             :  */
   46815           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_29_lil_flatten_to_array_uint64, 0, __pyx_n_s_lil_flatten_to_array_uint64, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 224, __pyx_L1_error)
   46816           3 :   __Pyx_GOTREF(__pyx_t_5);
   46817           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_flatten_to_array_uint64, __pyx_t_5) < 0) __PYX_ERR(0, 224, __pyx_L1_error)
   46818           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46819             : 
   46820             :   /* "_csparsetools.pyx":234
   46821             :  *             output[pos] = row[j]
   46822             :  *             pos += 1
   46823             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46824             :  * @cython.wraparound(False)
   46825             :  * def _lil_flatten_to_array_float32(object[:] input not None, cnp.ndarray[cnp.npy_float32] output not None):
   46826             :  */
   46827           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_31_lil_flatten_to_array_float32, 0, __pyx_n_s_lil_flatten_to_array_float32, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 234, __pyx_L1_error)
   46828           3 :   __Pyx_GOTREF(__pyx_t_5);
   46829           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_flatten_to_array_float32, __pyx_t_5) < 0) __PYX_ERR(0, 234, __pyx_L1_error)
   46830           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46831             : 
   46832             :   /* "_csparsetools.pyx":244
   46833             :  *             output[pos] = row[j]
   46834             :  *             pos += 1
   46835             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46836             :  * @cython.wraparound(False)
   46837             :  * def _lil_flatten_to_array_float64(object[:] input not None, cnp.ndarray[cnp.npy_float64] output not None):
   46838             :  */
   46839           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_33_lil_flatten_to_array_float64, 0, __pyx_n_s_lil_flatten_to_array_float64, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 244, __pyx_L1_error)
   46840           3 :   __Pyx_GOTREF(__pyx_t_5);
   46841           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_flatten_to_array_float64, __pyx_t_5) < 0) __PYX_ERR(0, 244, __pyx_L1_error)
   46842           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46843             : 
   46844             :   /* "_csparsetools.pyx":254
   46845             :  *             output[pos] = row[j]
   46846             :  *             pos += 1
   46847             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46848             :  * @cython.wraparound(False)
   46849             :  * def _lil_flatten_to_array_longdouble(object[:] input not None, cnp.ndarray[long double] output not None):
   46850             :  */
   46851           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_35_lil_flatten_to_array_longdouble, 0, __pyx_n_s_lil_flatten_to_array_longdouble, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 254, __pyx_L1_error)
   46852           3 :   __Pyx_GOTREF(__pyx_t_5);
   46853           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_flatten_to_array_longdouble, __pyx_t_5) < 0) __PYX_ERR(0, 254, __pyx_L1_error)
   46854           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46855             : 
   46856             :   /* "_csparsetools.pyx":264
   46857             :  *             output[pos] = row[j]
   46858             :  *             pos += 1
   46859             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46860             :  * @cython.wraparound(False)
   46861             :  * def _lil_flatten_to_array_complex64(object[:] input not None, cnp.ndarray[float complex] output not None):
   46862             :  */
   46863           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_37_lil_flatten_to_array_complex64, 0, __pyx_n_s_lil_flatten_to_array_complex64, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 264, __pyx_L1_error)
   46864           3 :   __Pyx_GOTREF(__pyx_t_5);
   46865           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_flatten_to_array_complex64, __pyx_t_5) < 0) __PYX_ERR(0, 264, __pyx_L1_error)
   46866           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46867             : 
   46868             :   /* "_csparsetools.pyx":274
   46869             :  *             output[pos] = row[j]
   46870             :  *             pos += 1
   46871             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46872             :  * @cython.wraparound(False)
   46873             :  * def _lil_flatten_to_array_complex128(object[:] input not None, cnp.ndarray[double complex] output not None):
   46874             :  */
   46875           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_39_lil_flatten_to_array_complex128, 0, __pyx_n_s_lil_flatten_to_array_complex128, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 274, __pyx_L1_error)
   46876           3 :   __Pyx_GOTREF(__pyx_t_5);
   46877           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_flatten_to_array_complex128, __pyx_t_5) < 0) __PYX_ERR(0, 274, __pyx_L1_error)
   46878           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46879             : 
   46880             :   /* "_csparsetools.pyx":284
   46881             :  *             output[pos] = row[j]
   46882             :  *             pos += 1
   46883             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   46884             :  * @cython.wraparound(False)
   46885             :  * def _lil_flatten_to_array_clongdouble(object[:] input not None, cnp.ndarray[long double complex] output not None):
   46886             :  */
   46887           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_41_lil_flatten_to_array_clongdouble, 0, __pyx_n_s_lil_flatten_to_array_clongdoubl, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 284, __pyx_L1_error)
   46888           3 :   __Pyx_GOTREF(__pyx_t_5);
   46889           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_flatten_to_array_clongdoubl, __pyx_t_5) < 0) __PYX_ERR(0, 284, __pyx_L1_error)
   46890           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   46891             : 
   46892             :   /* "_csparsetools.pyx":297
   46893             :  * cdef dict _LIL_FLATTEN_TO_ARRAY_DISPATCH = {
   46894             :  * 
   46895             :  * np.dtype(np.bool_): _lil_flatten_to_array_bool_,             # <<<<<<<<<<<<<<
   46896             :  * np.dtype(np.int8): _lil_flatten_to_array_int8,
   46897             :  * np.dtype(np.uint8): _lil_flatten_to_array_uint8,
   46898             :  */
   46899           3 :   __pyx_t_5 = __Pyx_PyDict_NewPresized(15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 297, __pyx_L1_error)
   46900           3 :   __Pyx_GOTREF(__pyx_t_5);
   46901           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 297, __pyx_L1_error)
   46902           3 :   __Pyx_GOTREF(__pyx_t_7);
   46903           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 297, __pyx_L1_error)
   46904           3 :   __Pyx_GOTREF(__pyx_t_10);
   46905           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46906           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 297, __pyx_L1_error)
   46907           3 :   __Pyx_GOTREF(__pyx_t_7);
   46908           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_bool); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 297, __pyx_L1_error)
   46909           3 :   __Pyx_GOTREF(__pyx_t_4);
   46910           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46911           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 297, __pyx_L1_error)
   46912           3 :   __Pyx_GOTREF(__pyx_t_7);
   46913           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   46914           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46915           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_lil_flatten_to_array_bool); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 297, __pyx_L1_error)
   46916           3 :   __Pyx_GOTREF(__pyx_t_4);
   46917           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_7, __pyx_t_4) < 0) __PYX_ERR(0, 297, __pyx_L1_error)
   46918           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46919           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46920             : 
   46921             :   /* "_csparsetools.pyx":298
   46922             :  * 
   46923             :  * np.dtype(np.bool_): _lil_flatten_to_array_bool_,
   46924             :  * np.dtype(np.int8): _lil_flatten_to_array_int8,             # <<<<<<<<<<<<<<
   46925             :  * np.dtype(np.uint8): _lil_flatten_to_array_uint8,
   46926             :  * np.dtype(np.int16): _lil_flatten_to_array_int16,
   46927             :  */
   46928           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 298, __pyx_L1_error)
   46929           3 :   __Pyx_GOTREF(__pyx_t_4);
   46930           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_dtype); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 298, __pyx_L1_error)
   46931           3 :   __Pyx_GOTREF(__pyx_t_7);
   46932           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46933           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 298, __pyx_L1_error)
   46934           3 :   __Pyx_GOTREF(__pyx_t_4);
   46935           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_int8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 298, __pyx_L1_error)
   46936           3 :   __Pyx_GOTREF(__pyx_t_10);
   46937           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46938           3 :   __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 298, __pyx_L1_error)
   46939           3 :   __Pyx_GOTREF(__pyx_t_4);
   46940           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46941           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   46942           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_flatten_to_array_int8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 298, __pyx_L1_error)
   46943           3 :   __Pyx_GOTREF(__pyx_t_10);
   46944           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 297, __pyx_L1_error)
   46945           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46946           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   46947             : 
   46948             :   /* "_csparsetools.pyx":299
   46949             :  * np.dtype(np.bool_): _lil_flatten_to_array_bool_,
   46950             :  * np.dtype(np.int8): _lil_flatten_to_array_int8,
   46951             :  * np.dtype(np.uint8): _lil_flatten_to_array_uint8,             # <<<<<<<<<<<<<<
   46952             :  * np.dtype(np.int16): _lil_flatten_to_array_int16,
   46953             :  * np.dtype(np.uint16): _lil_flatten_to_array_uint16,
   46954             :  */
   46955           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 299, __pyx_L1_error)
   46956           3 :   __Pyx_GOTREF(__pyx_t_10);
   46957           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 299, __pyx_L1_error)
   46958           3 :   __Pyx_GOTREF(__pyx_t_4);
   46959           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   46960           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 299, __pyx_L1_error)
   46961           3 :   __Pyx_GOTREF(__pyx_t_10);
   46962           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_uint8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 299, __pyx_L1_error)
   46963           3 :   __Pyx_GOTREF(__pyx_t_7);
   46964           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   46965           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 299, __pyx_L1_error)
   46966           3 :   __Pyx_GOTREF(__pyx_t_10);
   46967           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46968           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46969           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_flatten_to_array_uint8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 299, __pyx_L1_error)
   46970           3 :   __Pyx_GOTREF(__pyx_t_7);
   46971           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_10, __pyx_t_7) < 0) __PYX_ERR(0, 297, __pyx_L1_error)
   46972           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   46973           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46974             : 
   46975             :   /* "_csparsetools.pyx":300
   46976             :  * np.dtype(np.int8): _lil_flatten_to_array_int8,
   46977             :  * np.dtype(np.uint8): _lil_flatten_to_array_uint8,
   46978             :  * np.dtype(np.int16): _lil_flatten_to_array_int16,             # <<<<<<<<<<<<<<
   46979             :  * np.dtype(np.uint16): _lil_flatten_to_array_uint16,
   46980             :  * np.dtype(np.int32): _lil_flatten_to_array_int32,
   46981             :  */
   46982           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 300, __pyx_L1_error)
   46983           3 :   __Pyx_GOTREF(__pyx_t_7);
   46984           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 300, __pyx_L1_error)
   46985           3 :   __Pyx_GOTREF(__pyx_t_10);
   46986           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46987           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 300, __pyx_L1_error)
   46988           3 :   __Pyx_GOTREF(__pyx_t_7);
   46989           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 300, __pyx_L1_error)
   46990           3 :   __Pyx_GOTREF(__pyx_t_4);
   46991           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   46992           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 300, __pyx_L1_error)
   46993           3 :   __Pyx_GOTREF(__pyx_t_7);
   46994           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   46995           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   46996           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_lil_flatten_to_array_int16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 300, __pyx_L1_error)
   46997           3 :   __Pyx_GOTREF(__pyx_t_4);
   46998           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_7, __pyx_t_4) < 0) __PYX_ERR(0, 297, __pyx_L1_error)
   46999           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47000           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47001             : 
   47002             :   /* "_csparsetools.pyx":301
   47003             :  * np.dtype(np.uint8): _lil_flatten_to_array_uint8,
   47004             :  * np.dtype(np.int16): _lil_flatten_to_array_int16,
   47005             :  * np.dtype(np.uint16): _lil_flatten_to_array_uint16,             # <<<<<<<<<<<<<<
   47006             :  * np.dtype(np.int32): _lil_flatten_to_array_int32,
   47007             :  * np.dtype(np.uint32): _lil_flatten_to_array_uint32,
   47008             :  */
   47009           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 301, __pyx_L1_error)
   47010           3 :   __Pyx_GOTREF(__pyx_t_4);
   47011           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_dtype); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 301, __pyx_L1_error)
   47012           3 :   __Pyx_GOTREF(__pyx_t_7);
   47013           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47014           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 301, __pyx_L1_error)
   47015           3 :   __Pyx_GOTREF(__pyx_t_4);
   47016           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_uint16); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 301, __pyx_L1_error)
   47017           3 :   __Pyx_GOTREF(__pyx_t_10);
   47018           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47019           3 :   __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 301, __pyx_L1_error)
   47020           3 :   __Pyx_GOTREF(__pyx_t_4);
   47021           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47022           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47023           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_flatten_to_array_uint16); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 301, __pyx_L1_error)
   47024           3 :   __Pyx_GOTREF(__pyx_t_10);
   47025           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 297, __pyx_L1_error)
   47026           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47027           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47028             : 
   47029             :   /* "_csparsetools.pyx":302
   47030             :  * np.dtype(np.int16): _lil_flatten_to_array_int16,
   47031             :  * np.dtype(np.uint16): _lil_flatten_to_array_uint16,
   47032             :  * np.dtype(np.int32): _lil_flatten_to_array_int32,             # <<<<<<<<<<<<<<
   47033             :  * np.dtype(np.uint32): _lil_flatten_to_array_uint32,
   47034             :  * np.dtype(np.int64): _lil_flatten_to_array_int64,
   47035             :  */
   47036           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 302, __pyx_L1_error)
   47037           3 :   __Pyx_GOTREF(__pyx_t_10);
   47038           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 302, __pyx_L1_error)
   47039           3 :   __Pyx_GOTREF(__pyx_t_4);
   47040           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47041           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 302, __pyx_L1_error)
   47042           3 :   __Pyx_GOTREF(__pyx_t_10);
   47043           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 302, __pyx_L1_error)
   47044           3 :   __Pyx_GOTREF(__pyx_t_7);
   47045           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47046           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 302, __pyx_L1_error)
   47047           3 :   __Pyx_GOTREF(__pyx_t_10);
   47048           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47049           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47050           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_flatten_to_array_int32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 302, __pyx_L1_error)
   47051           3 :   __Pyx_GOTREF(__pyx_t_7);
   47052           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_10, __pyx_t_7) < 0) __PYX_ERR(0, 297, __pyx_L1_error)
   47053           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47054           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47055             : 
   47056             :   /* "_csparsetools.pyx":303
   47057             :  * np.dtype(np.uint16): _lil_flatten_to_array_uint16,
   47058             :  * np.dtype(np.int32): _lil_flatten_to_array_int32,
   47059             :  * np.dtype(np.uint32): _lil_flatten_to_array_uint32,             # <<<<<<<<<<<<<<
   47060             :  * np.dtype(np.int64): _lil_flatten_to_array_int64,
   47061             :  * np.dtype(np.uint64): _lil_flatten_to_array_uint64,
   47062             :  */
   47063           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 303, __pyx_L1_error)
   47064           3 :   __Pyx_GOTREF(__pyx_t_7);
   47065           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 303, __pyx_L1_error)
   47066           3 :   __Pyx_GOTREF(__pyx_t_10);
   47067           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47068           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 303, __pyx_L1_error)
   47069           3 :   __Pyx_GOTREF(__pyx_t_7);
   47070           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_uint32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 303, __pyx_L1_error)
   47071           3 :   __Pyx_GOTREF(__pyx_t_4);
   47072           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47073           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 303, __pyx_L1_error)
   47074           3 :   __Pyx_GOTREF(__pyx_t_7);
   47075           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47076           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47077           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_lil_flatten_to_array_uint32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 303, __pyx_L1_error)
   47078           3 :   __Pyx_GOTREF(__pyx_t_4);
   47079           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_7, __pyx_t_4) < 0) __PYX_ERR(0, 297, __pyx_L1_error)
   47080           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47081           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47082             : 
   47083             :   /* "_csparsetools.pyx":304
   47084             :  * np.dtype(np.int32): _lil_flatten_to_array_int32,
   47085             :  * np.dtype(np.uint32): _lil_flatten_to_array_uint32,
   47086             :  * np.dtype(np.int64): _lil_flatten_to_array_int64,             # <<<<<<<<<<<<<<
   47087             :  * np.dtype(np.uint64): _lil_flatten_to_array_uint64,
   47088             :  * np.dtype(np.float32): _lil_flatten_to_array_float32,
   47089             :  */
   47090           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 304, __pyx_L1_error)
   47091           3 :   __Pyx_GOTREF(__pyx_t_4);
   47092           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_dtype); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 304, __pyx_L1_error)
   47093           3 :   __Pyx_GOTREF(__pyx_t_7);
   47094           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47095           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 304, __pyx_L1_error)
   47096           3 :   __Pyx_GOTREF(__pyx_t_4);
   47097           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_int64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 304, __pyx_L1_error)
   47098           3 :   __Pyx_GOTREF(__pyx_t_10);
   47099           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47100           3 :   __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 304, __pyx_L1_error)
   47101           3 :   __Pyx_GOTREF(__pyx_t_4);
   47102           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47103           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47104           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_flatten_to_array_int64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 304, __pyx_L1_error)
   47105           3 :   __Pyx_GOTREF(__pyx_t_10);
   47106           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 297, __pyx_L1_error)
   47107           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47108           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47109             : 
   47110             :   /* "_csparsetools.pyx":305
   47111             :  * np.dtype(np.uint32): _lil_flatten_to_array_uint32,
   47112             :  * np.dtype(np.int64): _lil_flatten_to_array_int64,
   47113             :  * np.dtype(np.uint64): _lil_flatten_to_array_uint64,             # <<<<<<<<<<<<<<
   47114             :  * np.dtype(np.float32): _lil_flatten_to_array_float32,
   47115             :  * np.dtype(np.float64): _lil_flatten_to_array_float64,
   47116             :  */
   47117           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 305, __pyx_L1_error)
   47118           3 :   __Pyx_GOTREF(__pyx_t_10);
   47119           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 305, __pyx_L1_error)
   47120           3 :   __Pyx_GOTREF(__pyx_t_4);
   47121           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47122           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 305, __pyx_L1_error)
   47123           3 :   __Pyx_GOTREF(__pyx_t_10);
   47124           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_uint64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 305, __pyx_L1_error)
   47125           3 :   __Pyx_GOTREF(__pyx_t_7);
   47126           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47127           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 305, __pyx_L1_error)
   47128           3 :   __Pyx_GOTREF(__pyx_t_10);
   47129           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47130           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47131           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_flatten_to_array_uint64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 305, __pyx_L1_error)
   47132           3 :   __Pyx_GOTREF(__pyx_t_7);
   47133           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_10, __pyx_t_7) < 0) __PYX_ERR(0, 297, __pyx_L1_error)
   47134           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47135           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47136             : 
   47137             :   /* "_csparsetools.pyx":306
   47138             :  * np.dtype(np.int64): _lil_flatten_to_array_int64,
   47139             :  * np.dtype(np.uint64): _lil_flatten_to_array_uint64,
   47140             :  * np.dtype(np.float32): _lil_flatten_to_array_float32,             # <<<<<<<<<<<<<<
   47141             :  * np.dtype(np.float64): _lil_flatten_to_array_float64,
   47142             :  * np.dtype(np.longdouble): _lil_flatten_to_array_longdouble,
   47143             :  */
   47144           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 306, __pyx_L1_error)
   47145           3 :   __Pyx_GOTREF(__pyx_t_7);
   47146           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 306, __pyx_L1_error)
   47147           3 :   __Pyx_GOTREF(__pyx_t_10);
   47148           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47149           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 306, __pyx_L1_error)
   47150           3 :   __Pyx_GOTREF(__pyx_t_7);
   47151           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_float32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 306, __pyx_L1_error)
   47152           3 :   __Pyx_GOTREF(__pyx_t_4);
   47153           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47154           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 306, __pyx_L1_error)
   47155           3 :   __Pyx_GOTREF(__pyx_t_7);
   47156           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47157           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47158           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_lil_flatten_to_array_float32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 306, __pyx_L1_error)
   47159           3 :   __Pyx_GOTREF(__pyx_t_4);
   47160           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_7, __pyx_t_4) < 0) __PYX_ERR(0, 297, __pyx_L1_error)
   47161           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47162           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47163             : 
   47164             :   /* "_csparsetools.pyx":307
   47165             :  * np.dtype(np.uint64): _lil_flatten_to_array_uint64,
   47166             :  * np.dtype(np.float32): _lil_flatten_to_array_float32,
   47167             :  * np.dtype(np.float64): _lil_flatten_to_array_float64,             # <<<<<<<<<<<<<<
   47168             :  * np.dtype(np.longdouble): _lil_flatten_to_array_longdouble,
   47169             :  * np.dtype(np.complex64): _lil_flatten_to_array_complex64,
   47170             :  */
   47171           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 307, __pyx_L1_error)
   47172           3 :   __Pyx_GOTREF(__pyx_t_4);
   47173           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_dtype); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 307, __pyx_L1_error)
   47174           3 :   __Pyx_GOTREF(__pyx_t_7);
   47175           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47176           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 307, __pyx_L1_error)
   47177           3 :   __Pyx_GOTREF(__pyx_t_4);
   47178           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_float64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 307, __pyx_L1_error)
   47179           3 :   __Pyx_GOTREF(__pyx_t_10);
   47180           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47181           3 :   __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 307, __pyx_L1_error)
   47182           3 :   __Pyx_GOTREF(__pyx_t_4);
   47183           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47184           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47185           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_flatten_to_array_float64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 307, __pyx_L1_error)
   47186           3 :   __Pyx_GOTREF(__pyx_t_10);
   47187           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 297, __pyx_L1_error)
   47188           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47189           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47190             : 
   47191             :   /* "_csparsetools.pyx":308
   47192             :  * np.dtype(np.float32): _lil_flatten_to_array_float32,
   47193             :  * np.dtype(np.float64): _lil_flatten_to_array_float64,
   47194             :  * np.dtype(np.longdouble): _lil_flatten_to_array_longdouble,             # <<<<<<<<<<<<<<
   47195             :  * np.dtype(np.complex64): _lil_flatten_to_array_complex64,
   47196             :  * np.dtype(np.complex128): _lil_flatten_to_array_complex128,
   47197             :  */
   47198           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 308, __pyx_L1_error)
   47199           3 :   __Pyx_GOTREF(__pyx_t_10);
   47200           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 308, __pyx_L1_error)
   47201           3 :   __Pyx_GOTREF(__pyx_t_4);
   47202           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47203           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 308, __pyx_L1_error)
   47204           3 :   __Pyx_GOTREF(__pyx_t_10);
   47205           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_longdouble); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 308, __pyx_L1_error)
   47206           3 :   __Pyx_GOTREF(__pyx_t_7);
   47207           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47208           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 308, __pyx_L1_error)
   47209           3 :   __Pyx_GOTREF(__pyx_t_10);
   47210           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47211           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47212           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_flatten_to_array_longdouble); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 308, __pyx_L1_error)
   47213           3 :   __Pyx_GOTREF(__pyx_t_7);
   47214           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_10, __pyx_t_7) < 0) __PYX_ERR(0, 297, __pyx_L1_error)
   47215           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47216           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47217             : 
   47218             :   /* "_csparsetools.pyx":309
   47219             :  * np.dtype(np.float64): _lil_flatten_to_array_float64,
   47220             :  * np.dtype(np.longdouble): _lil_flatten_to_array_longdouble,
   47221             :  * np.dtype(np.complex64): _lil_flatten_to_array_complex64,             # <<<<<<<<<<<<<<
   47222             :  * np.dtype(np.complex128): _lil_flatten_to_array_complex128,
   47223             :  * np.dtype(np.clongdouble): _lil_flatten_to_array_clongdouble,
   47224             :  */
   47225           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 309, __pyx_L1_error)
   47226           3 :   __Pyx_GOTREF(__pyx_t_7);
   47227           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 309, __pyx_L1_error)
   47228           3 :   __Pyx_GOTREF(__pyx_t_10);
   47229           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47230           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 309, __pyx_L1_error)
   47231           3 :   __Pyx_GOTREF(__pyx_t_7);
   47232           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_complex64); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 309, __pyx_L1_error)
   47233           3 :   __Pyx_GOTREF(__pyx_t_4);
   47234           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47235           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 309, __pyx_L1_error)
   47236           3 :   __Pyx_GOTREF(__pyx_t_7);
   47237           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47238           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47239           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_lil_flatten_to_array_complex64); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 309, __pyx_L1_error)
   47240           3 :   __Pyx_GOTREF(__pyx_t_4);
   47241           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_7, __pyx_t_4) < 0) __PYX_ERR(0, 297, __pyx_L1_error)
   47242           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47243           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47244             : 
   47245             :   /* "_csparsetools.pyx":310
   47246             :  * np.dtype(np.longdouble): _lil_flatten_to_array_longdouble,
   47247             :  * np.dtype(np.complex64): _lil_flatten_to_array_complex64,
   47248             :  * np.dtype(np.complex128): _lil_flatten_to_array_complex128,             # <<<<<<<<<<<<<<
   47249             :  * np.dtype(np.clongdouble): _lil_flatten_to_array_clongdouble,
   47250             :  * }
   47251             :  */
   47252           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 310, __pyx_L1_error)
   47253           3 :   __Pyx_GOTREF(__pyx_t_4);
   47254           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_dtype); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 310, __pyx_L1_error)
   47255           3 :   __Pyx_GOTREF(__pyx_t_7);
   47256           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47257           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 310, __pyx_L1_error)
   47258           3 :   __Pyx_GOTREF(__pyx_t_4);
   47259           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_complex128); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 310, __pyx_L1_error)
   47260           3 :   __Pyx_GOTREF(__pyx_t_10);
   47261           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47262           3 :   __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 310, __pyx_L1_error)
   47263           3 :   __Pyx_GOTREF(__pyx_t_4);
   47264           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47265           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47266           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_flatten_to_array_complex128); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 310, __pyx_L1_error)
   47267           3 :   __Pyx_GOTREF(__pyx_t_10);
   47268           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 297, __pyx_L1_error)
   47269           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47270           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47271             : 
   47272             :   /* "_csparsetools.pyx":311
   47273             :  * np.dtype(np.complex64): _lil_flatten_to_array_complex64,
   47274             :  * np.dtype(np.complex128): _lil_flatten_to_array_complex128,
   47275             :  * np.dtype(np.clongdouble): _lil_flatten_to_array_clongdouble,             # <<<<<<<<<<<<<<
   47276             :  * }
   47277             :  * 
   47278             :  */
   47279           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 311, __pyx_L1_error)
   47280           3 :   __Pyx_GOTREF(__pyx_t_10);
   47281           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 311, __pyx_L1_error)
   47282           3 :   __Pyx_GOTREF(__pyx_t_4);
   47283           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47284           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 311, __pyx_L1_error)
   47285           3 :   __Pyx_GOTREF(__pyx_t_10);
   47286           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_clongdouble); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 311, __pyx_L1_error)
   47287           3 :   __Pyx_GOTREF(__pyx_t_7);
   47288           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47289           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 311, __pyx_L1_error)
   47290           3 :   __Pyx_GOTREF(__pyx_t_10);
   47291           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47292           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47293           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_flatten_to_array_clongdoubl); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 311, __pyx_L1_error)
   47294           3 :   __Pyx_GOTREF(__pyx_t_7);
   47295           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_10, __pyx_t_7) < 0) __PYX_ERR(0, 297, __pyx_L1_error)
   47296           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47297           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47298           3 :   __Pyx_XGOTREF(__pyx_v_13_csparsetools__LIL_FLATTEN_TO_ARRAY_DISPATCH);
   47299           3 :   __Pyx_DECREF_SET(__pyx_v_13_csparsetools__LIL_FLATTEN_TO_ARRAY_DISPATCH, ((PyObject*)__pyx_t_5));
   47300           3 :   __Pyx_GIVEREF(__pyx_t_5);
   47301           3 :   __pyx_t_5 = 0;
   47302             : 
   47303             :   /* "_csparsetools.pyx":316
   47304             :  * 
   47305             :  * 
   47306             :  * def lil_fancy_get(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   47307             :  *                   object[:] rows,
   47308             :  *                   object[:] datas,
   47309             :  */
   47310           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_43lil_fancy_get, 0, __pyx_n_s_lil_fancy_get, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 316, __pyx_L1_error)
   47311           3 :   __Pyx_GOTREF(__pyx_t_5);
   47312           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_get, __pyx_t_5) < 0) __PYX_ERR(0, 316, __pyx_L1_error)
   47313           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47314             : 
   47315             :   /* "_csparsetools.pyx":340
   47316             :  *     return _LIL_FANCY_GET_DISPATCH[i_idx.dtype](M, N, rows, datas, new_rows, new_datas, i_idx, j_idx)
   47317             :  * 
   47318             :  * def _lil_fancy_get_int32(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   47319             :  *                             object[:] rows,
   47320             :  *                             object[:] datas,
   47321             :  */
   47322           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_45_lil_fancy_get_int32, 0, __pyx_n_s_lil_fancy_get_int32, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 340, __pyx_L1_error)
   47323           3 :   __Pyx_GOTREF(__pyx_t_5);
   47324           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_get_int32, __pyx_t_5) < 0) __PYX_ERR(0, 340, __pyx_L1_error)
   47325           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47326             : 
   47327             :   /* "_csparsetools.pyx":370
   47328             :  *         new_rows[x] = new_row
   47329             :  *         new_datas[x] = new_data
   47330             :  * def _lil_fancy_get_int64(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   47331             :  *                             object[:] rows,
   47332             :  *                             object[:] datas,
   47333             :  */
   47334           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_47_lil_fancy_get_int64, 0, __pyx_n_s_lil_fancy_get_int64, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 370, __pyx_L1_error)
   47335           3 :   __Pyx_GOTREF(__pyx_t_5);
   47336           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_get_int64, __pyx_t_5) < 0) __PYX_ERR(0, 370, __pyx_L1_error)
   47337           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47338             : 
   47339             :   /* "_csparsetools.pyx":404
   47340             :  * cdef dict _LIL_FANCY_GET_DISPATCH = {
   47341             :  * 
   47342             :  * np.dtype(np.int32): _lil_fancy_get_int32,             # <<<<<<<<<<<<<<
   47343             :  * np.dtype(np.int64): _lil_fancy_get_int64,
   47344             :  * }
   47345             :  */
   47346           3 :   __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 404, __pyx_L1_error)
   47347           3 :   __Pyx_GOTREF(__pyx_t_5);
   47348           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 404, __pyx_L1_error)
   47349           3 :   __Pyx_GOTREF(__pyx_t_7);
   47350           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 404, __pyx_L1_error)
   47351           3 :   __Pyx_GOTREF(__pyx_t_10);
   47352           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47353           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 404, __pyx_L1_error)
   47354           3 :   __Pyx_GOTREF(__pyx_t_7);
   47355           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 404, __pyx_L1_error)
   47356           3 :   __Pyx_GOTREF(__pyx_t_4);
   47357           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47358           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 404, __pyx_L1_error)
   47359           3 :   __Pyx_GOTREF(__pyx_t_7);
   47360           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47361           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47362           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_lil_fancy_get_int32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 404, __pyx_L1_error)
   47363           3 :   __Pyx_GOTREF(__pyx_t_4);
   47364           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_7, __pyx_t_4) < 0) __PYX_ERR(0, 404, __pyx_L1_error)
   47365           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47366           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47367             : 
   47368             :   /* "_csparsetools.pyx":405
   47369             :  * 
   47370             :  * np.dtype(np.int32): _lil_fancy_get_int32,
   47371             :  * np.dtype(np.int64): _lil_fancy_get_int64,             # <<<<<<<<<<<<<<
   47372             :  * }
   47373             :  * 
   47374             :  */
   47375           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 405, __pyx_L1_error)
   47376           3 :   __Pyx_GOTREF(__pyx_t_4);
   47377           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_dtype); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 405, __pyx_L1_error)
   47378           3 :   __Pyx_GOTREF(__pyx_t_7);
   47379           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47380           3 :   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 405, __pyx_L1_error)
   47381           3 :   __Pyx_GOTREF(__pyx_t_4);
   47382           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_int64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 405, __pyx_L1_error)
   47383           3 :   __Pyx_GOTREF(__pyx_t_10);
   47384           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47385           3 :   __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 405, __pyx_L1_error)
   47386           3 :   __Pyx_GOTREF(__pyx_t_4);
   47387           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47388           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47389           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_fancy_get_int64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 405, __pyx_L1_error)
   47390           3 :   __Pyx_GOTREF(__pyx_t_10);
   47391           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 404, __pyx_L1_error)
   47392           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47393           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47394           3 :   __Pyx_XGOTREF(__pyx_v_13_csparsetools__LIL_FANCY_GET_DISPATCH);
   47395           3 :   __Pyx_DECREF_SET(__pyx_v_13_csparsetools__LIL_FANCY_GET_DISPATCH, ((PyObject*)__pyx_t_5));
   47396           3 :   __Pyx_GIVEREF(__pyx_t_5);
   47397           3 :   __pyx_t_5 = 0;
   47398             : 
   47399             :   /* "_csparsetools.pyx":411
   47400             :  * 
   47401             :  * 
   47402             :  * def lil_fancy_set(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   47403             :  *                   object[:] rows,
   47404             :  *                   object[:] data,
   47405             :  */
   47406           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_49lil_fancy_set, 0, __pyx_n_s_lil_fancy_set, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 411, __pyx_L1_error)
   47407           3 :   __Pyx_GOTREF(__pyx_t_5);
   47408           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set, __pyx_t_5) < 0) __PYX_ERR(0, 411, __pyx_L1_error)
   47409           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47410             : 
   47411             :   /* "_csparsetools.pyx":439
   47412             :  *     return _LIL_FANCY_SET_DISPATCH[i_idx.dtype, values.dtype](M, N, rows, data, i_idx, j_idx, values)
   47413             :  * 
   47414             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47415             :  * @cython.wraparound(False)
   47416             :  * def _lil_fancy_set_int32_bool_(cnp.npy_intp M, cnp.npy_intp N,
   47417             :  */
   47418           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_51_lil_fancy_set_int32_bool_, 0, __pyx_n_s_lil_fancy_set_int32_bool, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__61)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 439, __pyx_L1_error)
   47419           3 :   __Pyx_GOTREF(__pyx_t_5);
   47420           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int32_bool, __pyx_t_5) < 0) __PYX_ERR(0, 439, __pyx_L1_error)
   47421           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47422             : 
   47423             :   /* "_csparsetools.pyx":455
   47424             :  *             j = j_idx[x,y]
   47425             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47426             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47427             :  * @cython.wraparound(False)
   47428             :  * def _lil_fancy_set_int32_int8(cnp.npy_intp M, cnp.npy_intp N,
   47429             :  */
   47430           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_53_lil_fancy_set_int32_int8, 0, __pyx_n_s_lil_fancy_set_int32_int8, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L1_error)
   47431           3 :   __Pyx_GOTREF(__pyx_t_5);
   47432           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int32_int8, __pyx_t_5) < 0) __PYX_ERR(0, 455, __pyx_L1_error)
   47433           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47434             : 
   47435             :   /* "_csparsetools.pyx":471
   47436             :  *             j = j_idx[x,y]
   47437             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47438             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47439             :  * @cython.wraparound(False)
   47440             :  * def _lil_fancy_set_int32_uint8(cnp.npy_intp M, cnp.npy_intp N,
   47441             :  */
   47442           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_55_lil_fancy_set_int32_uint8, 0, __pyx_n_s_lil_fancy_set_int32_uint8, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__63)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 471, __pyx_L1_error)
   47443           3 :   __Pyx_GOTREF(__pyx_t_5);
   47444           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int32_uint8, __pyx_t_5) < 0) __PYX_ERR(0, 471, __pyx_L1_error)
   47445           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47446             : 
   47447             :   /* "_csparsetools.pyx":487
   47448             :  *             j = j_idx[x,y]
   47449             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47450             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47451             :  * @cython.wraparound(False)
   47452             :  * def _lil_fancy_set_int32_int16(cnp.npy_intp M, cnp.npy_intp N,
   47453             :  */
   47454           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_57_lil_fancy_set_int32_int16, 0, __pyx_n_s_lil_fancy_set_int32_int16, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 487, __pyx_L1_error)
   47455           3 :   __Pyx_GOTREF(__pyx_t_5);
   47456           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int32_int16, __pyx_t_5) < 0) __PYX_ERR(0, 487, __pyx_L1_error)
   47457           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47458             : 
   47459             :   /* "_csparsetools.pyx":503
   47460             :  *             j = j_idx[x,y]
   47461             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47462             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47463             :  * @cython.wraparound(False)
   47464             :  * def _lil_fancy_set_int32_uint16(cnp.npy_intp M, cnp.npy_intp N,
   47465             :  */
   47466           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_59_lil_fancy_set_int32_uint16, 0, __pyx_n_s_lil_fancy_set_int32_uint16, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__65)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 503, __pyx_L1_error)
   47467           3 :   __Pyx_GOTREF(__pyx_t_5);
   47468           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int32_uint16, __pyx_t_5) < 0) __PYX_ERR(0, 503, __pyx_L1_error)
   47469           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47470             : 
   47471             :   /* "_csparsetools.pyx":519
   47472             :  *             j = j_idx[x,y]
   47473             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47474             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47475             :  * @cython.wraparound(False)
   47476             :  * def _lil_fancy_set_int32_int32(cnp.npy_intp M, cnp.npy_intp N,
   47477             :  */
   47478           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_61_lil_fancy_set_int32_int32, 0, __pyx_n_s_lil_fancy_set_int32_int32, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 519, __pyx_L1_error)
   47479           3 :   __Pyx_GOTREF(__pyx_t_5);
   47480           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int32_int32, __pyx_t_5) < 0) __PYX_ERR(0, 519, __pyx_L1_error)
   47481           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47482             : 
   47483             :   /* "_csparsetools.pyx":535
   47484             :  *             j = j_idx[x,y]
   47485             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47486             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47487             :  * @cython.wraparound(False)
   47488             :  * def _lil_fancy_set_int32_uint32(cnp.npy_intp M, cnp.npy_intp N,
   47489             :  */
   47490           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_63_lil_fancy_set_int32_uint32, 0, __pyx_n_s_lil_fancy_set_int32_uint32, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 535, __pyx_L1_error)
   47491           3 :   __Pyx_GOTREF(__pyx_t_5);
   47492           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int32_uint32, __pyx_t_5) < 0) __PYX_ERR(0, 535, __pyx_L1_error)
   47493           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47494             : 
   47495             :   /* "_csparsetools.pyx":551
   47496             :  *             j = j_idx[x,y]
   47497             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47498             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47499             :  * @cython.wraparound(False)
   47500             :  * def _lil_fancy_set_int32_int64(cnp.npy_intp M, cnp.npy_intp N,
   47501             :  */
   47502           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_65_lil_fancy_set_int32_int64, 0, __pyx_n_s_lil_fancy_set_int32_int64, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__68)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 551, __pyx_L1_error)
   47503           3 :   __Pyx_GOTREF(__pyx_t_5);
   47504           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int32_int64, __pyx_t_5) < 0) __PYX_ERR(0, 551, __pyx_L1_error)
   47505           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47506             : 
   47507             :   /* "_csparsetools.pyx":567
   47508             :  *             j = j_idx[x,y]
   47509             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47510             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47511             :  * @cython.wraparound(False)
   47512             :  * def _lil_fancy_set_int32_uint64(cnp.npy_intp M, cnp.npy_intp N,
   47513             :  */
   47514           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_67_lil_fancy_set_int32_uint64, 0, __pyx_n_s_lil_fancy_set_int32_uint64, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__69)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 567, __pyx_L1_error)
   47515           3 :   __Pyx_GOTREF(__pyx_t_5);
   47516           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int32_uint64, __pyx_t_5) < 0) __PYX_ERR(0, 567, __pyx_L1_error)
   47517           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47518             : 
   47519             :   /* "_csparsetools.pyx":583
   47520             :  *             j = j_idx[x,y]
   47521             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47522             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47523             :  * @cython.wraparound(False)
   47524             :  * def _lil_fancy_set_int32_float32(cnp.npy_intp M, cnp.npy_intp N,
   47525             :  */
   47526           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_69_lil_fancy_set_int32_float32, 0, __pyx_n_s_lil_fancy_set_int32_float32, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 583, __pyx_L1_error)
   47527           3 :   __Pyx_GOTREF(__pyx_t_5);
   47528           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int32_float32, __pyx_t_5) < 0) __PYX_ERR(0, 583, __pyx_L1_error)
   47529           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47530             : 
   47531             :   /* "_csparsetools.pyx":599
   47532             :  *             j = j_idx[x,y]
   47533             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47534             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47535             :  * @cython.wraparound(False)
   47536             :  * def _lil_fancy_set_int32_float64(cnp.npy_intp M, cnp.npy_intp N,
   47537             :  */
   47538           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_71_lil_fancy_set_int32_float64, 0, __pyx_n_s_lil_fancy_set_int32_float64, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__71)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 599, __pyx_L1_error)
   47539           3 :   __Pyx_GOTREF(__pyx_t_5);
   47540           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int32_float64, __pyx_t_5) < 0) __PYX_ERR(0, 599, __pyx_L1_error)
   47541           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47542             : 
   47543             :   /* "_csparsetools.pyx":615
   47544             :  *             j = j_idx[x,y]
   47545             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47546             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47547             :  * @cython.wraparound(False)
   47548             :  * def _lil_fancy_set_int32_longdouble(cnp.npy_intp M, cnp.npy_intp N,
   47549             :  */
   47550           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_73_lil_fancy_set_int32_longdouble, 0, __pyx_n_s_lil_fancy_set_int32_longdouble, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 615, __pyx_L1_error)
   47551           3 :   __Pyx_GOTREF(__pyx_t_5);
   47552           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int32_longdouble, __pyx_t_5) < 0) __PYX_ERR(0, 615, __pyx_L1_error)
   47553           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47554             : 
   47555             :   /* "_csparsetools.pyx":631
   47556             :  *             j = j_idx[x,y]
   47557             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47558             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47559             :  * @cython.wraparound(False)
   47560             :  * def _lil_fancy_set_int32_complex64(cnp.npy_intp M, cnp.npy_intp N,
   47561             :  */
   47562           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_75_lil_fancy_set_int32_complex64, 0, __pyx_n_s_lil_fancy_set_int32_complex64, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__73)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 631, __pyx_L1_error)
   47563           3 :   __Pyx_GOTREF(__pyx_t_5);
   47564           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int32_complex64, __pyx_t_5) < 0) __PYX_ERR(0, 631, __pyx_L1_error)
   47565           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47566             : 
   47567             :   /* "_csparsetools.pyx":647
   47568             :  *             j = j_idx[x,y]
   47569             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47570             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47571             :  * @cython.wraparound(False)
   47572             :  * def _lil_fancy_set_int32_complex128(cnp.npy_intp M, cnp.npy_intp N,
   47573             :  */
   47574           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_77_lil_fancy_set_int32_complex128, 0, __pyx_n_s_lil_fancy_set_int32_complex128, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 647, __pyx_L1_error)
   47575           3 :   __Pyx_GOTREF(__pyx_t_5);
   47576           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int32_complex128, __pyx_t_5) < 0) __PYX_ERR(0, 647, __pyx_L1_error)
   47577           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47578             : 
   47579             :   /* "_csparsetools.pyx":663
   47580             :  *             j = j_idx[x,y]
   47581             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47582             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47583             :  * @cython.wraparound(False)
   47584             :  * def _lil_fancy_set_int32_clongdouble(cnp.npy_intp M, cnp.npy_intp N,
   47585             :  */
   47586           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_79_lil_fancy_set_int32_clongdouble, 0, __pyx_n_s_lil_fancy_set_int32_clongdouble, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__75)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 663, __pyx_L1_error)
   47587           3 :   __Pyx_GOTREF(__pyx_t_5);
   47588           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int32_clongdouble, __pyx_t_5) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
   47589           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47590             : 
   47591             :   /* "_csparsetools.pyx":679
   47592             :  *             j = j_idx[x,y]
   47593             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47594             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47595             :  * @cython.wraparound(False)
   47596             :  * def _lil_fancy_set_int64_bool_(cnp.npy_intp M, cnp.npy_intp N,
   47597             :  */
   47598           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_81_lil_fancy_set_int64_bool_, 0, __pyx_n_s_lil_fancy_set_int64_bool, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 679, __pyx_L1_error)
   47599           3 :   __Pyx_GOTREF(__pyx_t_5);
   47600           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int64_bool, __pyx_t_5) < 0) __PYX_ERR(0, 679, __pyx_L1_error)
   47601           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47602             : 
   47603             :   /* "_csparsetools.pyx":695
   47604             :  *             j = j_idx[x,y]
   47605             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47606             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47607             :  * @cython.wraparound(False)
   47608             :  * def _lil_fancy_set_int64_int8(cnp.npy_intp M, cnp.npy_intp N,
   47609             :  */
   47610           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_83_lil_fancy_set_int64_int8, 0, __pyx_n_s_lil_fancy_set_int64_int8, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__77)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 695, __pyx_L1_error)
   47611           3 :   __Pyx_GOTREF(__pyx_t_5);
   47612           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int64_int8, __pyx_t_5) < 0) __PYX_ERR(0, 695, __pyx_L1_error)
   47613           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47614             : 
   47615             :   /* "_csparsetools.pyx":711
   47616             :  *             j = j_idx[x,y]
   47617             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47618             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47619             :  * @cython.wraparound(False)
   47620             :  * def _lil_fancy_set_int64_uint8(cnp.npy_intp M, cnp.npy_intp N,
   47621             :  */
   47622           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_85_lil_fancy_set_int64_uint8, 0, __pyx_n_s_lil_fancy_set_int64_uint8, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 711, __pyx_L1_error)
   47623           3 :   __Pyx_GOTREF(__pyx_t_5);
   47624           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int64_uint8, __pyx_t_5) < 0) __PYX_ERR(0, 711, __pyx_L1_error)
   47625           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47626             : 
   47627             :   /* "_csparsetools.pyx":727
   47628             :  *             j = j_idx[x,y]
   47629             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47630             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47631             :  * @cython.wraparound(False)
   47632             :  * def _lil_fancy_set_int64_int16(cnp.npy_intp M, cnp.npy_intp N,
   47633             :  */
   47634           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_87_lil_fancy_set_int64_int16, 0, __pyx_n_s_lil_fancy_set_int64_int16, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__79)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 727, __pyx_L1_error)
   47635           3 :   __Pyx_GOTREF(__pyx_t_5);
   47636           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int64_int16, __pyx_t_5) < 0) __PYX_ERR(0, 727, __pyx_L1_error)
   47637           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47638             : 
   47639             :   /* "_csparsetools.pyx":743
   47640             :  *             j = j_idx[x,y]
   47641             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47642             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47643             :  * @cython.wraparound(False)
   47644             :  * def _lil_fancy_set_int64_uint16(cnp.npy_intp M, cnp.npy_intp N,
   47645             :  */
   47646           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_89_lil_fancy_set_int64_uint16, 0, __pyx_n_s_lil_fancy_set_int64_uint16, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__80)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 743, __pyx_L1_error)
   47647           3 :   __Pyx_GOTREF(__pyx_t_5);
   47648           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int64_uint16, __pyx_t_5) < 0) __PYX_ERR(0, 743, __pyx_L1_error)
   47649           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47650             : 
   47651             :   /* "_csparsetools.pyx":759
   47652             :  *             j = j_idx[x,y]
   47653             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47654             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47655             :  * @cython.wraparound(False)
   47656             :  * def _lil_fancy_set_int64_int32(cnp.npy_intp M, cnp.npy_intp N,
   47657             :  */
   47658           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_91_lil_fancy_set_int64_int32, 0, __pyx_n_s_lil_fancy_set_int64_int32, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__81)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 759, __pyx_L1_error)
   47659           3 :   __Pyx_GOTREF(__pyx_t_5);
   47660           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int64_int32, __pyx_t_5) < 0) __PYX_ERR(0, 759, __pyx_L1_error)
   47661           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47662             : 
   47663             :   /* "_csparsetools.pyx":775
   47664             :  *             j = j_idx[x,y]
   47665             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47666             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47667             :  * @cython.wraparound(False)
   47668             :  * def _lil_fancy_set_int64_uint32(cnp.npy_intp M, cnp.npy_intp N,
   47669             :  */
   47670           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_93_lil_fancy_set_int64_uint32, 0, __pyx_n_s_lil_fancy_set_int64_uint32, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 775, __pyx_L1_error)
   47671           3 :   __Pyx_GOTREF(__pyx_t_5);
   47672           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int64_uint32, __pyx_t_5) < 0) __PYX_ERR(0, 775, __pyx_L1_error)
   47673           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47674             : 
   47675             :   /* "_csparsetools.pyx":791
   47676             :  *             j = j_idx[x,y]
   47677             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47678             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47679             :  * @cython.wraparound(False)
   47680             :  * def _lil_fancy_set_int64_int64(cnp.npy_intp M, cnp.npy_intp N,
   47681             :  */
   47682           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_95_lil_fancy_set_int64_int64, 0, __pyx_n_s_lil_fancy_set_int64_int64, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__83)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 791, __pyx_L1_error)
   47683           3 :   __Pyx_GOTREF(__pyx_t_5);
   47684           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int64_int64, __pyx_t_5) < 0) __PYX_ERR(0, 791, __pyx_L1_error)
   47685           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47686             : 
   47687             :   /* "_csparsetools.pyx":807
   47688             :  *             j = j_idx[x,y]
   47689             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47690             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47691             :  * @cython.wraparound(False)
   47692             :  * def _lil_fancy_set_int64_uint64(cnp.npy_intp M, cnp.npy_intp N,
   47693             :  */
   47694           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_97_lil_fancy_set_int64_uint64, 0, __pyx_n_s_lil_fancy_set_int64_uint64, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 807, __pyx_L1_error)
   47695           3 :   __Pyx_GOTREF(__pyx_t_5);
   47696           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int64_uint64, __pyx_t_5) < 0) __PYX_ERR(0, 807, __pyx_L1_error)
   47697           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47698             : 
   47699             :   /* "_csparsetools.pyx":823
   47700             :  *             j = j_idx[x,y]
   47701             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47702             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47703             :  * @cython.wraparound(False)
   47704             :  * def _lil_fancy_set_int64_float32(cnp.npy_intp M, cnp.npy_intp N,
   47705             :  */
   47706           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_99_lil_fancy_set_int64_float32, 0, __pyx_n_s_lil_fancy_set_int64_float32, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__85)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 823, __pyx_L1_error)
   47707           3 :   __Pyx_GOTREF(__pyx_t_5);
   47708           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int64_float32, __pyx_t_5) < 0) __PYX_ERR(0, 823, __pyx_L1_error)
   47709           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47710             : 
   47711             :   /* "_csparsetools.pyx":839
   47712             :  *             j = j_idx[x,y]
   47713             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47714             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47715             :  * @cython.wraparound(False)
   47716             :  * def _lil_fancy_set_int64_float64(cnp.npy_intp M, cnp.npy_intp N,
   47717             :  */
   47718           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_101_lil_fancy_set_int64_float64, 0, __pyx_n_s_lil_fancy_set_int64_float64, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__86)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 839, __pyx_L1_error)
   47719           3 :   __Pyx_GOTREF(__pyx_t_5);
   47720           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int64_float64, __pyx_t_5) < 0) __PYX_ERR(0, 839, __pyx_L1_error)
   47721           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47722             : 
   47723             :   /* "_csparsetools.pyx":855
   47724             :  *             j = j_idx[x,y]
   47725             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47726             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47727             :  * @cython.wraparound(False)
   47728             :  * def _lil_fancy_set_int64_longdouble(cnp.npy_intp M, cnp.npy_intp N,
   47729             :  */
   47730           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_103_lil_fancy_set_int64_longdouble, 0, __pyx_n_s_lil_fancy_set_int64_longdouble, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__87)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 855, __pyx_L1_error)
   47731           3 :   __Pyx_GOTREF(__pyx_t_5);
   47732           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int64_longdouble, __pyx_t_5) < 0) __PYX_ERR(0, 855, __pyx_L1_error)
   47733           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47734             : 
   47735             :   /* "_csparsetools.pyx":871
   47736             :  *             j = j_idx[x,y]
   47737             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47738             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47739             :  * @cython.wraparound(False)
   47740             :  * def _lil_fancy_set_int64_complex64(cnp.npy_intp M, cnp.npy_intp N,
   47741             :  */
   47742           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_105_lil_fancy_set_int64_complex64, 0, __pyx_n_s_lil_fancy_set_int64_complex64, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 871, __pyx_L1_error)
   47743           3 :   __Pyx_GOTREF(__pyx_t_5);
   47744           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int64_complex64, __pyx_t_5) < 0) __PYX_ERR(0, 871, __pyx_L1_error)
   47745           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47746             : 
   47747             :   /* "_csparsetools.pyx":887
   47748             :  *             j = j_idx[x,y]
   47749             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47750             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47751             :  * @cython.wraparound(False)
   47752             :  * def _lil_fancy_set_int64_complex128(cnp.npy_intp M, cnp.npy_intp N,
   47753             :  */
   47754           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_107_lil_fancy_set_int64_complex128, 0, __pyx_n_s_lil_fancy_set_int64_complex128, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__89)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 887, __pyx_L1_error)
   47755           3 :   __Pyx_GOTREF(__pyx_t_5);
   47756           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int64_complex128, __pyx_t_5) < 0) __PYX_ERR(0, 887, __pyx_L1_error)
   47757           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47758             : 
   47759             :   /* "_csparsetools.pyx":903
   47760             :  *             j = j_idx[x,y]
   47761             :  *             lil_insert(M, N, rows, data, i, j, values[x, y])
   47762             :  * @cython.boundscheck(False)             # <<<<<<<<<<<<<<
   47763             :  * @cython.wraparound(False)
   47764             :  * def _lil_fancy_set_int64_clongdouble(cnp.npy_intp M, cnp.npy_intp N,
   47765             :  */
   47766           3 :   __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_13_csparsetools_109_lil_fancy_set_int64_clongdouble, 0, __pyx_n_s_lil_fancy_set_int64_clongdouble, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__90)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 903, __pyx_L1_error)
   47767           3 :   __Pyx_GOTREF(__pyx_t_5);
   47768           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_fancy_set_int64_clongdouble, __pyx_t_5) < 0) __PYX_ERR(0, 903, __pyx_L1_error)
   47769           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   47770             : 
   47771             :   /* "_csparsetools.pyx":923
   47772             :  * cdef dict _LIL_FANCY_SET_DISPATCH = {
   47773             :  * 
   47774             :  * (np.dtype(np.int32), np.dtype(np.bool_)): _lil_fancy_set_int32_bool_,             # <<<<<<<<<<<<<<
   47775             :  * (np.dtype(np.int32), np.dtype(np.int8)): _lil_fancy_set_int32_int8,
   47776             :  * (np.dtype(np.int32), np.dtype(np.uint8)): _lil_fancy_set_int32_uint8,
   47777             :  */
   47778           3 :   __pyx_t_5 = __Pyx_PyDict_NewPresized(30); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 923, __pyx_L1_error)
   47779           3 :   __Pyx_GOTREF(__pyx_t_5);
   47780           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 923, __pyx_L1_error)
   47781           3 :   __Pyx_GOTREF(__pyx_t_10);
   47782           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 923, __pyx_L1_error)
   47783           3 :   __Pyx_GOTREF(__pyx_t_4);
   47784           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47785           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 923, __pyx_L1_error)
   47786           3 :   __Pyx_GOTREF(__pyx_t_10);
   47787           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 923, __pyx_L1_error)
   47788           3 :   __Pyx_GOTREF(__pyx_t_7);
   47789           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47790           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 923, __pyx_L1_error)
   47791           3 :   __Pyx_GOTREF(__pyx_t_10);
   47792           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47793           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47794           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 923, __pyx_L1_error)
   47795           3 :   __Pyx_GOTREF(__pyx_t_7);
   47796           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 923, __pyx_L1_error)
   47797           3 :   __Pyx_GOTREF(__pyx_t_4);
   47798           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47799           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 923, __pyx_L1_error)
   47800           3 :   __Pyx_GOTREF(__pyx_t_7);
   47801           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_bool); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 923, __pyx_L1_error)
   47802           3 :   __Pyx_GOTREF(__pyx_t_11);
   47803           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47804           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 923, __pyx_L1_error)
   47805           3 :   __Pyx_GOTREF(__pyx_t_7);
   47806           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47807           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   47808           3 :   __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 923, __pyx_L1_error)
   47809           3 :   __Pyx_GOTREF(__pyx_t_11);
   47810           3 :   __Pyx_GIVEREF(__pyx_t_10);
   47811           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10)) __PYX_ERR(0, 923, __pyx_L1_error);
   47812           3 :   __Pyx_GIVEREF(__pyx_t_7);
   47813           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7)) __PYX_ERR(0, 923, __pyx_L1_error);
   47814           3 :   __pyx_t_10 = 0;
   47815           3 :   __pyx_t_7 = 0;
   47816           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_fancy_set_int32_bool); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 923, __pyx_L1_error)
   47817           3 :   __Pyx_GOTREF(__pyx_t_7);
   47818           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_11, __pyx_t_7) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   47819           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   47820           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47821             : 
   47822             :   /* "_csparsetools.pyx":924
   47823             :  * 
   47824             :  * (np.dtype(np.int32), np.dtype(np.bool_)): _lil_fancy_set_int32_bool_,
   47825             :  * (np.dtype(np.int32), np.dtype(np.int8)): _lil_fancy_set_int32_int8,             # <<<<<<<<<<<<<<
   47826             :  * (np.dtype(np.int32), np.dtype(np.uint8)): _lil_fancy_set_int32_uint8,
   47827             :  * (np.dtype(np.int32), np.dtype(np.int16)): _lil_fancy_set_int32_int16,
   47828             :  */
   47829           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 924, __pyx_L1_error)
   47830           3 :   __Pyx_GOTREF(__pyx_t_7);
   47831           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 924, __pyx_L1_error)
   47832           3 :   __Pyx_GOTREF(__pyx_t_11);
   47833           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47834           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 924, __pyx_L1_error)
   47835           3 :   __Pyx_GOTREF(__pyx_t_7);
   47836           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int32); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 924, __pyx_L1_error)
   47837           3 :   __Pyx_GOTREF(__pyx_t_10);
   47838           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47839           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 924, __pyx_L1_error)
   47840           3 :   __Pyx_GOTREF(__pyx_t_7);
   47841           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   47842           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47843           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 924, __pyx_L1_error)
   47844           3 :   __Pyx_GOTREF(__pyx_t_10);
   47845           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 924, __pyx_L1_error)
   47846           3 :   __Pyx_GOTREF(__pyx_t_11);
   47847           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47848           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 924, __pyx_L1_error)
   47849           3 :   __Pyx_GOTREF(__pyx_t_10);
   47850           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 924, __pyx_L1_error)
   47851           3 :   __Pyx_GOTREF(__pyx_t_4);
   47852           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47853           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 924, __pyx_L1_error)
   47854           3 :   __Pyx_GOTREF(__pyx_t_10);
   47855           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   47856           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47857           3 :   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 924, __pyx_L1_error)
   47858           3 :   __Pyx_GOTREF(__pyx_t_4);
   47859           3 :   __Pyx_GIVEREF(__pyx_t_7);
   47860           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(0, 924, __pyx_L1_error);
   47861           3 :   __Pyx_GIVEREF(__pyx_t_10);
   47862           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10)) __PYX_ERR(0, 924, __pyx_L1_error);
   47863           3 :   __pyx_t_7 = 0;
   47864           3 :   __pyx_t_10 = 0;
   47865           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_fancy_set_int32_int8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 924, __pyx_L1_error)
   47866           3 :   __Pyx_GOTREF(__pyx_t_10);
   47867           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   47868           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47869           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47870             : 
   47871             :   /* "_csparsetools.pyx":925
   47872             :  * (np.dtype(np.int32), np.dtype(np.bool_)): _lil_fancy_set_int32_bool_,
   47873             :  * (np.dtype(np.int32), np.dtype(np.int8)): _lil_fancy_set_int32_int8,
   47874             :  * (np.dtype(np.int32), np.dtype(np.uint8)): _lil_fancy_set_int32_uint8,             # <<<<<<<<<<<<<<
   47875             :  * (np.dtype(np.int32), np.dtype(np.int16)): _lil_fancy_set_int32_int16,
   47876             :  * (np.dtype(np.int32), np.dtype(np.uint16)): _lil_fancy_set_int32_uint16,
   47877             :  */
   47878           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 925, __pyx_L1_error)
   47879           3 :   __Pyx_GOTREF(__pyx_t_10);
   47880           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 925, __pyx_L1_error)
   47881           3 :   __Pyx_GOTREF(__pyx_t_4);
   47882           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47883           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 925, __pyx_L1_error)
   47884           3 :   __Pyx_GOTREF(__pyx_t_10);
   47885           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 925, __pyx_L1_error)
   47886           3 :   __Pyx_GOTREF(__pyx_t_7);
   47887           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47888           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 925, __pyx_L1_error)
   47889           3 :   __Pyx_GOTREF(__pyx_t_10);
   47890           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47891           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47892           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 925, __pyx_L1_error)
   47893           3 :   __Pyx_GOTREF(__pyx_t_7);
   47894           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 925, __pyx_L1_error)
   47895           3 :   __Pyx_GOTREF(__pyx_t_4);
   47896           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47897           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 925, __pyx_L1_error)
   47898           3 :   __Pyx_GOTREF(__pyx_t_7);
   47899           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_uint8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 925, __pyx_L1_error)
   47900           3 :   __Pyx_GOTREF(__pyx_t_11);
   47901           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47902           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 925, __pyx_L1_error)
   47903           3 :   __Pyx_GOTREF(__pyx_t_7);
   47904           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47905           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   47906           3 :   __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 925, __pyx_L1_error)
   47907           3 :   __Pyx_GOTREF(__pyx_t_11);
   47908           3 :   __Pyx_GIVEREF(__pyx_t_10);
   47909           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10)) __PYX_ERR(0, 925, __pyx_L1_error);
   47910           3 :   __Pyx_GIVEREF(__pyx_t_7);
   47911           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7)) __PYX_ERR(0, 925, __pyx_L1_error);
   47912           3 :   __pyx_t_10 = 0;
   47913           3 :   __pyx_t_7 = 0;
   47914           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_fancy_set_int32_uint8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 925, __pyx_L1_error)
   47915           3 :   __Pyx_GOTREF(__pyx_t_7);
   47916           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_11, __pyx_t_7) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   47917           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   47918           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47919             : 
   47920             :   /* "_csparsetools.pyx":926
   47921             :  * (np.dtype(np.int32), np.dtype(np.int8)): _lil_fancy_set_int32_int8,
   47922             :  * (np.dtype(np.int32), np.dtype(np.uint8)): _lil_fancy_set_int32_uint8,
   47923             :  * (np.dtype(np.int32), np.dtype(np.int16)): _lil_fancy_set_int32_int16,             # <<<<<<<<<<<<<<
   47924             :  * (np.dtype(np.int32), np.dtype(np.uint16)): _lil_fancy_set_int32_uint16,
   47925             :  * (np.dtype(np.int32), np.dtype(np.int32)): _lil_fancy_set_int32_int32,
   47926             :  */
   47927           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 926, __pyx_L1_error)
   47928           3 :   __Pyx_GOTREF(__pyx_t_7);
   47929           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 926, __pyx_L1_error)
   47930           3 :   __Pyx_GOTREF(__pyx_t_11);
   47931           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47932           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 926, __pyx_L1_error)
   47933           3 :   __Pyx_GOTREF(__pyx_t_7);
   47934           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int32); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 926, __pyx_L1_error)
   47935           3 :   __Pyx_GOTREF(__pyx_t_10);
   47936           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47937           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 926, __pyx_L1_error)
   47938           3 :   __Pyx_GOTREF(__pyx_t_7);
   47939           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   47940           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47941           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 926, __pyx_L1_error)
   47942           3 :   __Pyx_GOTREF(__pyx_t_10);
   47943           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 926, __pyx_L1_error)
   47944           3 :   __Pyx_GOTREF(__pyx_t_11);
   47945           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47946           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 926, __pyx_L1_error)
   47947           3 :   __Pyx_GOTREF(__pyx_t_10);
   47948           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 926, __pyx_L1_error)
   47949           3 :   __Pyx_GOTREF(__pyx_t_4);
   47950           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47951           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 926, __pyx_L1_error)
   47952           3 :   __Pyx_GOTREF(__pyx_t_10);
   47953           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   47954           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47955           3 :   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 926, __pyx_L1_error)
   47956           3 :   __Pyx_GOTREF(__pyx_t_4);
   47957           3 :   __Pyx_GIVEREF(__pyx_t_7);
   47958           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(0, 926, __pyx_L1_error);
   47959           3 :   __Pyx_GIVEREF(__pyx_t_10);
   47960           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10)) __PYX_ERR(0, 926, __pyx_L1_error);
   47961           3 :   __pyx_t_7 = 0;
   47962           3 :   __pyx_t_10 = 0;
   47963           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_fancy_set_int32_int16); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 926, __pyx_L1_error)
   47964           3 :   __Pyx_GOTREF(__pyx_t_10);
   47965           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   47966           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47967           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47968             : 
   47969             :   /* "_csparsetools.pyx":927
   47970             :  * (np.dtype(np.int32), np.dtype(np.uint8)): _lil_fancy_set_int32_uint8,
   47971             :  * (np.dtype(np.int32), np.dtype(np.int16)): _lil_fancy_set_int32_int16,
   47972             :  * (np.dtype(np.int32), np.dtype(np.uint16)): _lil_fancy_set_int32_uint16,             # <<<<<<<<<<<<<<
   47973             :  * (np.dtype(np.int32), np.dtype(np.int32)): _lil_fancy_set_int32_int32,
   47974             :  * (np.dtype(np.int32), np.dtype(np.uint32)): _lil_fancy_set_int32_uint32,
   47975             :  */
   47976           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 927, __pyx_L1_error)
   47977           3 :   __Pyx_GOTREF(__pyx_t_10);
   47978           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 927, __pyx_L1_error)
   47979           3 :   __Pyx_GOTREF(__pyx_t_4);
   47980           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47981           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 927, __pyx_L1_error)
   47982           3 :   __Pyx_GOTREF(__pyx_t_10);
   47983           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error)
   47984           3 :   __Pyx_GOTREF(__pyx_t_7);
   47985           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   47986           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 927, __pyx_L1_error)
   47987           3 :   __Pyx_GOTREF(__pyx_t_10);
   47988           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   47989           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47990           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error)
   47991           3 :   __Pyx_GOTREF(__pyx_t_7);
   47992           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 927, __pyx_L1_error)
   47993           3 :   __Pyx_GOTREF(__pyx_t_4);
   47994           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   47995           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error)
   47996           3 :   __Pyx_GOTREF(__pyx_t_7);
   47997           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_uint16); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 927, __pyx_L1_error)
   47998           3 :   __Pyx_GOTREF(__pyx_t_11);
   47999           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48000           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error)
   48001           3 :   __Pyx_GOTREF(__pyx_t_7);
   48002           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48003           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48004           3 :   __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 927, __pyx_L1_error)
   48005           3 :   __Pyx_GOTREF(__pyx_t_11);
   48006           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48007           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10)) __PYX_ERR(0, 927, __pyx_L1_error);
   48008           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48009           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error);
   48010           3 :   __pyx_t_10 = 0;
   48011           3 :   __pyx_t_7 = 0;
   48012           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_fancy_set_int32_uint16); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error)
   48013           3 :   __Pyx_GOTREF(__pyx_t_7);
   48014           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_11, __pyx_t_7) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48015           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48016           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48017             : 
   48018             :   /* "_csparsetools.pyx":928
   48019             :  * (np.dtype(np.int32), np.dtype(np.int16)): _lil_fancy_set_int32_int16,
   48020             :  * (np.dtype(np.int32), np.dtype(np.uint16)): _lil_fancy_set_int32_uint16,
   48021             :  * (np.dtype(np.int32), np.dtype(np.int32)): _lil_fancy_set_int32_int32,             # <<<<<<<<<<<<<<
   48022             :  * (np.dtype(np.int32), np.dtype(np.uint32)): _lil_fancy_set_int32_uint32,
   48023             :  * (np.dtype(np.int32), np.dtype(np.int64)): _lil_fancy_set_int32_int64,
   48024             :  */
   48025           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 928, __pyx_L1_error)
   48026           3 :   __Pyx_GOTREF(__pyx_t_7);
   48027           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 928, __pyx_L1_error)
   48028           3 :   __Pyx_GOTREF(__pyx_t_11);
   48029           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48030           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 928, __pyx_L1_error)
   48031           3 :   __Pyx_GOTREF(__pyx_t_7);
   48032           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int32); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 928, __pyx_L1_error)
   48033           3 :   __Pyx_GOTREF(__pyx_t_10);
   48034           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48035           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 928, __pyx_L1_error)
   48036           3 :   __Pyx_GOTREF(__pyx_t_7);
   48037           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48038           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48039           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 928, __pyx_L1_error)
   48040           3 :   __Pyx_GOTREF(__pyx_t_10);
   48041           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 928, __pyx_L1_error)
   48042           3 :   __Pyx_GOTREF(__pyx_t_11);
   48043           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48044           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 928, __pyx_L1_error)
   48045           3 :   __Pyx_GOTREF(__pyx_t_10);
   48046           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 928, __pyx_L1_error)
   48047           3 :   __Pyx_GOTREF(__pyx_t_4);
   48048           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48049           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 928, __pyx_L1_error)
   48050           3 :   __Pyx_GOTREF(__pyx_t_10);
   48051           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48052           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48053           3 :   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 928, __pyx_L1_error)
   48054           3 :   __Pyx_GOTREF(__pyx_t_4);
   48055           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48056           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(0, 928, __pyx_L1_error);
   48057           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48058           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10)) __PYX_ERR(0, 928, __pyx_L1_error);
   48059           3 :   __pyx_t_7 = 0;
   48060           3 :   __pyx_t_10 = 0;
   48061           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_fancy_set_int32_int32); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 928, __pyx_L1_error)
   48062           3 :   __Pyx_GOTREF(__pyx_t_10);
   48063           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48064           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48065           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48066             : 
   48067             :   /* "_csparsetools.pyx":929
   48068             :  * (np.dtype(np.int32), np.dtype(np.uint16)): _lil_fancy_set_int32_uint16,
   48069             :  * (np.dtype(np.int32), np.dtype(np.int32)): _lil_fancy_set_int32_int32,
   48070             :  * (np.dtype(np.int32), np.dtype(np.uint32)): _lil_fancy_set_int32_uint32,             # <<<<<<<<<<<<<<
   48071             :  * (np.dtype(np.int32), np.dtype(np.int64)): _lil_fancy_set_int32_int64,
   48072             :  * (np.dtype(np.int32), np.dtype(np.uint64)): _lil_fancy_set_int32_uint64,
   48073             :  */
   48074           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 929, __pyx_L1_error)
   48075           3 :   __Pyx_GOTREF(__pyx_t_10);
   48076           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 929, __pyx_L1_error)
   48077           3 :   __Pyx_GOTREF(__pyx_t_4);
   48078           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48079           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 929, __pyx_L1_error)
   48080           3 :   __Pyx_GOTREF(__pyx_t_10);
   48081           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 929, __pyx_L1_error)
   48082           3 :   __Pyx_GOTREF(__pyx_t_7);
   48083           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48084           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 929, __pyx_L1_error)
   48085           3 :   __Pyx_GOTREF(__pyx_t_10);
   48086           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48087           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48088           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 929, __pyx_L1_error)
   48089           3 :   __Pyx_GOTREF(__pyx_t_7);
   48090           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 929, __pyx_L1_error)
   48091           3 :   __Pyx_GOTREF(__pyx_t_4);
   48092           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48093           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 929, __pyx_L1_error)
   48094           3 :   __Pyx_GOTREF(__pyx_t_7);
   48095           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_uint32); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 929, __pyx_L1_error)
   48096           3 :   __Pyx_GOTREF(__pyx_t_11);
   48097           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48098           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 929, __pyx_L1_error)
   48099           3 :   __Pyx_GOTREF(__pyx_t_7);
   48100           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48101           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48102           3 :   __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 929, __pyx_L1_error)
   48103           3 :   __Pyx_GOTREF(__pyx_t_11);
   48104           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48105           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10)) __PYX_ERR(0, 929, __pyx_L1_error);
   48106           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48107           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7)) __PYX_ERR(0, 929, __pyx_L1_error);
   48108           3 :   __pyx_t_10 = 0;
   48109           3 :   __pyx_t_7 = 0;
   48110           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_fancy_set_int32_uint32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 929, __pyx_L1_error)
   48111           3 :   __Pyx_GOTREF(__pyx_t_7);
   48112           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_11, __pyx_t_7) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48113           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48114           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48115             : 
   48116             :   /* "_csparsetools.pyx":930
   48117             :  * (np.dtype(np.int32), np.dtype(np.int32)): _lil_fancy_set_int32_int32,
   48118             :  * (np.dtype(np.int32), np.dtype(np.uint32)): _lil_fancy_set_int32_uint32,
   48119             :  * (np.dtype(np.int32), np.dtype(np.int64)): _lil_fancy_set_int32_int64,             # <<<<<<<<<<<<<<
   48120             :  * (np.dtype(np.int32), np.dtype(np.uint64)): _lil_fancy_set_int32_uint64,
   48121             :  * (np.dtype(np.int32), np.dtype(np.float32)): _lil_fancy_set_int32_float32,
   48122             :  */
   48123           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 930, __pyx_L1_error)
   48124           3 :   __Pyx_GOTREF(__pyx_t_7);
   48125           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 930, __pyx_L1_error)
   48126           3 :   __Pyx_GOTREF(__pyx_t_11);
   48127           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48128           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 930, __pyx_L1_error)
   48129           3 :   __Pyx_GOTREF(__pyx_t_7);
   48130           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int32); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 930, __pyx_L1_error)
   48131           3 :   __Pyx_GOTREF(__pyx_t_10);
   48132           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48133           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 930, __pyx_L1_error)
   48134           3 :   __Pyx_GOTREF(__pyx_t_7);
   48135           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48136           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48137           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 930, __pyx_L1_error)
   48138           3 :   __Pyx_GOTREF(__pyx_t_10);
   48139           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 930, __pyx_L1_error)
   48140           3 :   __Pyx_GOTREF(__pyx_t_11);
   48141           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48142           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 930, __pyx_L1_error)
   48143           3 :   __Pyx_GOTREF(__pyx_t_10);
   48144           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 930, __pyx_L1_error)
   48145           3 :   __Pyx_GOTREF(__pyx_t_4);
   48146           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48147           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 930, __pyx_L1_error)
   48148           3 :   __Pyx_GOTREF(__pyx_t_10);
   48149           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48150           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48151           3 :   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 930, __pyx_L1_error)
   48152           3 :   __Pyx_GOTREF(__pyx_t_4);
   48153           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48154           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(0, 930, __pyx_L1_error);
   48155           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48156           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10)) __PYX_ERR(0, 930, __pyx_L1_error);
   48157           3 :   __pyx_t_7 = 0;
   48158           3 :   __pyx_t_10 = 0;
   48159           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_fancy_set_int32_int64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 930, __pyx_L1_error)
   48160           3 :   __Pyx_GOTREF(__pyx_t_10);
   48161           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48162           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48163           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48164             : 
   48165             :   /* "_csparsetools.pyx":931
   48166             :  * (np.dtype(np.int32), np.dtype(np.uint32)): _lil_fancy_set_int32_uint32,
   48167             :  * (np.dtype(np.int32), np.dtype(np.int64)): _lil_fancy_set_int32_int64,
   48168             :  * (np.dtype(np.int32), np.dtype(np.uint64)): _lil_fancy_set_int32_uint64,             # <<<<<<<<<<<<<<
   48169             :  * (np.dtype(np.int32), np.dtype(np.float32)): _lil_fancy_set_int32_float32,
   48170             :  * (np.dtype(np.int32), np.dtype(np.float64)): _lil_fancy_set_int32_float64,
   48171             :  */
   48172           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 931, __pyx_L1_error)
   48173           3 :   __Pyx_GOTREF(__pyx_t_10);
   48174           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 931, __pyx_L1_error)
   48175           3 :   __Pyx_GOTREF(__pyx_t_4);
   48176           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48177           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 931, __pyx_L1_error)
   48178           3 :   __Pyx_GOTREF(__pyx_t_10);
   48179           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 931, __pyx_L1_error)
   48180           3 :   __Pyx_GOTREF(__pyx_t_7);
   48181           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48182           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 931, __pyx_L1_error)
   48183           3 :   __Pyx_GOTREF(__pyx_t_10);
   48184           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48185           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48186           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 931, __pyx_L1_error)
   48187           3 :   __Pyx_GOTREF(__pyx_t_7);
   48188           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 931, __pyx_L1_error)
   48189           3 :   __Pyx_GOTREF(__pyx_t_4);
   48190           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48191           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 931, __pyx_L1_error)
   48192           3 :   __Pyx_GOTREF(__pyx_t_7);
   48193           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_uint64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 931, __pyx_L1_error)
   48194           3 :   __Pyx_GOTREF(__pyx_t_11);
   48195           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48196           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 931, __pyx_L1_error)
   48197           3 :   __Pyx_GOTREF(__pyx_t_7);
   48198           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48199           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48200           3 :   __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 931, __pyx_L1_error)
   48201           3 :   __Pyx_GOTREF(__pyx_t_11);
   48202           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48203           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10)) __PYX_ERR(0, 931, __pyx_L1_error);
   48204           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48205           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7)) __PYX_ERR(0, 931, __pyx_L1_error);
   48206           3 :   __pyx_t_10 = 0;
   48207           3 :   __pyx_t_7 = 0;
   48208           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_fancy_set_int32_uint64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 931, __pyx_L1_error)
   48209           3 :   __Pyx_GOTREF(__pyx_t_7);
   48210           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_11, __pyx_t_7) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48211           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48212           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48213             : 
   48214             :   /* "_csparsetools.pyx":932
   48215             :  * (np.dtype(np.int32), np.dtype(np.int64)): _lil_fancy_set_int32_int64,
   48216             :  * (np.dtype(np.int32), np.dtype(np.uint64)): _lil_fancy_set_int32_uint64,
   48217             :  * (np.dtype(np.int32), np.dtype(np.float32)): _lil_fancy_set_int32_float32,             # <<<<<<<<<<<<<<
   48218             :  * (np.dtype(np.int32), np.dtype(np.float64)): _lil_fancy_set_int32_float64,
   48219             :  * (np.dtype(np.int32), np.dtype(np.longdouble)): _lil_fancy_set_int32_longdouble,
   48220             :  */
   48221           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 932, __pyx_L1_error)
   48222           3 :   __Pyx_GOTREF(__pyx_t_7);
   48223           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 932, __pyx_L1_error)
   48224           3 :   __Pyx_GOTREF(__pyx_t_11);
   48225           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48226           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 932, __pyx_L1_error)
   48227           3 :   __Pyx_GOTREF(__pyx_t_7);
   48228           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int32); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 932, __pyx_L1_error)
   48229           3 :   __Pyx_GOTREF(__pyx_t_10);
   48230           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48231           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 932, __pyx_L1_error)
   48232           3 :   __Pyx_GOTREF(__pyx_t_7);
   48233           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48234           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48235           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 932, __pyx_L1_error)
   48236           3 :   __Pyx_GOTREF(__pyx_t_10);
   48237           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 932, __pyx_L1_error)
   48238           3 :   __Pyx_GOTREF(__pyx_t_11);
   48239           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48240           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 932, __pyx_L1_error)
   48241           3 :   __Pyx_GOTREF(__pyx_t_10);
   48242           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_float32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 932, __pyx_L1_error)
   48243           3 :   __Pyx_GOTREF(__pyx_t_4);
   48244           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48245           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 932, __pyx_L1_error)
   48246           3 :   __Pyx_GOTREF(__pyx_t_10);
   48247           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48248           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48249           3 :   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 932, __pyx_L1_error)
   48250           3 :   __Pyx_GOTREF(__pyx_t_4);
   48251           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48252           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(0, 932, __pyx_L1_error);
   48253           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48254           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10)) __PYX_ERR(0, 932, __pyx_L1_error);
   48255           3 :   __pyx_t_7 = 0;
   48256           3 :   __pyx_t_10 = 0;
   48257           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_fancy_set_int32_float32); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 932, __pyx_L1_error)
   48258           3 :   __Pyx_GOTREF(__pyx_t_10);
   48259           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48260           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48261           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48262             : 
   48263             :   /* "_csparsetools.pyx":933
   48264             :  * (np.dtype(np.int32), np.dtype(np.uint64)): _lil_fancy_set_int32_uint64,
   48265             :  * (np.dtype(np.int32), np.dtype(np.float32)): _lil_fancy_set_int32_float32,
   48266             :  * (np.dtype(np.int32), np.dtype(np.float64)): _lil_fancy_set_int32_float64,             # <<<<<<<<<<<<<<
   48267             :  * (np.dtype(np.int32), np.dtype(np.longdouble)): _lil_fancy_set_int32_longdouble,
   48268             :  * (np.dtype(np.int32), np.dtype(np.complex64)): _lil_fancy_set_int32_complex64,
   48269             :  */
   48270           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 933, __pyx_L1_error)
   48271           3 :   __Pyx_GOTREF(__pyx_t_10);
   48272           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 933, __pyx_L1_error)
   48273           3 :   __Pyx_GOTREF(__pyx_t_4);
   48274           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48275           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 933, __pyx_L1_error)
   48276           3 :   __Pyx_GOTREF(__pyx_t_10);
   48277           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 933, __pyx_L1_error)
   48278           3 :   __Pyx_GOTREF(__pyx_t_7);
   48279           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48280           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 933, __pyx_L1_error)
   48281           3 :   __Pyx_GOTREF(__pyx_t_10);
   48282           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48283           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48284           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 933, __pyx_L1_error)
   48285           3 :   __Pyx_GOTREF(__pyx_t_7);
   48286           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 933, __pyx_L1_error)
   48287           3 :   __Pyx_GOTREF(__pyx_t_4);
   48288           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48289           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 933, __pyx_L1_error)
   48290           3 :   __Pyx_GOTREF(__pyx_t_7);
   48291           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_float64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 933, __pyx_L1_error)
   48292           3 :   __Pyx_GOTREF(__pyx_t_11);
   48293           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48294           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 933, __pyx_L1_error)
   48295           3 :   __Pyx_GOTREF(__pyx_t_7);
   48296           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48297           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48298           3 :   __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 933, __pyx_L1_error)
   48299           3 :   __Pyx_GOTREF(__pyx_t_11);
   48300           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48301           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10)) __PYX_ERR(0, 933, __pyx_L1_error);
   48302           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48303           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7)) __PYX_ERR(0, 933, __pyx_L1_error);
   48304           3 :   __pyx_t_10 = 0;
   48305           3 :   __pyx_t_7 = 0;
   48306           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_fancy_set_int32_float64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 933, __pyx_L1_error)
   48307           3 :   __Pyx_GOTREF(__pyx_t_7);
   48308           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_11, __pyx_t_7) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48309           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48310           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48311             : 
   48312             :   /* "_csparsetools.pyx":934
   48313             :  * (np.dtype(np.int32), np.dtype(np.float32)): _lil_fancy_set_int32_float32,
   48314             :  * (np.dtype(np.int32), np.dtype(np.float64)): _lil_fancy_set_int32_float64,
   48315             :  * (np.dtype(np.int32), np.dtype(np.longdouble)): _lil_fancy_set_int32_longdouble,             # <<<<<<<<<<<<<<
   48316             :  * (np.dtype(np.int32), np.dtype(np.complex64)): _lil_fancy_set_int32_complex64,
   48317             :  * (np.dtype(np.int32), np.dtype(np.complex128)): _lil_fancy_set_int32_complex128,
   48318             :  */
   48319           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 934, __pyx_L1_error)
   48320           3 :   __Pyx_GOTREF(__pyx_t_7);
   48321           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 934, __pyx_L1_error)
   48322           3 :   __Pyx_GOTREF(__pyx_t_11);
   48323           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48324           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 934, __pyx_L1_error)
   48325           3 :   __Pyx_GOTREF(__pyx_t_7);
   48326           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int32); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 934, __pyx_L1_error)
   48327           3 :   __Pyx_GOTREF(__pyx_t_10);
   48328           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48329           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 934, __pyx_L1_error)
   48330           3 :   __Pyx_GOTREF(__pyx_t_7);
   48331           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48332           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48333           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 934, __pyx_L1_error)
   48334           3 :   __Pyx_GOTREF(__pyx_t_10);
   48335           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 934, __pyx_L1_error)
   48336           3 :   __Pyx_GOTREF(__pyx_t_11);
   48337           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48338           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 934, __pyx_L1_error)
   48339           3 :   __Pyx_GOTREF(__pyx_t_10);
   48340           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_longdouble); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 934, __pyx_L1_error)
   48341           3 :   __Pyx_GOTREF(__pyx_t_4);
   48342           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48343           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 934, __pyx_L1_error)
   48344           3 :   __Pyx_GOTREF(__pyx_t_10);
   48345           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48346           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48347           3 :   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 934, __pyx_L1_error)
   48348           3 :   __Pyx_GOTREF(__pyx_t_4);
   48349           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48350           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(0, 934, __pyx_L1_error);
   48351           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48352           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10)) __PYX_ERR(0, 934, __pyx_L1_error);
   48353           3 :   __pyx_t_7 = 0;
   48354           3 :   __pyx_t_10 = 0;
   48355           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_fancy_set_int32_longdouble); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 934, __pyx_L1_error)
   48356           3 :   __Pyx_GOTREF(__pyx_t_10);
   48357           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48358           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48359           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48360             : 
   48361             :   /* "_csparsetools.pyx":935
   48362             :  * (np.dtype(np.int32), np.dtype(np.float64)): _lil_fancy_set_int32_float64,
   48363             :  * (np.dtype(np.int32), np.dtype(np.longdouble)): _lil_fancy_set_int32_longdouble,
   48364             :  * (np.dtype(np.int32), np.dtype(np.complex64)): _lil_fancy_set_int32_complex64,             # <<<<<<<<<<<<<<
   48365             :  * (np.dtype(np.int32), np.dtype(np.complex128)): _lil_fancy_set_int32_complex128,
   48366             :  * (np.dtype(np.int32), np.dtype(np.clongdouble)): _lil_fancy_set_int32_clongdouble,
   48367             :  */
   48368           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 935, __pyx_L1_error)
   48369           3 :   __Pyx_GOTREF(__pyx_t_10);
   48370           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 935, __pyx_L1_error)
   48371           3 :   __Pyx_GOTREF(__pyx_t_4);
   48372           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48373           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 935, __pyx_L1_error)
   48374           3 :   __Pyx_GOTREF(__pyx_t_10);
   48375           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 935, __pyx_L1_error)
   48376           3 :   __Pyx_GOTREF(__pyx_t_7);
   48377           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48378           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 935, __pyx_L1_error)
   48379           3 :   __Pyx_GOTREF(__pyx_t_10);
   48380           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48381           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48382           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 935, __pyx_L1_error)
   48383           3 :   __Pyx_GOTREF(__pyx_t_7);
   48384           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 935, __pyx_L1_error)
   48385           3 :   __Pyx_GOTREF(__pyx_t_4);
   48386           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48387           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 935, __pyx_L1_error)
   48388           3 :   __Pyx_GOTREF(__pyx_t_7);
   48389           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_complex64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 935, __pyx_L1_error)
   48390           3 :   __Pyx_GOTREF(__pyx_t_11);
   48391           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48392           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 935, __pyx_L1_error)
   48393           3 :   __Pyx_GOTREF(__pyx_t_7);
   48394           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48395           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48396           3 :   __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 935, __pyx_L1_error)
   48397           3 :   __Pyx_GOTREF(__pyx_t_11);
   48398           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48399           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10)) __PYX_ERR(0, 935, __pyx_L1_error);
   48400           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48401           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7)) __PYX_ERR(0, 935, __pyx_L1_error);
   48402           3 :   __pyx_t_10 = 0;
   48403           3 :   __pyx_t_7 = 0;
   48404           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_fancy_set_int32_complex64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 935, __pyx_L1_error)
   48405           3 :   __Pyx_GOTREF(__pyx_t_7);
   48406           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_11, __pyx_t_7) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48407           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48408           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48409             : 
   48410             :   /* "_csparsetools.pyx":936
   48411             :  * (np.dtype(np.int32), np.dtype(np.longdouble)): _lil_fancy_set_int32_longdouble,
   48412             :  * (np.dtype(np.int32), np.dtype(np.complex64)): _lil_fancy_set_int32_complex64,
   48413             :  * (np.dtype(np.int32), np.dtype(np.complex128)): _lil_fancy_set_int32_complex128,             # <<<<<<<<<<<<<<
   48414             :  * (np.dtype(np.int32), np.dtype(np.clongdouble)): _lil_fancy_set_int32_clongdouble,
   48415             :  * (np.dtype(np.int64), np.dtype(np.bool_)): _lil_fancy_set_int64_bool_,
   48416             :  */
   48417           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 936, __pyx_L1_error)
   48418           3 :   __Pyx_GOTREF(__pyx_t_7);
   48419           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 936, __pyx_L1_error)
   48420           3 :   __Pyx_GOTREF(__pyx_t_11);
   48421           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48422           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 936, __pyx_L1_error)
   48423           3 :   __Pyx_GOTREF(__pyx_t_7);
   48424           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int32); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 936, __pyx_L1_error)
   48425           3 :   __Pyx_GOTREF(__pyx_t_10);
   48426           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48427           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 936, __pyx_L1_error)
   48428           3 :   __Pyx_GOTREF(__pyx_t_7);
   48429           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48430           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48431           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 936, __pyx_L1_error)
   48432           3 :   __Pyx_GOTREF(__pyx_t_10);
   48433           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 936, __pyx_L1_error)
   48434           3 :   __Pyx_GOTREF(__pyx_t_11);
   48435           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48436           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 936, __pyx_L1_error)
   48437           3 :   __Pyx_GOTREF(__pyx_t_10);
   48438           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_complex128); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 936, __pyx_L1_error)
   48439           3 :   __Pyx_GOTREF(__pyx_t_4);
   48440           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48441           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 936, __pyx_L1_error)
   48442           3 :   __Pyx_GOTREF(__pyx_t_10);
   48443           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48444           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48445           3 :   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 936, __pyx_L1_error)
   48446           3 :   __Pyx_GOTREF(__pyx_t_4);
   48447           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48448           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(0, 936, __pyx_L1_error);
   48449           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48450           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10)) __PYX_ERR(0, 936, __pyx_L1_error);
   48451           3 :   __pyx_t_7 = 0;
   48452           3 :   __pyx_t_10 = 0;
   48453           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_fancy_set_int32_complex128); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 936, __pyx_L1_error)
   48454           3 :   __Pyx_GOTREF(__pyx_t_10);
   48455           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48456           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48457           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48458             : 
   48459             :   /* "_csparsetools.pyx":937
   48460             :  * (np.dtype(np.int32), np.dtype(np.complex64)): _lil_fancy_set_int32_complex64,
   48461             :  * (np.dtype(np.int32), np.dtype(np.complex128)): _lil_fancy_set_int32_complex128,
   48462             :  * (np.dtype(np.int32), np.dtype(np.clongdouble)): _lil_fancy_set_int32_clongdouble,             # <<<<<<<<<<<<<<
   48463             :  * (np.dtype(np.int64), np.dtype(np.bool_)): _lil_fancy_set_int64_bool_,
   48464             :  * (np.dtype(np.int64), np.dtype(np.int8)): _lil_fancy_set_int64_int8,
   48465             :  */
   48466           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 937, __pyx_L1_error)
   48467           3 :   __Pyx_GOTREF(__pyx_t_10);
   48468           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 937, __pyx_L1_error)
   48469           3 :   __Pyx_GOTREF(__pyx_t_4);
   48470           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48471           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 937, __pyx_L1_error)
   48472           3 :   __Pyx_GOTREF(__pyx_t_10);
   48473           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 937, __pyx_L1_error)
   48474           3 :   __Pyx_GOTREF(__pyx_t_7);
   48475           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48476           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 937, __pyx_L1_error)
   48477           3 :   __Pyx_GOTREF(__pyx_t_10);
   48478           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48479           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48480           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 937, __pyx_L1_error)
   48481           3 :   __Pyx_GOTREF(__pyx_t_7);
   48482           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 937, __pyx_L1_error)
   48483           3 :   __Pyx_GOTREF(__pyx_t_4);
   48484           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48485           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 937, __pyx_L1_error)
   48486           3 :   __Pyx_GOTREF(__pyx_t_7);
   48487           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_clongdouble); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 937, __pyx_L1_error)
   48488           3 :   __Pyx_GOTREF(__pyx_t_11);
   48489           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48490           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 937, __pyx_L1_error)
   48491           3 :   __Pyx_GOTREF(__pyx_t_7);
   48492           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48493           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48494           3 :   __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 937, __pyx_L1_error)
   48495           3 :   __Pyx_GOTREF(__pyx_t_11);
   48496           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48497           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10)) __PYX_ERR(0, 937, __pyx_L1_error);
   48498           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48499           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7)) __PYX_ERR(0, 937, __pyx_L1_error);
   48500           3 :   __pyx_t_10 = 0;
   48501           3 :   __pyx_t_7 = 0;
   48502           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_fancy_set_int32_clongdouble); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 937, __pyx_L1_error)
   48503           3 :   __Pyx_GOTREF(__pyx_t_7);
   48504           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_11, __pyx_t_7) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48505           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48506           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48507             : 
   48508             :   /* "_csparsetools.pyx":938
   48509             :  * (np.dtype(np.int32), np.dtype(np.complex128)): _lil_fancy_set_int32_complex128,
   48510             :  * (np.dtype(np.int32), np.dtype(np.clongdouble)): _lil_fancy_set_int32_clongdouble,
   48511             :  * (np.dtype(np.int64), np.dtype(np.bool_)): _lil_fancy_set_int64_bool_,             # <<<<<<<<<<<<<<
   48512             :  * (np.dtype(np.int64), np.dtype(np.int8)): _lil_fancy_set_int64_int8,
   48513             :  * (np.dtype(np.int64), np.dtype(np.uint8)): _lil_fancy_set_int64_uint8,
   48514             :  */
   48515           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 938, __pyx_L1_error)
   48516           3 :   __Pyx_GOTREF(__pyx_t_7);
   48517           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 938, __pyx_L1_error)
   48518           3 :   __Pyx_GOTREF(__pyx_t_11);
   48519           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48520           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 938, __pyx_L1_error)
   48521           3 :   __Pyx_GOTREF(__pyx_t_7);
   48522           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 938, __pyx_L1_error)
   48523           3 :   __Pyx_GOTREF(__pyx_t_10);
   48524           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48525           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 938, __pyx_L1_error)
   48526           3 :   __Pyx_GOTREF(__pyx_t_7);
   48527           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48528           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48529           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 938, __pyx_L1_error)
   48530           3 :   __Pyx_GOTREF(__pyx_t_10);
   48531           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 938, __pyx_L1_error)
   48532           3 :   __Pyx_GOTREF(__pyx_t_11);
   48533           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48534           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 938, __pyx_L1_error)
   48535           3 :   __Pyx_GOTREF(__pyx_t_10);
   48536           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_bool); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 938, __pyx_L1_error)
   48537           3 :   __Pyx_GOTREF(__pyx_t_4);
   48538           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48539           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 938, __pyx_L1_error)
   48540           3 :   __Pyx_GOTREF(__pyx_t_10);
   48541           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48542           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48543           3 :   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 938, __pyx_L1_error)
   48544           3 :   __Pyx_GOTREF(__pyx_t_4);
   48545           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48546           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(0, 938, __pyx_L1_error);
   48547           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48548           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10)) __PYX_ERR(0, 938, __pyx_L1_error);
   48549           3 :   __pyx_t_7 = 0;
   48550           3 :   __pyx_t_10 = 0;
   48551           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_fancy_set_int64_bool); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 938, __pyx_L1_error)
   48552           3 :   __Pyx_GOTREF(__pyx_t_10);
   48553           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48554           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48555           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48556             : 
   48557             :   /* "_csparsetools.pyx":939
   48558             :  * (np.dtype(np.int32), np.dtype(np.clongdouble)): _lil_fancy_set_int32_clongdouble,
   48559             :  * (np.dtype(np.int64), np.dtype(np.bool_)): _lil_fancy_set_int64_bool_,
   48560             :  * (np.dtype(np.int64), np.dtype(np.int8)): _lil_fancy_set_int64_int8,             # <<<<<<<<<<<<<<
   48561             :  * (np.dtype(np.int64), np.dtype(np.uint8)): _lil_fancy_set_int64_uint8,
   48562             :  * (np.dtype(np.int64), np.dtype(np.int16)): _lil_fancy_set_int64_int16,
   48563             :  */
   48564           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 939, __pyx_L1_error)
   48565           3 :   __Pyx_GOTREF(__pyx_t_10);
   48566           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 939, __pyx_L1_error)
   48567           3 :   __Pyx_GOTREF(__pyx_t_4);
   48568           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48569           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 939, __pyx_L1_error)
   48570           3 :   __Pyx_GOTREF(__pyx_t_10);
   48571           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 939, __pyx_L1_error)
   48572           3 :   __Pyx_GOTREF(__pyx_t_7);
   48573           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48574           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 939, __pyx_L1_error)
   48575           3 :   __Pyx_GOTREF(__pyx_t_10);
   48576           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48577           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48578           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 939, __pyx_L1_error)
   48579           3 :   __Pyx_GOTREF(__pyx_t_7);
   48580           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 939, __pyx_L1_error)
   48581           3 :   __Pyx_GOTREF(__pyx_t_4);
   48582           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48583           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 939, __pyx_L1_error)
   48584           3 :   __Pyx_GOTREF(__pyx_t_7);
   48585           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 939, __pyx_L1_error)
   48586           3 :   __Pyx_GOTREF(__pyx_t_11);
   48587           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48588           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 939, __pyx_L1_error)
   48589           3 :   __Pyx_GOTREF(__pyx_t_7);
   48590           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48591           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48592           3 :   __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 939, __pyx_L1_error)
   48593           3 :   __Pyx_GOTREF(__pyx_t_11);
   48594           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48595           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10)) __PYX_ERR(0, 939, __pyx_L1_error);
   48596           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48597           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7)) __PYX_ERR(0, 939, __pyx_L1_error);
   48598           3 :   __pyx_t_10 = 0;
   48599           3 :   __pyx_t_7 = 0;
   48600           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_fancy_set_int64_int8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 939, __pyx_L1_error)
   48601           3 :   __Pyx_GOTREF(__pyx_t_7);
   48602           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_11, __pyx_t_7) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48603           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48604           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48605             : 
   48606             :   /* "_csparsetools.pyx":940
   48607             :  * (np.dtype(np.int64), np.dtype(np.bool_)): _lil_fancy_set_int64_bool_,
   48608             :  * (np.dtype(np.int64), np.dtype(np.int8)): _lil_fancy_set_int64_int8,
   48609             :  * (np.dtype(np.int64), np.dtype(np.uint8)): _lil_fancy_set_int64_uint8,             # <<<<<<<<<<<<<<
   48610             :  * (np.dtype(np.int64), np.dtype(np.int16)): _lil_fancy_set_int64_int16,
   48611             :  * (np.dtype(np.int64), np.dtype(np.uint16)): _lil_fancy_set_int64_uint16,
   48612             :  */
   48613           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 940, __pyx_L1_error)
   48614           3 :   __Pyx_GOTREF(__pyx_t_7);
   48615           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 940, __pyx_L1_error)
   48616           3 :   __Pyx_GOTREF(__pyx_t_11);
   48617           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48618           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 940, __pyx_L1_error)
   48619           3 :   __Pyx_GOTREF(__pyx_t_7);
   48620           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 940, __pyx_L1_error)
   48621           3 :   __Pyx_GOTREF(__pyx_t_10);
   48622           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48623           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 940, __pyx_L1_error)
   48624           3 :   __Pyx_GOTREF(__pyx_t_7);
   48625           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48626           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48627           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 940, __pyx_L1_error)
   48628           3 :   __Pyx_GOTREF(__pyx_t_10);
   48629           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 940, __pyx_L1_error)
   48630           3 :   __Pyx_GOTREF(__pyx_t_11);
   48631           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48632           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 940, __pyx_L1_error)
   48633           3 :   __Pyx_GOTREF(__pyx_t_10);
   48634           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_uint8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 940, __pyx_L1_error)
   48635           3 :   __Pyx_GOTREF(__pyx_t_4);
   48636           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48637           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 940, __pyx_L1_error)
   48638           3 :   __Pyx_GOTREF(__pyx_t_10);
   48639           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48640           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48641           3 :   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 940, __pyx_L1_error)
   48642           3 :   __Pyx_GOTREF(__pyx_t_4);
   48643           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48644           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(0, 940, __pyx_L1_error);
   48645           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48646           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10)) __PYX_ERR(0, 940, __pyx_L1_error);
   48647           3 :   __pyx_t_7 = 0;
   48648           3 :   __pyx_t_10 = 0;
   48649           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_fancy_set_int64_uint8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 940, __pyx_L1_error)
   48650           3 :   __Pyx_GOTREF(__pyx_t_10);
   48651           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48652           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48653           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48654             : 
   48655             :   /* "_csparsetools.pyx":941
   48656             :  * (np.dtype(np.int64), np.dtype(np.int8)): _lil_fancy_set_int64_int8,
   48657             :  * (np.dtype(np.int64), np.dtype(np.uint8)): _lil_fancy_set_int64_uint8,
   48658             :  * (np.dtype(np.int64), np.dtype(np.int16)): _lil_fancy_set_int64_int16,             # <<<<<<<<<<<<<<
   48659             :  * (np.dtype(np.int64), np.dtype(np.uint16)): _lil_fancy_set_int64_uint16,
   48660             :  * (np.dtype(np.int64), np.dtype(np.int32)): _lil_fancy_set_int64_int32,
   48661             :  */
   48662           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 941, __pyx_L1_error)
   48663           3 :   __Pyx_GOTREF(__pyx_t_10);
   48664           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 941, __pyx_L1_error)
   48665           3 :   __Pyx_GOTREF(__pyx_t_4);
   48666           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48667           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 941, __pyx_L1_error)
   48668           3 :   __Pyx_GOTREF(__pyx_t_10);
   48669           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error)
   48670           3 :   __Pyx_GOTREF(__pyx_t_7);
   48671           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48672           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 941, __pyx_L1_error)
   48673           3 :   __Pyx_GOTREF(__pyx_t_10);
   48674           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48675           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48676           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error)
   48677           3 :   __Pyx_GOTREF(__pyx_t_7);
   48678           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 941, __pyx_L1_error)
   48679           3 :   __Pyx_GOTREF(__pyx_t_4);
   48680           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48681           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error)
   48682           3 :   __Pyx_GOTREF(__pyx_t_7);
   48683           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int16); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 941, __pyx_L1_error)
   48684           3 :   __Pyx_GOTREF(__pyx_t_11);
   48685           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48686           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error)
   48687           3 :   __Pyx_GOTREF(__pyx_t_7);
   48688           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48689           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48690           3 :   __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 941, __pyx_L1_error)
   48691           3 :   __Pyx_GOTREF(__pyx_t_11);
   48692           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48693           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10)) __PYX_ERR(0, 941, __pyx_L1_error);
   48694           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48695           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error);
   48696           3 :   __pyx_t_10 = 0;
   48697           3 :   __pyx_t_7 = 0;
   48698           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_fancy_set_int64_int16); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error)
   48699           3 :   __Pyx_GOTREF(__pyx_t_7);
   48700           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_11, __pyx_t_7) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48701           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48702           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48703             : 
   48704             :   /* "_csparsetools.pyx":942
   48705             :  * (np.dtype(np.int64), np.dtype(np.uint8)): _lil_fancy_set_int64_uint8,
   48706             :  * (np.dtype(np.int64), np.dtype(np.int16)): _lil_fancy_set_int64_int16,
   48707             :  * (np.dtype(np.int64), np.dtype(np.uint16)): _lil_fancy_set_int64_uint16,             # <<<<<<<<<<<<<<
   48708             :  * (np.dtype(np.int64), np.dtype(np.int32)): _lil_fancy_set_int64_int32,
   48709             :  * (np.dtype(np.int64), np.dtype(np.uint32)): _lil_fancy_set_int64_uint32,
   48710             :  */
   48711           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 942, __pyx_L1_error)
   48712           3 :   __Pyx_GOTREF(__pyx_t_7);
   48713           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 942, __pyx_L1_error)
   48714           3 :   __Pyx_GOTREF(__pyx_t_11);
   48715           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48716           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 942, __pyx_L1_error)
   48717           3 :   __Pyx_GOTREF(__pyx_t_7);
   48718           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 942, __pyx_L1_error)
   48719           3 :   __Pyx_GOTREF(__pyx_t_10);
   48720           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48721           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 942, __pyx_L1_error)
   48722           3 :   __Pyx_GOTREF(__pyx_t_7);
   48723           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48724           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48725           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 942, __pyx_L1_error)
   48726           3 :   __Pyx_GOTREF(__pyx_t_10);
   48727           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 942, __pyx_L1_error)
   48728           3 :   __Pyx_GOTREF(__pyx_t_11);
   48729           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48730           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 942, __pyx_L1_error)
   48731           3 :   __Pyx_GOTREF(__pyx_t_10);
   48732           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_uint16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 942, __pyx_L1_error)
   48733           3 :   __Pyx_GOTREF(__pyx_t_4);
   48734           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48735           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 942, __pyx_L1_error)
   48736           3 :   __Pyx_GOTREF(__pyx_t_10);
   48737           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48738           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48739           3 :   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 942, __pyx_L1_error)
   48740           3 :   __Pyx_GOTREF(__pyx_t_4);
   48741           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48742           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(0, 942, __pyx_L1_error);
   48743           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48744           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10)) __PYX_ERR(0, 942, __pyx_L1_error);
   48745           3 :   __pyx_t_7 = 0;
   48746           3 :   __pyx_t_10 = 0;
   48747           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_fancy_set_int64_uint16); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 942, __pyx_L1_error)
   48748           3 :   __Pyx_GOTREF(__pyx_t_10);
   48749           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48750           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48751           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48752             : 
   48753             :   /* "_csparsetools.pyx":943
   48754             :  * (np.dtype(np.int64), np.dtype(np.int16)): _lil_fancy_set_int64_int16,
   48755             :  * (np.dtype(np.int64), np.dtype(np.uint16)): _lil_fancy_set_int64_uint16,
   48756             :  * (np.dtype(np.int64), np.dtype(np.int32)): _lil_fancy_set_int64_int32,             # <<<<<<<<<<<<<<
   48757             :  * (np.dtype(np.int64), np.dtype(np.uint32)): _lil_fancy_set_int64_uint32,
   48758             :  * (np.dtype(np.int64), np.dtype(np.int64)): _lil_fancy_set_int64_int64,
   48759             :  */
   48760           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 943, __pyx_L1_error)
   48761           3 :   __Pyx_GOTREF(__pyx_t_10);
   48762           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 943, __pyx_L1_error)
   48763           3 :   __Pyx_GOTREF(__pyx_t_4);
   48764           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48765           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 943, __pyx_L1_error)
   48766           3 :   __Pyx_GOTREF(__pyx_t_10);
   48767           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 943, __pyx_L1_error)
   48768           3 :   __Pyx_GOTREF(__pyx_t_7);
   48769           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48770           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 943, __pyx_L1_error)
   48771           3 :   __Pyx_GOTREF(__pyx_t_10);
   48772           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48773           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48774           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 943, __pyx_L1_error)
   48775           3 :   __Pyx_GOTREF(__pyx_t_7);
   48776           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 943, __pyx_L1_error)
   48777           3 :   __Pyx_GOTREF(__pyx_t_4);
   48778           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48779           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 943, __pyx_L1_error)
   48780           3 :   __Pyx_GOTREF(__pyx_t_7);
   48781           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int32); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 943, __pyx_L1_error)
   48782           3 :   __Pyx_GOTREF(__pyx_t_11);
   48783           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48784           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 943, __pyx_L1_error)
   48785           3 :   __Pyx_GOTREF(__pyx_t_7);
   48786           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48787           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48788           3 :   __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 943, __pyx_L1_error)
   48789           3 :   __Pyx_GOTREF(__pyx_t_11);
   48790           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48791           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10)) __PYX_ERR(0, 943, __pyx_L1_error);
   48792           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48793           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7)) __PYX_ERR(0, 943, __pyx_L1_error);
   48794           3 :   __pyx_t_10 = 0;
   48795           3 :   __pyx_t_7 = 0;
   48796           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_fancy_set_int64_int32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 943, __pyx_L1_error)
   48797           3 :   __Pyx_GOTREF(__pyx_t_7);
   48798           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_11, __pyx_t_7) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48799           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48800           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48801             : 
   48802             :   /* "_csparsetools.pyx":944
   48803             :  * (np.dtype(np.int64), np.dtype(np.uint16)): _lil_fancy_set_int64_uint16,
   48804             :  * (np.dtype(np.int64), np.dtype(np.int32)): _lil_fancy_set_int64_int32,
   48805             :  * (np.dtype(np.int64), np.dtype(np.uint32)): _lil_fancy_set_int64_uint32,             # <<<<<<<<<<<<<<
   48806             :  * (np.dtype(np.int64), np.dtype(np.int64)): _lil_fancy_set_int64_int64,
   48807             :  * (np.dtype(np.int64), np.dtype(np.uint64)): _lil_fancy_set_int64_uint64,
   48808             :  */
   48809           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 944, __pyx_L1_error)
   48810           3 :   __Pyx_GOTREF(__pyx_t_7);
   48811           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 944, __pyx_L1_error)
   48812           3 :   __Pyx_GOTREF(__pyx_t_11);
   48813           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48814           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 944, __pyx_L1_error)
   48815           3 :   __Pyx_GOTREF(__pyx_t_7);
   48816           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 944, __pyx_L1_error)
   48817           3 :   __Pyx_GOTREF(__pyx_t_10);
   48818           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48819           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 944, __pyx_L1_error)
   48820           3 :   __Pyx_GOTREF(__pyx_t_7);
   48821           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48822           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48823           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 944, __pyx_L1_error)
   48824           3 :   __Pyx_GOTREF(__pyx_t_10);
   48825           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 944, __pyx_L1_error)
   48826           3 :   __Pyx_GOTREF(__pyx_t_11);
   48827           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48828           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 944, __pyx_L1_error)
   48829           3 :   __Pyx_GOTREF(__pyx_t_10);
   48830           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_uint32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 944, __pyx_L1_error)
   48831           3 :   __Pyx_GOTREF(__pyx_t_4);
   48832           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48833           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 944, __pyx_L1_error)
   48834           3 :   __Pyx_GOTREF(__pyx_t_10);
   48835           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48836           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48837           3 :   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 944, __pyx_L1_error)
   48838           3 :   __Pyx_GOTREF(__pyx_t_4);
   48839           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48840           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(0, 944, __pyx_L1_error);
   48841           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48842           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10)) __PYX_ERR(0, 944, __pyx_L1_error);
   48843           3 :   __pyx_t_7 = 0;
   48844           3 :   __pyx_t_10 = 0;
   48845           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_fancy_set_int64_uint32); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 944, __pyx_L1_error)
   48846           3 :   __Pyx_GOTREF(__pyx_t_10);
   48847           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48848           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48849           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48850             : 
   48851             :   /* "_csparsetools.pyx":945
   48852             :  * (np.dtype(np.int64), np.dtype(np.int32)): _lil_fancy_set_int64_int32,
   48853             :  * (np.dtype(np.int64), np.dtype(np.uint32)): _lil_fancy_set_int64_uint32,
   48854             :  * (np.dtype(np.int64), np.dtype(np.int64)): _lil_fancy_set_int64_int64,             # <<<<<<<<<<<<<<
   48855             :  * (np.dtype(np.int64), np.dtype(np.uint64)): _lil_fancy_set_int64_uint64,
   48856             :  * (np.dtype(np.int64), np.dtype(np.float32)): _lil_fancy_set_int64_float32,
   48857             :  */
   48858           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 945, __pyx_L1_error)
   48859           3 :   __Pyx_GOTREF(__pyx_t_10);
   48860           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 945, __pyx_L1_error)
   48861           3 :   __Pyx_GOTREF(__pyx_t_4);
   48862           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48863           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 945, __pyx_L1_error)
   48864           3 :   __Pyx_GOTREF(__pyx_t_10);
   48865           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 945, __pyx_L1_error)
   48866           3 :   __Pyx_GOTREF(__pyx_t_7);
   48867           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48868           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 945, __pyx_L1_error)
   48869           3 :   __Pyx_GOTREF(__pyx_t_10);
   48870           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48871           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48872           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 945, __pyx_L1_error)
   48873           3 :   __Pyx_GOTREF(__pyx_t_7);
   48874           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 945, __pyx_L1_error)
   48875           3 :   __Pyx_GOTREF(__pyx_t_4);
   48876           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48877           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 945, __pyx_L1_error)
   48878           3 :   __Pyx_GOTREF(__pyx_t_7);
   48879           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 945, __pyx_L1_error)
   48880           3 :   __Pyx_GOTREF(__pyx_t_11);
   48881           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48882           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 945, __pyx_L1_error)
   48883           3 :   __Pyx_GOTREF(__pyx_t_7);
   48884           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48885           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48886           3 :   __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 945, __pyx_L1_error)
   48887           3 :   __Pyx_GOTREF(__pyx_t_11);
   48888           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48889           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10)) __PYX_ERR(0, 945, __pyx_L1_error);
   48890           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48891           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7)) __PYX_ERR(0, 945, __pyx_L1_error);
   48892           3 :   __pyx_t_10 = 0;
   48893           3 :   __pyx_t_7 = 0;
   48894           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_fancy_set_int64_int64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 945, __pyx_L1_error)
   48895           3 :   __Pyx_GOTREF(__pyx_t_7);
   48896           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_11, __pyx_t_7) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48897           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48898           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48899             : 
   48900             :   /* "_csparsetools.pyx":946
   48901             :  * (np.dtype(np.int64), np.dtype(np.uint32)): _lil_fancy_set_int64_uint32,
   48902             :  * (np.dtype(np.int64), np.dtype(np.int64)): _lil_fancy_set_int64_int64,
   48903             :  * (np.dtype(np.int64), np.dtype(np.uint64)): _lil_fancy_set_int64_uint64,             # <<<<<<<<<<<<<<
   48904             :  * (np.dtype(np.int64), np.dtype(np.float32)): _lil_fancy_set_int64_float32,
   48905             :  * (np.dtype(np.int64), np.dtype(np.float64)): _lil_fancy_set_int64_float64,
   48906             :  */
   48907           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 946, __pyx_L1_error)
   48908           3 :   __Pyx_GOTREF(__pyx_t_7);
   48909           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 946, __pyx_L1_error)
   48910           3 :   __Pyx_GOTREF(__pyx_t_11);
   48911           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48912           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 946, __pyx_L1_error)
   48913           3 :   __Pyx_GOTREF(__pyx_t_7);
   48914           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 946, __pyx_L1_error)
   48915           3 :   __Pyx_GOTREF(__pyx_t_10);
   48916           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48917           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 946, __pyx_L1_error)
   48918           3 :   __Pyx_GOTREF(__pyx_t_7);
   48919           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48920           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48921           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 946, __pyx_L1_error)
   48922           3 :   __Pyx_GOTREF(__pyx_t_10);
   48923           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 946, __pyx_L1_error)
   48924           3 :   __Pyx_GOTREF(__pyx_t_11);
   48925           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48926           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 946, __pyx_L1_error)
   48927           3 :   __Pyx_GOTREF(__pyx_t_10);
   48928           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_uint64); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 946, __pyx_L1_error)
   48929           3 :   __Pyx_GOTREF(__pyx_t_4);
   48930           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48931           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 946, __pyx_L1_error)
   48932           3 :   __Pyx_GOTREF(__pyx_t_10);
   48933           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48934           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48935           3 :   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 946, __pyx_L1_error)
   48936           3 :   __Pyx_GOTREF(__pyx_t_4);
   48937           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48938           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(0, 946, __pyx_L1_error);
   48939           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48940           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10)) __PYX_ERR(0, 946, __pyx_L1_error);
   48941           3 :   __pyx_t_7 = 0;
   48942           3 :   __pyx_t_10 = 0;
   48943           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_fancy_set_int64_uint64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 946, __pyx_L1_error)
   48944           3 :   __Pyx_GOTREF(__pyx_t_10);
   48945           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48946           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48947           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48948             : 
   48949             :   /* "_csparsetools.pyx":947
   48950             :  * (np.dtype(np.int64), np.dtype(np.int64)): _lil_fancy_set_int64_int64,
   48951             :  * (np.dtype(np.int64), np.dtype(np.uint64)): _lil_fancy_set_int64_uint64,
   48952             :  * (np.dtype(np.int64), np.dtype(np.float32)): _lil_fancy_set_int64_float32,             # <<<<<<<<<<<<<<
   48953             :  * (np.dtype(np.int64), np.dtype(np.float64)): _lil_fancy_set_int64_float64,
   48954             :  * (np.dtype(np.int64), np.dtype(np.longdouble)): _lil_fancy_set_int64_longdouble,
   48955             :  */
   48956           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 947, __pyx_L1_error)
   48957           3 :   __Pyx_GOTREF(__pyx_t_10);
   48958           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 947, __pyx_L1_error)
   48959           3 :   __Pyx_GOTREF(__pyx_t_4);
   48960           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48961           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 947, __pyx_L1_error)
   48962           3 :   __Pyx_GOTREF(__pyx_t_10);
   48963           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 947, __pyx_L1_error)
   48964           3 :   __Pyx_GOTREF(__pyx_t_7);
   48965           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   48966           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 947, __pyx_L1_error)
   48967           3 :   __Pyx_GOTREF(__pyx_t_10);
   48968           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48969           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48970           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 947, __pyx_L1_error)
   48971           3 :   __Pyx_GOTREF(__pyx_t_7);
   48972           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 947, __pyx_L1_error)
   48973           3 :   __Pyx_GOTREF(__pyx_t_4);
   48974           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48975           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 947, __pyx_L1_error)
   48976           3 :   __Pyx_GOTREF(__pyx_t_7);
   48977           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_float32); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 947, __pyx_L1_error)
   48978           3 :   __Pyx_GOTREF(__pyx_t_11);
   48979           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48980           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 947, __pyx_L1_error)
   48981           3 :   __Pyx_GOTREF(__pyx_t_7);
   48982           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   48983           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48984           3 :   __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 947, __pyx_L1_error)
   48985           3 :   __Pyx_GOTREF(__pyx_t_11);
   48986           3 :   __Pyx_GIVEREF(__pyx_t_10);
   48987           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10)) __PYX_ERR(0, 947, __pyx_L1_error);
   48988           3 :   __Pyx_GIVEREF(__pyx_t_7);
   48989           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7)) __PYX_ERR(0, 947, __pyx_L1_error);
   48990           3 :   __pyx_t_10 = 0;
   48991           3 :   __pyx_t_7 = 0;
   48992           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_fancy_set_int64_float32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 947, __pyx_L1_error)
   48993           3 :   __Pyx_GOTREF(__pyx_t_7);
   48994           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_11, __pyx_t_7) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   48995           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   48996           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   48997             : 
   48998             :   /* "_csparsetools.pyx":948
   48999             :  * (np.dtype(np.int64), np.dtype(np.uint64)): _lil_fancy_set_int64_uint64,
   49000             :  * (np.dtype(np.int64), np.dtype(np.float32)): _lil_fancy_set_int64_float32,
   49001             :  * (np.dtype(np.int64), np.dtype(np.float64)): _lil_fancy_set_int64_float64,             # <<<<<<<<<<<<<<
   49002             :  * (np.dtype(np.int64), np.dtype(np.longdouble)): _lil_fancy_set_int64_longdouble,
   49003             :  * (np.dtype(np.int64), np.dtype(np.complex64)): _lil_fancy_set_int64_complex64,
   49004             :  */
   49005           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 948, __pyx_L1_error)
   49006           3 :   __Pyx_GOTREF(__pyx_t_7);
   49007           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 948, __pyx_L1_error)
   49008           3 :   __Pyx_GOTREF(__pyx_t_11);
   49009           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   49010           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 948, __pyx_L1_error)
   49011           3 :   __Pyx_GOTREF(__pyx_t_7);
   49012           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 948, __pyx_L1_error)
   49013           3 :   __Pyx_GOTREF(__pyx_t_10);
   49014           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   49015           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 948, __pyx_L1_error)
   49016           3 :   __Pyx_GOTREF(__pyx_t_7);
   49017           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   49018           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49019           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 948, __pyx_L1_error)
   49020           3 :   __Pyx_GOTREF(__pyx_t_10);
   49021           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 948, __pyx_L1_error)
   49022           3 :   __Pyx_GOTREF(__pyx_t_11);
   49023           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49024           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 948, __pyx_L1_error)
   49025           3 :   __Pyx_GOTREF(__pyx_t_10);
   49026           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_float64); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 948, __pyx_L1_error)
   49027           3 :   __Pyx_GOTREF(__pyx_t_4);
   49028           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49029           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 948, __pyx_L1_error)
   49030           3 :   __Pyx_GOTREF(__pyx_t_10);
   49031           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   49032           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   49033           3 :   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 948, __pyx_L1_error)
   49034           3 :   __Pyx_GOTREF(__pyx_t_4);
   49035           3 :   __Pyx_GIVEREF(__pyx_t_7);
   49036           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(0, 948, __pyx_L1_error);
   49037           3 :   __Pyx_GIVEREF(__pyx_t_10);
   49038           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10)) __PYX_ERR(0, 948, __pyx_L1_error);
   49039           3 :   __pyx_t_7 = 0;
   49040           3 :   __pyx_t_10 = 0;
   49041           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_fancy_set_int64_float64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 948, __pyx_L1_error)
   49042           3 :   __Pyx_GOTREF(__pyx_t_10);
   49043           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   49044           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   49045           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49046             : 
   49047             :   /* "_csparsetools.pyx":949
   49048             :  * (np.dtype(np.int64), np.dtype(np.float32)): _lil_fancy_set_int64_float32,
   49049             :  * (np.dtype(np.int64), np.dtype(np.float64)): _lil_fancy_set_int64_float64,
   49050             :  * (np.dtype(np.int64), np.dtype(np.longdouble)): _lil_fancy_set_int64_longdouble,             # <<<<<<<<<<<<<<
   49051             :  * (np.dtype(np.int64), np.dtype(np.complex64)): _lil_fancy_set_int64_complex64,
   49052             :  * (np.dtype(np.int64), np.dtype(np.complex128)): _lil_fancy_set_int64_complex128,
   49053             :  */
   49054           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 949, __pyx_L1_error)
   49055           3 :   __Pyx_GOTREF(__pyx_t_10);
   49056           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 949, __pyx_L1_error)
   49057           3 :   __Pyx_GOTREF(__pyx_t_4);
   49058           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49059           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 949, __pyx_L1_error)
   49060           3 :   __Pyx_GOTREF(__pyx_t_10);
   49061           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 949, __pyx_L1_error)
   49062           3 :   __Pyx_GOTREF(__pyx_t_7);
   49063           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49064           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 949, __pyx_L1_error)
   49065           3 :   __Pyx_GOTREF(__pyx_t_10);
   49066           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   49067           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   49068           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 949, __pyx_L1_error)
   49069           3 :   __Pyx_GOTREF(__pyx_t_7);
   49070           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 949, __pyx_L1_error)
   49071           3 :   __Pyx_GOTREF(__pyx_t_4);
   49072           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   49073           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 949, __pyx_L1_error)
   49074           3 :   __Pyx_GOTREF(__pyx_t_7);
   49075           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_longdouble); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 949, __pyx_L1_error)
   49076           3 :   __Pyx_GOTREF(__pyx_t_11);
   49077           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   49078           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 949, __pyx_L1_error)
   49079           3 :   __Pyx_GOTREF(__pyx_t_7);
   49080           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   49081           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   49082           3 :   __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 949, __pyx_L1_error)
   49083           3 :   __Pyx_GOTREF(__pyx_t_11);
   49084           3 :   __Pyx_GIVEREF(__pyx_t_10);
   49085           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10)) __PYX_ERR(0, 949, __pyx_L1_error);
   49086           3 :   __Pyx_GIVEREF(__pyx_t_7);
   49087           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7)) __PYX_ERR(0, 949, __pyx_L1_error);
   49088           3 :   __pyx_t_10 = 0;
   49089           3 :   __pyx_t_7 = 0;
   49090           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_fancy_set_int64_longdouble); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 949, __pyx_L1_error)
   49091           3 :   __Pyx_GOTREF(__pyx_t_7);
   49092           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_11, __pyx_t_7) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   49093           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   49094           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   49095             : 
   49096             :   /* "_csparsetools.pyx":950
   49097             :  * (np.dtype(np.int64), np.dtype(np.float64)): _lil_fancy_set_int64_float64,
   49098             :  * (np.dtype(np.int64), np.dtype(np.longdouble)): _lil_fancy_set_int64_longdouble,
   49099             :  * (np.dtype(np.int64), np.dtype(np.complex64)): _lil_fancy_set_int64_complex64,             # <<<<<<<<<<<<<<
   49100             :  * (np.dtype(np.int64), np.dtype(np.complex128)): _lil_fancy_set_int64_complex128,
   49101             :  * (np.dtype(np.int64), np.dtype(np.clongdouble)): _lil_fancy_set_int64_clongdouble,
   49102             :  */
   49103           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 950, __pyx_L1_error)
   49104           3 :   __Pyx_GOTREF(__pyx_t_7);
   49105           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 950, __pyx_L1_error)
   49106           3 :   __Pyx_GOTREF(__pyx_t_11);
   49107           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   49108           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 950, __pyx_L1_error)
   49109           3 :   __Pyx_GOTREF(__pyx_t_7);
   49110           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 950, __pyx_L1_error)
   49111           3 :   __Pyx_GOTREF(__pyx_t_10);
   49112           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   49113           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 950, __pyx_L1_error)
   49114           3 :   __Pyx_GOTREF(__pyx_t_7);
   49115           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   49116           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49117           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 950, __pyx_L1_error)
   49118           3 :   __Pyx_GOTREF(__pyx_t_10);
   49119           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 950, __pyx_L1_error)
   49120           3 :   __Pyx_GOTREF(__pyx_t_11);
   49121           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49122           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 950, __pyx_L1_error)
   49123           3 :   __Pyx_GOTREF(__pyx_t_10);
   49124           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_complex64); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 950, __pyx_L1_error)
   49125           3 :   __Pyx_GOTREF(__pyx_t_4);
   49126           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49127           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 950, __pyx_L1_error)
   49128           3 :   __Pyx_GOTREF(__pyx_t_10);
   49129           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   49130           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   49131           3 :   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 950, __pyx_L1_error)
   49132           3 :   __Pyx_GOTREF(__pyx_t_4);
   49133           3 :   __Pyx_GIVEREF(__pyx_t_7);
   49134           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(0, 950, __pyx_L1_error);
   49135           3 :   __Pyx_GIVEREF(__pyx_t_10);
   49136           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10)) __PYX_ERR(0, 950, __pyx_L1_error);
   49137           3 :   __pyx_t_7 = 0;
   49138           3 :   __pyx_t_10 = 0;
   49139           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_fancy_set_int64_complex64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 950, __pyx_L1_error)
   49140           3 :   __Pyx_GOTREF(__pyx_t_10);
   49141           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   49142           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   49143           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49144             : 
   49145             :   /* "_csparsetools.pyx":951
   49146             :  * (np.dtype(np.int64), np.dtype(np.longdouble)): _lil_fancy_set_int64_longdouble,
   49147             :  * (np.dtype(np.int64), np.dtype(np.complex64)): _lil_fancy_set_int64_complex64,
   49148             :  * (np.dtype(np.int64), np.dtype(np.complex128)): _lil_fancy_set_int64_complex128,             # <<<<<<<<<<<<<<
   49149             :  * (np.dtype(np.int64), np.dtype(np.clongdouble)): _lil_fancy_set_int64_clongdouble,
   49150             :  * }
   49151             :  */
   49152           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 951, __pyx_L1_error)
   49153           3 :   __Pyx_GOTREF(__pyx_t_10);
   49154           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 951, __pyx_L1_error)
   49155           3 :   __Pyx_GOTREF(__pyx_t_4);
   49156           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49157           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 951, __pyx_L1_error)
   49158           3 :   __Pyx_GOTREF(__pyx_t_10);
   49159           3 :   __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 951, __pyx_L1_error)
   49160           3 :   __Pyx_GOTREF(__pyx_t_7);
   49161           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49162           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 951, __pyx_L1_error)
   49163           3 :   __Pyx_GOTREF(__pyx_t_10);
   49164           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   49165           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   49166           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 951, __pyx_L1_error)
   49167           3 :   __Pyx_GOTREF(__pyx_t_7);
   49168           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 951, __pyx_L1_error)
   49169           3 :   __Pyx_GOTREF(__pyx_t_4);
   49170           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   49171           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 951, __pyx_L1_error)
   49172           3 :   __Pyx_GOTREF(__pyx_t_7);
   49173           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_complex128); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 951, __pyx_L1_error)
   49174           3 :   __Pyx_GOTREF(__pyx_t_11);
   49175           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   49176           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 951, __pyx_L1_error)
   49177           3 :   __Pyx_GOTREF(__pyx_t_7);
   49178           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   49179           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   49180           3 :   __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 951, __pyx_L1_error)
   49181           3 :   __Pyx_GOTREF(__pyx_t_11);
   49182           3 :   __Pyx_GIVEREF(__pyx_t_10);
   49183           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10)) __PYX_ERR(0, 951, __pyx_L1_error);
   49184           3 :   __Pyx_GIVEREF(__pyx_t_7);
   49185           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7)) __PYX_ERR(0, 951, __pyx_L1_error);
   49186           3 :   __pyx_t_10 = 0;
   49187           3 :   __pyx_t_7 = 0;
   49188           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_lil_fancy_set_int64_complex128); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 951, __pyx_L1_error)
   49189           3 :   __Pyx_GOTREF(__pyx_t_7);
   49190           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_11, __pyx_t_7) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   49191           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   49192           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   49193             : 
   49194             :   /* "_csparsetools.pyx":952
   49195             :  * (np.dtype(np.int64), np.dtype(np.complex64)): _lil_fancy_set_int64_complex64,
   49196             :  * (np.dtype(np.int64), np.dtype(np.complex128)): _lil_fancy_set_int64_complex128,
   49197             :  * (np.dtype(np.int64), np.dtype(np.clongdouble)): _lil_fancy_set_int64_clongdouble,             # <<<<<<<<<<<<<<
   49198             :  * }
   49199             :  * 
   49200             :  */
   49201           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 952, __pyx_L1_error)
   49202           3 :   __Pyx_GOTREF(__pyx_t_7);
   49203           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 952, __pyx_L1_error)
   49204           3 :   __Pyx_GOTREF(__pyx_t_11);
   49205           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   49206           3 :   __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 952, __pyx_L1_error)
   49207           3 :   __Pyx_GOTREF(__pyx_t_7);
   49208           3 :   __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 952, __pyx_L1_error)
   49209           3 :   __Pyx_GOTREF(__pyx_t_10);
   49210           3 :   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   49211           3 :   __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 952, __pyx_L1_error)
   49212           3 :   __Pyx_GOTREF(__pyx_t_7);
   49213           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   49214           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49215           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 952, __pyx_L1_error)
   49216           3 :   __Pyx_GOTREF(__pyx_t_10);
   49217           3 :   __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 952, __pyx_L1_error)
   49218           3 :   __Pyx_GOTREF(__pyx_t_11);
   49219           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49220           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 952, __pyx_L1_error)
   49221           3 :   __Pyx_GOTREF(__pyx_t_10);
   49222           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_clongdouble); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 952, __pyx_L1_error)
   49223           3 :   __Pyx_GOTREF(__pyx_t_4);
   49224           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49225           3 :   __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 952, __pyx_L1_error)
   49226           3 :   __Pyx_GOTREF(__pyx_t_10);
   49227           3 :   __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
   49228           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   49229           3 :   __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 952, __pyx_L1_error)
   49230           3 :   __Pyx_GOTREF(__pyx_t_4);
   49231           3 :   __Pyx_GIVEREF(__pyx_t_7);
   49232           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(0, 952, __pyx_L1_error);
   49233           3 :   __Pyx_GIVEREF(__pyx_t_10);
   49234           3 :   if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10)) __PYX_ERR(0, 952, __pyx_L1_error);
   49235           3 :   __pyx_t_7 = 0;
   49236           3 :   __pyx_t_10 = 0;
   49237           3 :   __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_lil_fancy_set_int64_clongdouble); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 952, __pyx_L1_error)
   49238           3 :   __Pyx_GOTREF(__pyx_t_10);
   49239           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_10) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
   49240           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   49241           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49242           3 :   __Pyx_XGOTREF(__pyx_v_13_csparsetools__LIL_FANCY_SET_DISPATCH);
   49243           3 :   __Pyx_DECREF_SET(__pyx_v_13_csparsetools__LIL_FANCY_SET_DISPATCH, ((PyObject*)__pyx_t_5));
   49244           3 :   __Pyx_GIVEREF(__pyx_t_5);
   49245           3 :   __pyx_t_5 = 0;
   49246             : 
   49247             :   /* "_csparsetools.pyx":958
   49248             :  * 
   49249             :  * 
   49250             :  * def lil_get_row_ranges(cnp.npy_intp M, cnp.npy_intp N,             # <<<<<<<<<<<<<<
   49251             :  *                        const obj_fused[:] rows, const obj_fused[:] datas,
   49252             :  *                        object[:] new_rows, object[:] new_datas,
   49253             :  */
   49254           3 :   __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 958, __pyx_L1_error)
   49255           3 :   __Pyx_GOTREF(__pyx_t_5);
   49256           3 :   __pyx_t_10 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_13_csparsetools_119lil_get_row_ranges, 0, __pyx_n_s_lil_get_row_ranges, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 958, __pyx_L1_error)
   49257           3 :   __Pyx_GOTREF(__pyx_t_10);
   49258           6 :   __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_empty_tuple);
   49259           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_object, __pyx_t_10) < 0) __PYX_ERR(0, 958, __pyx_L1_error)
   49260           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49261           3 :   __pyx_t_10 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_13_csparsetools_121lil_get_row_ranges, 0, __pyx_n_s_lil_get_row_ranges, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 958, __pyx_L1_error)
   49262           3 :   __Pyx_GOTREF(__pyx_t_10);
   49263           6 :   __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_empty_tuple);
   49264           3 :   if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_double, __pyx_t_10) < 0) __PYX_ERR(0, 958, __pyx_L1_error)
   49265           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49266           3 :   __pyx_t_10 = __pyx_FusedFunction_New(&__pyx_mdef_13_csparsetools_111lil_get_row_ranges, 0, __pyx_n_s_lil_get_row_ranges, NULL, __pyx_n_s_csparsetools, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 958, __pyx_L1_error)
   49267           3 :   __Pyx_GOTREF(__pyx_t_10);
   49268           3 :   if (!__Pyx_CyFunction_InitDefaults(__pyx_t_10, sizeof(__pyx_defaults1), 1)) __PYX_ERR(0, 958, __pyx_L1_error)
   49269           3 :   __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 958, __pyx_L1_error)
   49270           3 :   __Pyx_GOTREF(__pyx_t_4);
   49271           3 :   __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_t_10)->__pyx_arg__fused_sigindex = __pyx_t_4;
   49272           3 :   __Pyx_GIVEREF(__pyx_t_4);
   49273           3 :   __pyx_t_4 = 0;
   49274           6 :   __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_empty_tuple);
   49275           3 :   ((__pyx_FusedFunctionObject *) __pyx_t_10)->__signatures__ = __pyx_t_5;
   49276           3 :   __Pyx_GIVEREF(__pyx_t_5);
   49277           3 :   __pyx_t_5 = 0;
   49278           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_lil_get_row_ranges, __pyx_t_10) < 0) __PYX_ERR(0, 958, __pyx_L1_error)
   49279           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49280             : 
   49281             :   /* "_csparsetools.pyx":1140
   49282             :  *                         break
   49283             :  * 
   49284             :  * _fill_dtype_map(_LIL_FANCY_GET_DISPATCH, np.typecodes['Integer'])             # <<<<<<<<<<<<<<
   49285             :  * _fill_dtype_map2(_LIL_FANCY_SET_DISPATCH)
   49286             :  */
   49287           3 :   __pyx_t_10 = __pyx_v_13_csparsetools__LIL_FANCY_GET_DISPATCH;
   49288           3 :   __Pyx_INCREF(__pyx_t_10);
   49289           3 :   __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1140, __pyx_L1_error)
   49290           3 :   __Pyx_GOTREF(__pyx_t_5);
   49291           3 :   __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_typecodes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1140, __pyx_L1_error)
   49292           3 :   __Pyx_GOTREF(__pyx_t_4);
   49293           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   49294           3 :   __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_Integer); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1140, __pyx_L1_error)
   49295           3 :   __Pyx_GOTREF(__pyx_t_5);
   49296           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   49297           3 :   __pyx_t_4 = __pyx_f_13_csparsetools__fill_dtype_map(__pyx_t_10, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1140, __pyx_L1_error)
   49298           3 :   __Pyx_GOTREF(__pyx_t_4);
   49299           3 :   __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
   49300           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   49301           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   49302             : 
   49303             :   /* "_csparsetools.pyx":1141
   49304             :  * 
   49305             :  * _fill_dtype_map(_LIL_FANCY_GET_DISPATCH, np.typecodes['Integer'])
   49306             :  * _fill_dtype_map2(_LIL_FANCY_SET_DISPATCH)             # <<<<<<<<<<<<<<
   49307             :  */
   49308           3 :   __pyx_t_4 = __pyx_v_13_csparsetools__LIL_FANCY_SET_DISPATCH;
   49309           3 :   __Pyx_INCREF(__pyx_t_4);
   49310           3 :   __pyx_t_5 = __pyx_f_13_csparsetools__fill_dtype_map2(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1141, __pyx_L1_error)
   49311           3 :   __Pyx_GOTREF(__pyx_t_5);
   49312           3 :   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   49313           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   49314             : 
   49315             :   /* "_csparsetools.pyx":1
   49316             :  * # -*- cython -*-             # <<<<<<<<<<<<<<
   49317             :  * #
   49318             :  * # Tempita-templated Cython file
   49319             :  */
   49320           3 :   __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1, __pyx_L1_error)
   49321           3 :   __Pyx_GOTREF(__pyx_t_5);
   49322           3 :   if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_5) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
   49323           3 :   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   49324             : 
   49325             :   /*--- Wrapped vars code ---*/
   49326             : 
   49327           3 :   goto __pyx_L0;
   49328           0 :   __pyx_L1_error:;
   49329           0 :   __Pyx_XDECREF(__pyx_t_4);
   49330           0 :   __Pyx_XDECREF(__pyx_t_5);
   49331           0 :   __Pyx_XDECREF(__pyx_t_7);
   49332           0 :   __Pyx_XDECREF(__pyx_t_10);
   49333           0 :   __Pyx_XDECREF(__pyx_t_11);
   49334           0 :   if (__pyx_m) {
   49335           0 :     if (__pyx_d && stringtab_initialized) {
   49336           0 :       __Pyx_AddTraceback("init _csparsetools", __pyx_clineno, __pyx_lineno, __pyx_filename);
   49337             :     }
   49338             :     #if !CYTHON_USE_MODULE_STATE
   49339           0 :     Py_CLEAR(__pyx_m);
   49340             :     #else
   49341             :     Py_DECREF(__pyx_m);
   49342             :     if (pystate_addmodule_run) {
   49343             :       PyObject *tp, *value, *tb;
   49344             :       PyErr_Fetch(&tp, &value, &tb);
   49345             :       PyState_RemoveModule(&__pyx_moduledef);
   49346             :       PyErr_Restore(tp, value, tb);
   49347             :     }
   49348             :     #endif
   49349           0 :   } else if (!PyErr_Occurred()) {
   49350           0 :     PyErr_SetString(PyExc_ImportError, "init _csparsetools");
   49351             :   }
   49352           0 :   __pyx_L0:;
   49353           3 :   __Pyx_RefNannyFinishContext();
   49354             :   #if CYTHON_PEP489_MULTI_PHASE_INIT
   49355           3 :   return (__pyx_m != NULL) ? 0 : -1;
   49356             :   #elif PY_MAJOR_VERSION >= 3
   49357             :   return __pyx_m;
   49358             :   #else
   49359             :   return;
   49360             :   #endif
   49361             : }
   49362             : /* #### Code section: cleanup_globals ### */
   49363             : /* #### Code section: cleanup_module ### */
   49364             : /* #### Code section: main_method ### */
   49365             : /* #### Code section: utility_code_pragmas ### */
   49366             : #ifdef _MSC_VER
   49367             : #pragma warning( push )
   49368             : /* Warning 4127: conditional expression is constant
   49369             :  * Cython uses constant conditional expressions to allow in inline functions to be optimized at
   49370             :  * compile-time, so this warning is not useful
   49371             :  */
   49372             : #pragma warning( disable : 4127 )
   49373             : #endif
   49374             : 
   49375             : 
   49376             : 
   49377             : /* #### Code section: utility_code_def ### */
   49378             : 
   49379             : /* --- Runtime support code --- */
   49380             : /* Refnanny */
   49381             : #if CYTHON_REFNANNY
   49382             : static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
   49383             :     PyObject *m = NULL, *p = NULL;
   49384             :     void *r = NULL;
   49385             :     m = PyImport_ImportModule(modname);
   49386             :     if (!m) goto end;
   49387             :     p = PyObject_GetAttrString(m, "RefNannyAPI");
   49388             :     if (!p) goto end;
   49389             :     r = PyLong_AsVoidPtr(p);
   49390             : end:
   49391             :     Py_XDECREF(p);
   49392             :     Py_XDECREF(m);
   49393             :     return (__Pyx_RefNannyAPIStruct *)r;
   49394             : }
   49395             : #endif
   49396             : 
   49397             : /* PyErrExceptionMatches */
   49398             : #if CYTHON_FAST_THREAD_STATE
   49399           0 : static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
   49400           0 :     Py_ssize_t i, n;
   49401           0 :     n = PyTuple_GET_SIZE(tuple);
   49402             : #if PY_MAJOR_VERSION >= 3
   49403           0 :     for (i=0; i<n; i++) {
   49404           0 :         if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
   49405             :     }
   49406             : #endif
   49407           0 :     for (i=0; i<n; i++) {
   49408           0 :         if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
   49409             :     }
   49410             :     return 0;
   49411             : }
   49412           9 : static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
   49413           9 :     int result;
   49414           9 :     PyObject *exc_type;
   49415             : #if PY_VERSION_HEX >= 0x030C00A6
   49416           9 :     PyObject *current_exception = tstate->current_exception;
   49417           9 :     if (unlikely(!current_exception)) return 0;
   49418           9 :     exc_type = (PyObject*) Py_TYPE(current_exception);
   49419           9 :     if (exc_type == err) return 1;
   49420             : #else
   49421             :     exc_type = tstate->curexc_type;
   49422             :     if (exc_type == err) return 1;
   49423             :     if (unlikely(!exc_type)) return 0;
   49424             : #endif
   49425             :     #if CYTHON_AVOID_BORROWED_REFS
   49426             :     Py_INCREF(exc_type);
   49427             :     #endif
   49428           0 :     if (unlikely(PyTuple_Check(err))) {
   49429           0 :         result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
   49430             :     } else {
   49431           0 :         result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
   49432             :     }
   49433             :     #if CYTHON_AVOID_BORROWED_REFS
   49434             :     Py_DECREF(exc_type);
   49435             :     #endif
   49436             :     return result;
   49437             : }
   49438             : #endif
   49439             : 
   49440             : /* PyErrFetchRestore */
   49441             : #if CYTHON_FAST_THREAD_STATE
   49442        2797 : static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
   49443             : #if PY_VERSION_HEX >= 0x030C00A6
   49444        2797 :     PyObject *tmp_value;
   49445        2797 :     assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value)));
   49446        2797 :     if (value) {
   49447             :         #if CYTHON_COMPILING_IN_CPYTHON
   49448        2788 :         if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb))
   49449             :         #endif
   49450           0 :             PyException_SetTraceback(value, tb);
   49451             :     }
   49452        2797 :     tmp_value = tstate->current_exception;
   49453        2797 :     tstate->current_exception = value;
   49454        2797 :     Py_XDECREF(tmp_value);
   49455        2797 :     Py_XDECREF(type);
   49456        2797 :     Py_XDECREF(tb);
   49457             : #else
   49458             :     PyObject *tmp_type, *tmp_value, *tmp_tb;
   49459             :     tmp_type = tstate->curexc_type;
   49460             :     tmp_value = tstate->curexc_value;
   49461             :     tmp_tb = tstate->curexc_traceback;
   49462             :     tstate->curexc_type = type;
   49463             :     tstate->curexc_value = value;
   49464             :     tstate->curexc_traceback = tb;
   49465             :     Py_XDECREF(tmp_type);
   49466             :     Py_XDECREF(tmp_value);
   49467             :     Py_XDECREF(tmp_tb);
   49468             : #endif
   49469        2797 : }
   49470        2788 : static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
   49471             : #if PY_VERSION_HEX >= 0x030C00A6
   49472        2788 :     PyObject* exc_value;
   49473        2788 :     exc_value = tstate->current_exception;
   49474        2788 :     tstate->current_exception = 0;
   49475        2788 :     *value = exc_value;
   49476        2788 :     *type = NULL;
   49477        2788 :     *tb = NULL;
   49478        2788 :     if (exc_value) {
   49479        2788 :         *type = (PyObject*) Py_TYPE(exc_value);
   49480        2788 :         Py_INCREF(*type);
   49481             :         #if CYTHON_COMPILING_IN_CPYTHON
   49482        2788 :         *tb = ((PyBaseExceptionObject*) exc_value)->traceback;
   49483        2788 :         Py_XINCREF(*tb);
   49484             :         #else
   49485             :         *tb = PyException_GetTraceback(exc_value);
   49486             :         #endif
   49487             :     }
   49488             : #else
   49489             :     *type = tstate->curexc_type;
   49490             :     *value = tstate->curexc_value;
   49491             :     *tb = tstate->curexc_traceback;
   49492             :     tstate->curexc_type = 0;
   49493             :     tstate->curexc_value = 0;
   49494             :     tstate->curexc_traceback = 0;
   49495             : #endif
   49496        2788 : }
   49497             : #endif
   49498             : 
   49499             : /* PyObjectGetAttrStr */
   49500             : #if CYTHON_USE_TYPE_SLOTS
   49501      503990 : static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
   49502      503990 :     PyTypeObject* tp = Py_TYPE(obj);
   49503      503990 :     if (likely(tp->tp_getattro))
   49504      503990 :         return tp->tp_getattro(obj, attr_name);
   49505             : #if PY_MAJOR_VERSION < 3
   49506             :     if (likely(tp->tp_getattr))
   49507             :         return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
   49508             : #endif
   49509           0 :     return PyObject_GetAttr(obj, attr_name);
   49510             : }
   49511             : #endif
   49512             : 
   49513             : /* PyObjectGetAttrStrNoError */
   49514             : #if __PYX_LIMITED_VERSION_HEX < 0x030d00A1
   49515           9 : static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
   49516           9 :     __Pyx_PyThreadState_declare
   49517           9 :     __Pyx_PyThreadState_assign
   49518           9 :     if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
   49519           9 :         __Pyx_PyErr_Clear();
   49520           9 : }
   49521             : #endif
   49522          81 : static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
   49523          81 :     PyObject *result;
   49524             : #if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
   49525             :     (void) PyObject_GetOptionalAttr(obj, attr_name, &result);
   49526             :     return result;
   49527             : #else
   49528             : #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
   49529          81 :     PyTypeObject* tp = Py_TYPE(obj);
   49530          81 :     if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
   49531           9 :         return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
   49532             :     }
   49533             : #endif
   49534          72 :     result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
   49535          72 :     if (unlikely(!result)) {
   49536           9 :         __Pyx_PyObject_GetAttrStr_ClearAttributeError();
   49537             :     }
   49538             :     return result;
   49539             : #endif
   49540             : }
   49541             : 
   49542             : /* GetBuiltinName */
   49543          33 : static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
   49544          33 :     PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_b, name);
   49545          33 :     if (unlikely(!result) && !PyErr_Occurred()) {
   49546           0 :         PyErr_Format(PyExc_NameError,
   49547             : #if PY_MAJOR_VERSION >= 3
   49548             :             "name '%U' is not defined", name);
   49549             : #else
   49550             :             "name '%.200s' is not defined", PyString_AS_STRING(name));
   49551             : #endif
   49552             :     }
   49553          33 :     return result;
   49554             : }
   49555             : 
   49556             : /* TupleAndListFromArray */
   49557             : #if CYTHON_COMPILING_IN_CPYTHON
   49558             : static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {
   49559             :     PyObject *v;
   49560             :     Py_ssize_t i;
   49561             :     for (i = 0; i < length; i++) {
   49562             :         v = dest[i] = src[i];
   49563             :         Py_INCREF(v);
   49564             :     }
   49565             : }
   49566             : static CYTHON_INLINE PyObject *
   49567             : __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
   49568             : {
   49569             :     PyObject *res;
   49570             :     if (n <= 0) {
   49571             :         Py_INCREF(__pyx_empty_tuple);
   49572             :         return __pyx_empty_tuple;
   49573             :     }
   49574             :     res = PyTuple_New(n);
   49575             :     if (unlikely(res == NULL)) return NULL;
   49576             :     __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n);
   49577             :     return res;
   49578             : }
   49579             : static CYTHON_INLINE PyObject *
   49580             : __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n)
   49581             : {
   49582             :     PyObject *res;
   49583             :     if (n <= 0) {
   49584             :         return PyList_New(0);
   49585             :     }
   49586             :     res = PyList_New(n);
   49587             :     if (unlikely(res == NULL)) return NULL;
   49588             :     __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n);
   49589             :     return res;
   49590             : }
   49591             : #endif
   49592             : 
   49593             : /* BytesEquals */
   49594             : static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
   49595             : #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API
   49596             :     return PyObject_RichCompareBool(s1, s2, equals);
   49597             : #else
   49598             :     if (s1 == s2) {
   49599             :         return (equals == Py_EQ);
   49600             :     } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
   49601             :         const char *ps1, *ps2;
   49602             :         Py_ssize_t length = PyBytes_GET_SIZE(s1);
   49603             :         if (length != PyBytes_GET_SIZE(s2))
   49604             :             return (equals == Py_NE);
   49605             :         ps1 = PyBytes_AS_STRING(s1);
   49606             :         ps2 = PyBytes_AS_STRING(s2);
   49607             :         if (ps1[0] != ps2[0]) {
   49608             :             return (equals == Py_NE);
   49609             :         } else if (length == 1) {
   49610             :             return (equals == Py_EQ);
   49611             :         } else {
   49612             :             int result;
   49613             : #if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000)
   49614             :             Py_hash_t hash1, hash2;
   49615             :             hash1 = ((PyBytesObject*)s1)->ob_shash;
   49616             :             hash2 = ((PyBytesObject*)s2)->ob_shash;
   49617             :             if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
   49618             :                 return (equals == Py_NE);
   49619             :             }
   49620             : #endif
   49621             :             result = memcmp(ps1, ps2, (size_t)length);
   49622             :             return (equals == Py_EQ) ? (result == 0) : (result != 0);
   49623             :         }
   49624             :     } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
   49625             :         return (equals == Py_NE);
   49626             :     } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
   49627             :         return (equals == Py_NE);
   49628             :     } else {
   49629             :         int result;
   49630             :         PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
   49631             :         if (!py_result)
   49632             :             return -1;
   49633             :         result = __Pyx_PyObject_IsTrue(py_result);
   49634             :         Py_DECREF(py_result);
   49635             :         return result;
   49636             :     }
   49637             : #endif
   49638             : }
   49639             : 
   49640             : /* UnicodeEquals */
   49641           0 : static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
   49642             : #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API
   49643             :     return PyObject_RichCompareBool(s1, s2, equals);
   49644             : #else
   49645             : #if PY_MAJOR_VERSION < 3
   49646             :     PyObject* owned_ref = NULL;
   49647             : #endif
   49648           0 :     int s1_is_unicode, s2_is_unicode;
   49649           0 :     if (s1 == s2) {
   49650           0 :         goto return_eq;
   49651             :     }
   49652           0 :     s1_is_unicode = PyUnicode_CheckExact(s1);
   49653           0 :     s2_is_unicode = PyUnicode_CheckExact(s2);
   49654             : #if PY_MAJOR_VERSION < 3
   49655             :     if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
   49656             :         owned_ref = PyUnicode_FromObject(s2);
   49657             :         if (unlikely(!owned_ref))
   49658             :             return -1;
   49659             :         s2 = owned_ref;
   49660             :         s2_is_unicode = 1;
   49661             :     } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
   49662             :         owned_ref = PyUnicode_FromObject(s1);
   49663             :         if (unlikely(!owned_ref))
   49664             :             return -1;
   49665             :         s1 = owned_ref;
   49666             :         s1_is_unicode = 1;
   49667             :     } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
   49668             :         return __Pyx_PyBytes_Equals(s1, s2, equals);
   49669             :     }
   49670             : #endif
   49671           0 :     if (s1_is_unicode & s2_is_unicode) {
   49672           0 :         Py_ssize_t length;
   49673           0 :         int kind;
   49674           0 :         void *data1, *data2;
   49675           0 :         if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
   49676             :             return -1;
   49677           0 :         length = __Pyx_PyUnicode_GET_LENGTH(s1);
   49678           0 :         if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
   49679           0 :             goto return_ne;
   49680             :         }
   49681             : #if CYTHON_USE_UNICODE_INTERNALS
   49682             :         {
   49683           0 :             Py_hash_t hash1, hash2;
   49684             :         #if CYTHON_PEP393_ENABLED
   49685           0 :             hash1 = ((PyASCIIObject*)s1)->hash;
   49686           0 :             hash2 = ((PyASCIIObject*)s2)->hash;
   49687             :         #else
   49688             :             hash1 = ((PyUnicodeObject*)s1)->hash;
   49689             :             hash2 = ((PyUnicodeObject*)s2)->hash;
   49690             :         #endif
   49691           0 :             if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
   49692           0 :                 goto return_ne;
   49693             :             }
   49694             :         }
   49695             : #endif
   49696           0 :         kind = __Pyx_PyUnicode_KIND(s1);
   49697           0 :         if (kind != __Pyx_PyUnicode_KIND(s2)) {
   49698           0 :             goto return_ne;
   49699             :         }
   49700           0 :         data1 = __Pyx_PyUnicode_DATA(s1);
   49701           0 :         data2 = __Pyx_PyUnicode_DATA(s2);
   49702           0 :         if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
   49703           0 :             goto return_ne;
   49704           0 :         } else if (length == 1) {
   49705           0 :             goto return_eq;
   49706             :         } else {
   49707           0 :             int result = memcmp(data1, data2, (size_t)(length * kind));
   49708             :             #if PY_MAJOR_VERSION < 3
   49709             :             Py_XDECREF(owned_ref);
   49710             :             #endif
   49711           0 :             return (equals == Py_EQ) ? (result == 0) : (result != 0);
   49712             :         }
   49713           0 :     } else if ((s1 == Py_None) & s2_is_unicode) {
   49714           0 :         goto return_ne;
   49715           0 :     } else if ((s2 == Py_None) & s1_is_unicode) {
   49716           0 :         goto return_ne;
   49717             :     } else {
   49718           0 :         int result;
   49719           0 :         PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
   49720             :         #if PY_MAJOR_VERSION < 3
   49721             :         Py_XDECREF(owned_ref);
   49722             :         #endif
   49723           0 :         if (!py_result)
   49724             :             return -1;
   49725           0 :         result = __Pyx_PyObject_IsTrue(py_result);
   49726           0 :         Py_DECREF(py_result);
   49727           0 :         return result;
   49728             :     }
   49729           0 : return_eq:
   49730             :     #if PY_MAJOR_VERSION < 3
   49731             :     Py_XDECREF(owned_ref);
   49732             :     #endif
   49733           0 :     return (equals == Py_EQ);
   49734           0 : return_ne:
   49735             :     #if PY_MAJOR_VERSION < 3
   49736             :     Py_XDECREF(owned_ref);
   49737             :     #endif
   49738           0 :     return (equals == Py_NE);
   49739             : #endif
   49740             : }
   49741             : 
   49742             : /* fastcall */
   49743             : #if CYTHON_METH_FASTCALL
   49744           0 : static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s)
   49745             : {
   49746           0 :     Py_ssize_t i, n = PyTuple_GET_SIZE(kwnames);
   49747           0 :     for (i = 0; i < n; i++)
   49748             :     {
   49749           0 :         if (s == PyTuple_GET_ITEM(kwnames, i)) return kwvalues[i];
   49750             :     }
   49751           0 :     for (i = 0; i < n; i++)
   49752             :     {
   49753           0 :         int eq = __Pyx_PyUnicode_Equals(s, PyTuple_GET_ITEM(kwnames, i), Py_EQ);
   49754           0 :         if (unlikely(eq != 0)) {
   49755           0 :             if (unlikely(eq < 0)) return NULL;
   49756           0 :             return kwvalues[i];
   49757             :         }
   49758             :     }
   49759             :     return NULL;
   49760             : }
   49761             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
   49762             : CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues) {
   49763             :     Py_ssize_t i, nkwargs = PyTuple_GET_SIZE(kwnames);
   49764             :     PyObject *dict;
   49765             :     dict = PyDict_New();
   49766             :     if (unlikely(!dict))
   49767             :         return NULL;
   49768             :     for (i=0; i<nkwargs; i++) {
   49769             :         PyObject *key = PyTuple_GET_ITEM(kwnames, i);
   49770             :         if (unlikely(PyDict_SetItem(dict, key, kwvalues[i]) < 0))
   49771             :             goto bad;
   49772             :     }
   49773             :     return dict;
   49774             : bad:
   49775             :     Py_DECREF(dict);
   49776             :     return NULL;
   49777             : }
   49778             : #endif
   49779             : #endif
   49780             : 
   49781             : /* RaiseArgTupleInvalid */
   49782           0 : static void __Pyx_RaiseArgtupleInvalid(
   49783             :     const char* func_name,
   49784             :     int exact,
   49785             :     Py_ssize_t num_min,
   49786             :     Py_ssize_t num_max,
   49787             :     Py_ssize_t num_found)
   49788             : {
   49789           0 :     Py_ssize_t num_expected;
   49790           0 :     const char *more_or_less;
   49791           0 :     if (num_found < num_min) {
   49792             :         num_expected = num_min;
   49793             :         more_or_less = "at least";
   49794             :     } else {
   49795           0 :         num_expected = num_max;
   49796           0 :         more_or_less = "at most";
   49797             :     }
   49798           0 :     if (exact) {
   49799           0 :         more_or_less = "exactly";
   49800             :     }
   49801           0 :     PyErr_Format(PyExc_TypeError,
   49802             :                  "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
   49803             :                  func_name, more_or_less, num_expected,
   49804             :                  (num_expected == 1) ? "" : "s", num_found);
   49805           0 : }
   49806             : 
   49807             : /* RaiseDoubleKeywords */
   49808           0 : static void __Pyx_RaiseDoubleKeywordsError(
   49809             :     const char* func_name,
   49810             :     PyObject* kw_name)
   49811             : {
   49812           0 :     PyErr_Format(PyExc_TypeError,
   49813             :         #if PY_MAJOR_VERSION >= 3
   49814             :         "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
   49815             :         #else
   49816             :         "%s() got multiple values for keyword argument '%s'", func_name,
   49817             :         PyString_AsString(kw_name));
   49818             :         #endif
   49819             : }
   49820             : 
   49821             : /* ParseKeywords */
   49822           0 : static int __Pyx_ParseOptionalKeywords(
   49823             :     PyObject *kwds,
   49824             :     PyObject *const *kwvalues,
   49825             :     PyObject **argnames[],
   49826             :     PyObject *kwds2,
   49827             :     PyObject *values[],
   49828             :     Py_ssize_t num_pos_args,
   49829             :     const char* function_name)
   49830             : {
   49831           0 :     PyObject *key = 0, *value = 0;
   49832           0 :     Py_ssize_t pos = 0;
   49833           0 :     PyObject*** name;
   49834           0 :     PyObject*** first_kw_arg = argnames + num_pos_args;
   49835           0 :     int kwds_is_tuple = CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds));
   49836           0 :     while (1) {
   49837           0 :         Py_XDECREF(key); key = NULL;
   49838           0 :         Py_XDECREF(value); value = NULL;
   49839           0 :         if (kwds_is_tuple) {
   49840           0 :             Py_ssize_t size;
   49841             : #if CYTHON_ASSUME_SAFE_MACROS
   49842           0 :             size = PyTuple_GET_SIZE(kwds);
   49843             : #else
   49844             :             size = PyTuple_Size(kwds);
   49845             :             if (size < 0) goto bad;
   49846             : #endif
   49847           0 :             if (pos >= size) break;
   49848             : #if CYTHON_AVOID_BORROWED_REFS
   49849             :             key = __Pyx_PySequence_ITEM(kwds, pos);
   49850             :             if (!key) goto bad;
   49851             : #elif CYTHON_ASSUME_SAFE_MACROS
   49852           0 :             key = PyTuple_GET_ITEM(kwds, pos);
   49853             : #else
   49854             :             key = PyTuple_GetItem(kwds, pos);
   49855             :             if (!key) goto bad;
   49856             : #endif
   49857           0 :             value = kwvalues[pos];
   49858           0 :             pos++;
   49859             :         }
   49860             :         else
   49861             :         {
   49862           0 :             if (!PyDict_Next(kwds, &pos, &key, &value)) break;
   49863             : #if CYTHON_AVOID_BORROWED_REFS
   49864             :             Py_INCREF(key);
   49865             : #endif
   49866             :         }
   49867           0 :         name = first_kw_arg;
   49868           0 :         while (*name && (**name != key)) name++;
   49869           0 :         if (*name) {
   49870           0 :             values[name-argnames] = value;
   49871             : #if CYTHON_AVOID_BORROWED_REFS
   49872             :             Py_INCREF(value);
   49873             :             Py_DECREF(key);
   49874             : #endif
   49875           0 :             key = NULL;
   49876           0 :             value = NULL;
   49877           0 :             continue;
   49878             :         }
   49879             : #if !CYTHON_AVOID_BORROWED_REFS
   49880           0 :         Py_INCREF(key);
   49881             : #endif
   49882           0 :         Py_INCREF(value);
   49883           0 :         name = first_kw_arg;
   49884             :         #if PY_MAJOR_VERSION < 3
   49885             :         if (likely(PyString_Check(key))) {
   49886             :             while (*name) {
   49887             :                 if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
   49888             :                         && _PyString_Eq(**name, key)) {
   49889             :                     values[name-argnames] = value;
   49890             : #if CYTHON_AVOID_BORROWED_REFS
   49891             :                     value = NULL;
   49892             : #endif
   49893             :                     break;
   49894             :                 }
   49895             :                 name++;
   49896             :             }
   49897             :             if (*name) continue;
   49898             :             else {
   49899             :                 PyObject*** argname = argnames;
   49900             :                 while (argname != first_kw_arg) {
   49901             :                     if ((**argname == key) || (
   49902             :                             (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
   49903             :                              && _PyString_Eq(**argname, key))) {
   49904             :                         goto arg_passed_twice;
   49905             :                     }
   49906             :                     argname++;
   49907             :                 }
   49908             :             }
   49909             :         } else
   49910             :         #endif
   49911           0 :         if (likely(PyUnicode_Check(key))) {
   49912           0 :             while (*name) {
   49913           0 :                 int cmp = (
   49914             :                 #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
   49915           0 :                     (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
   49916             :                 #endif
   49917           0 :                     PyUnicode_Compare(**name, key)
   49918             :                 );
   49919           0 :                 if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
   49920           0 :                 if (cmp == 0) {
   49921           0 :                     values[name-argnames] = value;
   49922             : #if CYTHON_AVOID_BORROWED_REFS
   49923             :                     value = NULL;
   49924             : #endif
   49925           0 :                     break;
   49926             :                 }
   49927           0 :                 name++;
   49928             :             }
   49929           0 :             if (*name) continue;
   49930             :             else {
   49931             :                 PyObject*** argname = argnames;
   49932           0 :                 while (argname != first_kw_arg) {
   49933           0 :                     int cmp = (**argname == key) ? 0 :
   49934             :                     #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
   49935           0 :                         (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
   49936             :                     #endif
   49937           0 :                         PyUnicode_Compare(**argname, key);
   49938           0 :                     if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
   49939           0 :                     if (cmp == 0) goto arg_passed_twice;
   49940           0 :                     argname++;
   49941             :                 }
   49942             :             }
   49943             :         } else
   49944           0 :             goto invalid_keyword_type;
   49945           0 :         if (kwds2) {
   49946           0 :             if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
   49947             :         } else {
   49948           0 :             goto invalid_keyword;
   49949             :         }
   49950             :     }
   49951           0 :     Py_XDECREF(key);
   49952           0 :     Py_XDECREF(value);
   49953           0 :     return 0;
   49954           0 : arg_passed_twice:
   49955           0 :     __Pyx_RaiseDoubleKeywordsError(function_name, key);
   49956           0 :     goto bad;
   49957           0 : invalid_keyword_type:
   49958           0 :     PyErr_Format(PyExc_TypeError,
   49959             :         "%.200s() keywords must be strings", function_name);
   49960           0 :     goto bad;
   49961           0 : invalid_keyword:
   49962             :     #if PY_MAJOR_VERSION < 3
   49963             :     PyErr_Format(PyExc_TypeError,
   49964             :         "%.200s() got an unexpected keyword argument '%.200s'",
   49965             :         function_name, PyString_AsString(key));
   49966             :     #else
   49967           0 :     PyErr_Format(PyExc_TypeError,
   49968             :         "%s() got an unexpected keyword argument '%U'",
   49969             :         function_name, key);
   49970             :     #endif
   49971           0 : bad:
   49972           0 :     Py_XDECREF(key);
   49973           0 :     Py_XDECREF(value);
   49974           0 :     return -1;
   49975             : }
   49976             : 
   49977             : /* ArgTypeTest */
   49978           0 : static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
   49979             : {
   49980           0 :     __Pyx_TypeName type_name;
   49981           0 :     __Pyx_TypeName obj_type_name;
   49982           0 :     if (unlikely(!type)) {
   49983           0 :         PyErr_SetString(PyExc_SystemError, "Missing type object");
   49984           0 :         return 0;
   49985             :     }
   49986           0 :     else if (exact) {
   49987             :         #if PY_MAJOR_VERSION == 2
   49988             :         if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1;
   49989             :         #endif
   49990             :     }
   49991             :     else {
   49992           0 :         if (likely(__Pyx_TypeCheck(obj, type))) return 1;
   49993             :     }
   49994           0 :     type_name = __Pyx_PyType_GetName(type);
   49995           0 :     obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
   49996           0 :     PyErr_Format(PyExc_TypeError,
   49997             :         "Argument '%.200s' has incorrect type (expected " __Pyx_FMT_TYPENAME
   49998             :         ", got " __Pyx_FMT_TYPENAME ")", name, type_name, obj_type_name);
   49999           0 :     __Pyx_DECREF_TypeName(type_name);
   50000           0 :     __Pyx_DECREF_TypeName(obj_type_name);
   50001           0 :     return 0;
   50002             : }
   50003             : 
   50004             : /* RaiseException */
   50005             : #if PY_MAJOR_VERSION < 3
   50006             : static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
   50007             :     __Pyx_PyThreadState_declare
   50008             :     CYTHON_UNUSED_VAR(cause);
   50009             :     Py_XINCREF(type);
   50010             :     if (!value || value == Py_None)
   50011             :         value = NULL;
   50012             :     else
   50013             :         Py_INCREF(value);
   50014             :     if (!tb || tb == Py_None)
   50015             :         tb = NULL;
   50016             :     else {
   50017             :         Py_INCREF(tb);
   50018             :         if (!PyTraceBack_Check(tb)) {
   50019             :             PyErr_SetString(PyExc_TypeError,
   50020             :                 "raise: arg 3 must be a traceback or None");
   50021             :             goto raise_error;
   50022             :         }
   50023             :     }
   50024             :     if (PyType_Check(type)) {
   50025             : #if CYTHON_COMPILING_IN_PYPY
   50026             :         if (!value) {
   50027             :             Py_INCREF(Py_None);
   50028             :             value = Py_None;
   50029             :         }
   50030             : #endif
   50031             :         PyErr_NormalizeException(&type, &value, &tb);
   50032             :     } else {
   50033             :         if (value) {
   50034             :             PyErr_SetString(PyExc_TypeError,
   50035             :                 "instance exception may not have a separate value");
   50036             :             goto raise_error;
   50037             :         }
   50038             :         value = type;
   50039             :         type = (PyObject*) Py_TYPE(type);
   50040             :         Py_INCREF(type);
   50041             :         if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
   50042             :             PyErr_SetString(PyExc_TypeError,
   50043             :                 "raise: exception class must be a subclass of BaseException");
   50044             :             goto raise_error;
   50045             :         }
   50046             :     }
   50047             :     __Pyx_PyThreadState_assign
   50048             :     __Pyx_ErrRestore(type, value, tb);
   50049             :     return;
   50050             : raise_error:
   50051             :     Py_XDECREF(value);
   50052             :     Py_XDECREF(type);
   50053             :     Py_XDECREF(tb);
   50054             :     return;
   50055             : }
   50056             : #else
   50057        1316 : static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
   50058        1316 :     PyObject* owned_instance = NULL;
   50059        1316 :     if (tb == Py_None) {
   50060             :         tb = 0;
   50061        1316 :     } else if (tb && !PyTraceBack_Check(tb)) {
   50062           0 :         PyErr_SetString(PyExc_TypeError,
   50063             :             "raise: arg 3 must be a traceback or None");
   50064           0 :         goto bad;
   50065             :     }
   50066        1316 :     if (value == Py_None)
   50067           0 :         value = 0;
   50068        1316 :     if (PyExceptionInstance_Check(type)) {
   50069        1316 :         if (value) {
   50070           0 :             PyErr_SetString(PyExc_TypeError,
   50071             :                 "instance exception may not have a separate value");
   50072           0 :             goto bad;
   50073             :         }
   50074             :         value = type;
   50075             :         type = (PyObject*) Py_TYPE(value);
   50076           0 :     } else if (PyExceptionClass_Check(type)) {
   50077           0 :         PyObject *instance_class = NULL;
   50078           0 :         if (value && PyExceptionInstance_Check(value)) {
   50079           0 :             instance_class = (PyObject*) Py_TYPE(value);
   50080           0 :             if (instance_class != type) {
   50081           0 :                 int is_subclass = PyObject_IsSubclass(instance_class, type);
   50082           0 :                 if (!is_subclass) {
   50083             :                     instance_class = NULL;
   50084           0 :                 } else if (unlikely(is_subclass == -1)) {
   50085           0 :                     goto bad;
   50086             :                 } else {
   50087             :                     type = instance_class;
   50088             :                 }
   50089             :             }
   50090             :         }
   50091             :         if (!instance_class) {
   50092           0 :             PyObject *args;
   50093           0 :             if (!value)
   50094           0 :                 args = PyTuple_New(0);
   50095           0 :             else if (PyTuple_Check(value)) {
   50096           0 :                 Py_INCREF(value);
   50097           0 :                 args = value;
   50098             :             } else
   50099           0 :                 args = PyTuple_Pack(1, value);
   50100           0 :             if (!args)
   50101           0 :                 goto bad;
   50102           0 :             owned_instance = PyObject_Call(type, args, NULL);
   50103           0 :             Py_DECREF(args);
   50104           0 :             if (!owned_instance)
   50105           0 :                 goto bad;
   50106           0 :             value = owned_instance;
   50107           0 :             if (!PyExceptionInstance_Check(value)) {
   50108           0 :                 PyErr_Format(PyExc_TypeError,
   50109             :                              "calling %R should have returned an instance of "
   50110             :                              "BaseException, not %R",
   50111             :                              type, Py_TYPE(value));
   50112           0 :                 goto bad;
   50113             :             }
   50114             :         }
   50115             :     } else {
   50116           0 :         PyErr_SetString(PyExc_TypeError,
   50117             :             "raise: exception class must be a subclass of BaseException");
   50118           0 :         goto bad;
   50119             :     }
   50120        1316 :     if (cause) {
   50121           0 :         PyObject *fixed_cause;
   50122           0 :         if (cause == Py_None) {
   50123             :             fixed_cause = NULL;
   50124           0 :         } else if (PyExceptionClass_Check(cause)) {
   50125           0 :             fixed_cause = PyObject_CallObject(cause, NULL);
   50126           0 :             if (fixed_cause == NULL)
   50127           0 :                 goto bad;
   50128           0 :         } else if (PyExceptionInstance_Check(cause)) {
   50129           0 :             fixed_cause = cause;
   50130           0 :             Py_INCREF(fixed_cause);
   50131             :         } else {
   50132           0 :             PyErr_SetString(PyExc_TypeError,
   50133             :                             "exception causes must derive from "
   50134             :                             "BaseException");
   50135           0 :             goto bad;
   50136             :         }
   50137           0 :         PyException_SetCause(value, fixed_cause);
   50138             :     }
   50139        1316 :     PyErr_SetObject(type, value);
   50140        1316 :     if (tb) {
   50141             :       #if PY_VERSION_HEX >= 0x030C00A6
   50142           0 :         PyException_SetTraceback(value, tb);
   50143             :       #elif CYTHON_FAST_THREAD_STATE
   50144             :         PyThreadState *tstate = __Pyx_PyThreadState_Current;
   50145             :         PyObject* tmp_tb = tstate->curexc_traceback;
   50146             :         if (tb != tmp_tb) {
   50147             :             Py_INCREF(tb);
   50148             :             tstate->curexc_traceback = tb;
   50149             :             Py_XDECREF(tmp_tb);
   50150             :         }
   50151             : #else
   50152             :         PyObject *tmp_type, *tmp_value, *tmp_tb;
   50153             :         PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
   50154             :         Py_INCREF(tb);
   50155             :         PyErr_Restore(tmp_type, tmp_value, tb);
   50156             :         Py_XDECREF(tmp_tb);
   50157             : #endif
   50158             :     }
   50159        1316 : bad:
   50160        1316 :     Py_XDECREF(owned_instance);
   50161        1316 :     return;
   50162             : }
   50163             : #endif
   50164             : 
   50165             : /* PyFunctionFastCall */
   50166             : #if CYTHON_FAST_PYCALL && !CYTHON_VECTORCALL
   50167             : static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
   50168             :                                                PyObject *globals) {
   50169             :     PyFrameObject *f;
   50170             :     PyThreadState *tstate = __Pyx_PyThreadState_Current;
   50171             :     PyObject **fastlocals;
   50172             :     Py_ssize_t i;
   50173             :     PyObject *result;
   50174             :     assert(globals != NULL);
   50175             :     /* XXX Perhaps we should create a specialized
   50176             :        PyFrame_New() that doesn't take locals, but does
   50177             :        take builtins without sanity checking them.
   50178             :        */
   50179             :     assert(tstate != NULL);
   50180             :     f = PyFrame_New(tstate, co, globals, NULL);
   50181             :     if (f == NULL) {
   50182             :         return NULL;
   50183             :     }
   50184             :     fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
   50185             :     for (i = 0; i < na; i++) {
   50186             :         Py_INCREF(*args);
   50187             :         fastlocals[i] = *args++;
   50188             :     }
   50189             :     result = PyEval_EvalFrameEx(f,0);
   50190             :     ++tstate->recursion_depth;
   50191             :     Py_DECREF(f);
   50192             :     --tstate->recursion_depth;
   50193             :     return result;
   50194             : }
   50195             : static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) {
   50196             :     PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
   50197             :     PyObject *globals = PyFunction_GET_GLOBALS(func);
   50198             :     PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
   50199             :     PyObject *closure;
   50200             : #if PY_MAJOR_VERSION >= 3
   50201             :     PyObject *kwdefs;
   50202             : #endif
   50203             :     PyObject *kwtuple, **k;
   50204             :     PyObject **d;
   50205             :     Py_ssize_t nd;
   50206             :     Py_ssize_t nk;
   50207             :     PyObject *result;
   50208             :     assert(kwargs == NULL || PyDict_Check(kwargs));
   50209             :     nk = kwargs ? PyDict_Size(kwargs) : 0;
   50210             :     #if PY_MAJOR_VERSION < 3
   50211             :     if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) {
   50212             :         return NULL;
   50213             :     }
   50214             :     #else
   50215             :     if (unlikely(Py_EnterRecursiveCall(" while calling a Python object"))) {
   50216             :         return NULL;
   50217             :     }
   50218             :     #endif
   50219             :     if (
   50220             : #if PY_MAJOR_VERSION >= 3
   50221             :             co->co_kwonlyargcount == 0 &&
   50222             : #endif
   50223             :             likely(kwargs == NULL || nk == 0) &&
   50224             :             co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
   50225             :         if (argdefs == NULL && co->co_argcount == nargs) {
   50226             :             result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
   50227             :             goto done;
   50228             :         }
   50229             :         else if (nargs == 0 && argdefs != NULL
   50230             :                  && co->co_argcount == Py_SIZE(argdefs)) {
   50231             :             /* function called with no arguments, but all parameters have
   50232             :                a default value: use default values as arguments .*/
   50233             :             args = &PyTuple_GET_ITEM(argdefs, 0);
   50234             :             result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
   50235             :             goto done;
   50236             :         }
   50237             :     }
   50238             :     if (kwargs != NULL) {
   50239             :         Py_ssize_t pos, i;
   50240             :         kwtuple = PyTuple_New(2 * nk);
   50241             :         if (kwtuple == NULL) {
   50242             :             result = NULL;
   50243             :             goto done;
   50244             :         }
   50245             :         k = &PyTuple_GET_ITEM(kwtuple, 0);
   50246             :         pos = i = 0;
   50247             :         while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
   50248             :             Py_INCREF(k[i]);
   50249             :             Py_INCREF(k[i+1]);
   50250             :             i += 2;
   50251             :         }
   50252             :         nk = i / 2;
   50253             :     }
   50254             :     else {
   50255             :         kwtuple = NULL;
   50256             :         k = NULL;
   50257             :     }
   50258             :     closure = PyFunction_GET_CLOSURE(func);
   50259             : #if PY_MAJOR_VERSION >= 3
   50260             :     kwdefs = PyFunction_GET_KW_DEFAULTS(func);
   50261             : #endif
   50262             :     if (argdefs != NULL) {
   50263             :         d = &PyTuple_GET_ITEM(argdefs, 0);
   50264             :         nd = Py_SIZE(argdefs);
   50265             :     }
   50266             :     else {
   50267             :         d = NULL;
   50268             :         nd = 0;
   50269             :     }
   50270             : #if PY_MAJOR_VERSION >= 3
   50271             :     result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
   50272             :                                args, (int)nargs,
   50273             :                                k, (int)nk,
   50274             :                                d, (int)nd, kwdefs, closure);
   50275             : #else
   50276             :     result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
   50277             :                                args, (int)nargs,
   50278             :                                k, (int)nk,
   50279             :                                d, (int)nd, closure);
   50280             : #endif
   50281             :     Py_XDECREF(kwtuple);
   50282             : done:
   50283             :     Py_LeaveRecursiveCall();
   50284             :     return result;
   50285             : }
   50286             : #endif
   50287             : 
   50288             : /* PyObjectCall */
   50289             : #if CYTHON_COMPILING_IN_CPYTHON
   50290      400163 : static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
   50291      400163 :     PyObject *result;
   50292      400163 :     ternaryfunc call = Py_TYPE(func)->tp_call;
   50293      400163 :     if (unlikely(!call))
   50294           0 :         return PyObject_Call(func, arg, kw);
   50295             :     #if PY_MAJOR_VERSION < 3
   50296             :     if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
   50297             :         return NULL;
   50298             :     #else
   50299      400163 :     if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
   50300             :         return NULL;
   50301             :     #endif
   50302      400163 :     result = (*call)(func, arg, kw);
   50303      400163 :     Py_LeaveRecursiveCall();
   50304      400163 :     if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
   50305           0 :         PyErr_SetString(
   50306             :             PyExc_SystemError,
   50307             :             "NULL result without error in PyObject_Call");
   50308             :     }
   50309             :     return result;
   50310             : }
   50311             : #endif
   50312             : 
   50313             : /* PyObjectCallMethO */
   50314             : #if CYTHON_COMPILING_IN_CPYTHON
   50315           0 : static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
   50316           0 :     PyObject *self, *result;
   50317           0 :     PyCFunction cfunc;
   50318           0 :     cfunc = __Pyx_CyOrPyCFunction_GET_FUNCTION(func);
   50319           0 :     self = __Pyx_CyOrPyCFunction_GET_SELF(func);
   50320             :     #if PY_MAJOR_VERSION < 3
   50321             :     if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
   50322             :         return NULL;
   50323             :     #else
   50324           0 :     if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
   50325             :         return NULL;
   50326             :     #endif
   50327           0 :     result = cfunc(self, arg);
   50328           0 :     Py_LeaveRecursiveCall();
   50329           0 :     if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
   50330           0 :         PyErr_SetString(
   50331             :             PyExc_SystemError,
   50332             :             "NULL result without error in PyObject_Call");
   50333             :     }
   50334             :     return result;
   50335             : }
   50336             : #endif
   50337             : 
   50338             : /* PyObjectFastCall */
   50339             : #if PY_VERSION_HEX < 0x03090000 || CYTHON_COMPILING_IN_LIMITED_API
   50340             : static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs) {
   50341             :     PyObject *argstuple;
   50342             :     PyObject *result = 0;
   50343             :     size_t i;
   50344             :     argstuple = PyTuple_New((Py_ssize_t)nargs);
   50345             :     if (unlikely(!argstuple)) return NULL;
   50346             :     for (i = 0; i < nargs; i++) {
   50347             :         Py_INCREF(args[i]);
   50348             :         if (__Pyx_PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]) < 0) goto bad;
   50349             :     }
   50350             :     result = __Pyx_PyObject_Call(func, argstuple, kwargs);
   50351             :   bad:
   50352             :     Py_DECREF(argstuple);
   50353             :     return result;
   50354             : }
   50355             : #endif
   50356      134970 : static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t _nargs, PyObject *kwargs) {
   50357      134970 :     Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(_nargs);
   50358             : #if CYTHON_COMPILING_IN_CPYTHON
   50359      134970 :     if (nargs == 0 && kwargs == NULL) {
   50360           0 :         if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_NOARGS))
   50361           0 :             return __Pyx_PyObject_CallMethO(func, NULL);
   50362             :     }
   50363      134970 :     else if (nargs == 1 && kwargs == NULL) {
   50364        2612 :         if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_O))
   50365           0 :             return __Pyx_PyObject_CallMethO(func, args[0]);
   50366             :     }
   50367             : #endif
   50368             :     #if PY_VERSION_HEX < 0x030800B1
   50369             :     #if CYTHON_FAST_PYCCALL
   50370             :     if (PyCFunction_Check(func)) {
   50371             :         if (kwargs) {
   50372             :             return _PyCFunction_FastCallDict(func, args, nargs, kwargs);
   50373             :         } else {
   50374             :             return _PyCFunction_FastCallKeywords(func, args, nargs, NULL);
   50375             :         }
   50376             :     }
   50377             :     #if PY_VERSION_HEX >= 0x030700A1
   50378             :     if (!kwargs && __Pyx_IS_TYPE(func, &PyMethodDescr_Type)) {
   50379             :         return _PyMethodDescr_FastCallKeywords(func, args, nargs, NULL);
   50380             :     }
   50381             :     #endif
   50382             :     #endif
   50383             :     #if CYTHON_FAST_PYCALL
   50384             :     if (PyFunction_Check(func)) {
   50385             :         return __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs);
   50386             :     }
   50387             :     #endif
   50388             :     #endif
   50389      134970 :     if (kwargs == NULL) {
   50390             :         #if CYTHON_VECTORCALL
   50391             :         #if PY_VERSION_HEX < 0x03090000
   50392             :         vectorcallfunc f = _PyVectorcall_Function(func);
   50393             :         #else
   50394      134970 :         vectorcallfunc f = PyVectorcall_Function(func);
   50395             :         #endif
   50396      134970 :         if (f) {
   50397      132388 :             return f(func, args, (size_t)nargs, NULL);
   50398             :         }
   50399             :         #elif defined(__Pyx_CyFunction_USED) && CYTHON_BACKPORT_VECTORCALL
   50400             :         if (__Pyx_CyFunction_CheckExact(func)) {
   50401             :             __pyx_vectorcallfunc f = __Pyx_CyFunction_func_vectorcall(func);
   50402             :             if (f) return f(func, args, (size_t)nargs, NULL);
   50403             :         }
   50404             :         #endif
   50405             :     }
   50406        2582 :     if (nargs == 0) {
   50407           0 :         return __Pyx_PyObject_Call(func, __pyx_empty_tuple, kwargs);
   50408             :     }
   50409             :     #if PY_VERSION_HEX >= 0x03090000 && !CYTHON_COMPILING_IN_LIMITED_API
   50410        2582 :     return PyObject_VectorcallDict(func, args, (size_t)nargs, kwargs);
   50411             :     #else
   50412             :     return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs);
   50413             :     #endif
   50414             : }
   50415             : 
   50416             : /* RaiseUnexpectedTypeError */
   50417             : static int
   50418           0 : __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj)
   50419             : {
   50420           0 :     __Pyx_TypeName obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
   50421           0 :     PyErr_Format(PyExc_TypeError, "Expected %s, got " __Pyx_FMT_TYPENAME,
   50422             :                  expected, obj_type_name);
   50423           0 :     __Pyx_DECREF_TypeName(obj_type_name);
   50424           0 :     return 0;
   50425             : }
   50426             : 
   50427             : /* CIntToDigits */
   50428             : static const char DIGIT_PAIRS_10[2*10*10+1] = {
   50429             :     "00010203040506070809"
   50430             :     "10111213141516171819"
   50431             :     "20212223242526272829"
   50432             :     "30313233343536373839"
   50433             :     "40414243444546474849"
   50434             :     "50515253545556575859"
   50435             :     "60616263646566676869"
   50436             :     "70717273747576777879"
   50437             :     "80818283848586878889"
   50438             :     "90919293949596979899"
   50439             : };
   50440             : static const char DIGIT_PAIRS_8[2*8*8+1] = {
   50441             :     "0001020304050607"
   50442             :     "1011121314151617"
   50443             :     "2021222324252627"
   50444             :     "3031323334353637"
   50445             :     "4041424344454647"
   50446             :     "5051525354555657"
   50447             :     "6061626364656667"
   50448             :     "7071727374757677"
   50449             : };
   50450             : static const char DIGITS_HEX[2*16+1] = {
   50451             :     "0123456789abcdef"
   50452             :     "0123456789ABCDEF"
   50453             : };
   50454             : 
   50455             : /* BuildPyUnicode */
   50456           0 : static PyObject* __Pyx_PyUnicode_BuildFromAscii(Py_ssize_t ulength, char* chars, int clength,
   50457             :                                                 int prepend_sign, char padding_char) {
   50458           0 :     PyObject *uval;
   50459           0 :     Py_ssize_t uoffset = ulength - clength;
   50460             : #if CYTHON_USE_UNICODE_INTERNALS
   50461           0 :     Py_ssize_t i;
   50462             : #if CYTHON_PEP393_ENABLED
   50463           0 :     void *udata;
   50464           0 :     uval = PyUnicode_New(ulength, 127);
   50465           0 :     if (unlikely(!uval)) return NULL;
   50466           0 :     udata = PyUnicode_DATA(uval);
   50467             : #else
   50468             :     Py_UNICODE *udata;
   50469             :     uval = PyUnicode_FromUnicode(NULL, ulength);
   50470             :     if (unlikely(!uval)) return NULL;
   50471             :     udata = PyUnicode_AS_UNICODE(uval);
   50472             : #endif
   50473           0 :     if (uoffset > 0) {
   50474           0 :         i = 0;
   50475           0 :         if (prepend_sign) {
   50476           0 :             __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, 0, '-');
   50477           0 :             i++;
   50478             :         }
   50479           0 :         for (; i < uoffset; i++) {
   50480           0 :             __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, i, padding_char);
   50481             :         }
   50482             :     }
   50483           0 :     for (i=0; i < clength; i++) {
   50484           0 :         __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, uoffset+i, chars[i]);
   50485             :     }
   50486             : #else
   50487             :     {
   50488             :         PyObject *sign = NULL, *padding = NULL;
   50489             :         uval = NULL;
   50490             :         if (uoffset > 0) {
   50491             :             prepend_sign = !!prepend_sign;
   50492             :             if (uoffset > prepend_sign) {
   50493             :                 padding = PyUnicode_FromOrdinal(padding_char);
   50494             :                 if (likely(padding) && uoffset > prepend_sign + 1) {
   50495             :                     PyObject *tmp;
   50496             :                     PyObject *repeat = PyInt_FromSsize_t(uoffset - prepend_sign);
   50497             :                     if (unlikely(!repeat)) goto done_or_error;
   50498             :                     tmp = PyNumber_Multiply(padding, repeat);
   50499             :                     Py_DECREF(repeat);
   50500             :                     Py_DECREF(padding);
   50501             :                     padding = tmp;
   50502             :                 }
   50503             :                 if (unlikely(!padding)) goto done_or_error;
   50504             :             }
   50505             :             if (prepend_sign) {
   50506             :                 sign = PyUnicode_FromOrdinal('-');
   50507             :                 if (unlikely(!sign)) goto done_or_error;
   50508             :             }
   50509             :         }
   50510             :         uval = PyUnicode_DecodeASCII(chars, clength, NULL);
   50511             :         if (likely(uval) && padding) {
   50512             :             PyObject *tmp = PyNumber_Add(padding, uval);
   50513             :             Py_DECREF(uval);
   50514             :             uval = tmp;
   50515             :         }
   50516             :         if (likely(uval) && sign) {
   50517             :             PyObject *tmp = PyNumber_Add(sign, uval);
   50518             :             Py_DECREF(uval);
   50519             :             uval = tmp;
   50520             :         }
   50521             : done_or_error:
   50522             :         Py_XDECREF(padding);
   50523             :         Py_XDECREF(sign);
   50524             :     }
   50525             : #endif
   50526             :     return uval;
   50527             : }
   50528             : 
   50529             : /* CIntToPyUnicode */
   50530           0 : static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char, char format_char) {
   50531           0 :     char digits[sizeof(int)*3+2];
   50532           0 :     char *dpos, *end = digits + sizeof(int)*3+2;
   50533           0 :     const char *hex_digits = DIGITS_HEX;
   50534           0 :     Py_ssize_t length, ulength;
   50535           0 :     int prepend_sign, last_one_off;
   50536           0 :     int remaining;
   50537             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   50538             : #pragma GCC diagnostic push
   50539             : #pragma GCC diagnostic ignored "-Wconversion"
   50540             : #endif
   50541           0 :     const int neg_one = (int) -1, const_zero = (int) 0;
   50542             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   50543             : #pragma GCC diagnostic pop
   50544             : #endif
   50545           0 :     const int is_unsigned = neg_one > const_zero;
   50546           0 :     if (format_char == 'X') {
   50547           0 :         hex_digits += 16;
   50548           0 :         format_char = 'x';
   50549             :     }
   50550           0 :     remaining = value;
   50551           0 :     last_one_off = 0;
   50552           0 :     dpos = end;
   50553           0 :     do {
   50554           0 :         int digit_pos;
   50555           0 :         switch (format_char) {
   50556           0 :         case 'o':
   50557           0 :             digit_pos = abs((int)(remaining % (8*8)));
   50558           0 :             remaining = (int) (remaining / (8*8));
   50559           0 :             dpos -= 2;
   50560           0 :             memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2);
   50561           0 :             last_one_off = (digit_pos < 8);
   50562           0 :             break;
   50563           0 :         case 'd':
   50564           0 :             digit_pos = abs((int)(remaining % (10*10)));
   50565           0 :             remaining = (int) (remaining / (10*10));
   50566           0 :             dpos -= 2;
   50567           0 :             memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2);
   50568           0 :             last_one_off = (digit_pos < 10);
   50569           0 :             break;
   50570           0 :         case 'x':
   50571           0 :             *(--dpos) = hex_digits[abs((int)(remaining % 16))];
   50572           0 :             remaining = (int) (remaining / 16);
   50573           0 :             break;
   50574             :         default:
   50575             :             assert(0);
   50576             :             break;
   50577             :         }
   50578           0 :     } while (unlikely(remaining != 0));
   50579           0 :     assert(!last_one_off || *dpos == '0');
   50580           0 :     dpos += last_one_off;
   50581           0 :     length = end - dpos;
   50582           0 :     ulength = length;
   50583           0 :     prepend_sign = 0;
   50584           0 :     if (!is_unsigned && value <= neg_one) {
   50585           0 :         if (padding_char == ' ' || width <= length + 1) {
   50586           0 :             *(--dpos) = '-';
   50587           0 :             ++length;
   50588             :         } else {
   50589             :             prepend_sign = 1;
   50590             :         }
   50591           0 :         ++ulength;
   50592             :     }
   50593           0 :     if (width > ulength) {
   50594             :         ulength = width;
   50595             :     }
   50596           0 :     if (ulength == 1) {
   50597           0 :         return PyUnicode_FromOrdinal(*dpos);
   50598             :     }
   50599           0 :     return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char);
   50600             : }
   50601             : 
   50602             : /* CIntToPyUnicode */
   50603           0 : static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char, char format_char) {
   50604           0 :     char digits[sizeof(Py_ssize_t)*3+2];
   50605           0 :     char *dpos, *end = digits + sizeof(Py_ssize_t)*3+2;
   50606           0 :     const char *hex_digits = DIGITS_HEX;
   50607           0 :     Py_ssize_t length, ulength;
   50608           0 :     int prepend_sign, last_one_off;
   50609           0 :     Py_ssize_t remaining;
   50610             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   50611             : #pragma GCC diagnostic push
   50612             : #pragma GCC diagnostic ignored "-Wconversion"
   50613             : #endif
   50614           0 :     const Py_ssize_t neg_one = (Py_ssize_t) -1, const_zero = (Py_ssize_t) 0;
   50615             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   50616             : #pragma GCC diagnostic pop
   50617             : #endif
   50618           0 :     const int is_unsigned = neg_one > const_zero;
   50619           0 :     if (format_char == 'X') {
   50620           0 :         hex_digits += 16;
   50621           0 :         format_char = 'x';
   50622             :     }
   50623           0 :     remaining = value;
   50624           0 :     last_one_off = 0;
   50625           0 :     dpos = end;
   50626           0 :     do {
   50627           0 :         int digit_pos;
   50628           0 :         switch (format_char) {
   50629           0 :         case 'o':
   50630           0 :             digit_pos = abs((int)(remaining % (8*8)));
   50631           0 :             remaining = (Py_ssize_t) (remaining / (8*8));
   50632           0 :             dpos -= 2;
   50633           0 :             memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2);
   50634           0 :             last_one_off = (digit_pos < 8);
   50635           0 :             break;
   50636           0 :         case 'd':
   50637           0 :             digit_pos = abs((int)(remaining % (10*10)));
   50638           0 :             remaining = (Py_ssize_t) (remaining / (10*10));
   50639           0 :             dpos -= 2;
   50640           0 :             memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2);
   50641           0 :             last_one_off = (digit_pos < 10);
   50642           0 :             break;
   50643           0 :         case 'x':
   50644           0 :             *(--dpos) = hex_digits[abs((int)(remaining % 16))];
   50645           0 :             remaining = (Py_ssize_t) (remaining / 16);
   50646           0 :             break;
   50647             :         default:
   50648             :             assert(0);
   50649             :             break;
   50650             :         }
   50651           0 :     } while (unlikely(remaining != 0));
   50652           0 :     assert(!last_one_off || *dpos == '0');
   50653           0 :     dpos += last_one_off;
   50654           0 :     length = end - dpos;
   50655           0 :     ulength = length;
   50656           0 :     prepend_sign = 0;
   50657           0 :     if (!is_unsigned && value <= neg_one) {
   50658           0 :         if (padding_char == ' ' || width <= length + 1) {
   50659           0 :             *(--dpos) = '-';
   50660           0 :             ++length;
   50661             :         } else {
   50662             :             prepend_sign = 1;
   50663             :         }
   50664           0 :         ++ulength;
   50665             :     }
   50666           0 :     if (width > ulength) {
   50667             :         ulength = width;
   50668             :     }
   50669           0 :     if (ulength == 1) {
   50670           0 :         return PyUnicode_FromOrdinal(*dpos);
   50671             :     }
   50672           0 :     return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char);
   50673             : }
   50674             : 
   50675             : /* JoinPyUnicode */
   50676        1316 : static PyObject* __Pyx_PyUnicode_Join(PyObject* value_tuple, Py_ssize_t value_count, Py_ssize_t result_ulength,
   50677             :                                       Py_UCS4 max_char) {
   50678             : #if CYTHON_USE_UNICODE_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   50679        1316 :     PyObject *result_uval;
   50680        1316 :     int result_ukind, kind_shift;
   50681        1316 :     Py_ssize_t i, char_pos;
   50682        1316 :     void *result_udata;
   50683        1316 :     CYTHON_MAYBE_UNUSED_VAR(max_char);
   50684             : #if CYTHON_PEP393_ENABLED
   50685        1316 :     result_uval = PyUnicode_New(result_ulength, max_char);
   50686        1316 :     if (unlikely(!result_uval)) return NULL;
   50687        1316 :     result_ukind = (max_char <= 255) ? PyUnicode_1BYTE_KIND : (max_char <= 65535) ? PyUnicode_2BYTE_KIND : PyUnicode_4BYTE_KIND;
   50688        1316 :     kind_shift = (result_ukind == PyUnicode_4BYTE_KIND) ? 2 : result_ukind - 1;
   50689        1316 :     result_udata = PyUnicode_DATA(result_uval);
   50690             : #else
   50691             :     result_uval = PyUnicode_FromUnicode(NULL, result_ulength);
   50692             :     if (unlikely(!result_uval)) return NULL;
   50693             :     result_ukind = sizeof(Py_UNICODE);
   50694             :     kind_shift = (result_ukind == 4) ? 2 : result_ukind - 1;
   50695             :     result_udata = PyUnicode_AS_UNICODE(result_uval);
   50696             : #endif
   50697        1316 :     assert(kind_shift == 2 || kind_shift == 1 || kind_shift == 0);
   50698        1316 :     char_pos = 0;
   50699        5264 :     for (i=0; i < value_count; i++) {
   50700        3948 :         int ukind;
   50701        3948 :         Py_ssize_t ulength;
   50702        3948 :         void *udata;
   50703        3948 :         PyObject *uval = PyTuple_GET_ITEM(value_tuple, i);
   50704        3948 :         if (unlikely(__Pyx_PyUnicode_READY(uval)))
   50705             :             goto bad;
   50706        3948 :         ulength = __Pyx_PyUnicode_GET_LENGTH(uval);
   50707        3948 :         if (unlikely(!ulength))
   50708           0 :             continue;
   50709        3948 :         if (unlikely((PY_SSIZE_T_MAX >> kind_shift) - ulength < char_pos))
   50710           0 :             goto overflow;
   50711        3948 :         ukind = __Pyx_PyUnicode_KIND(uval);
   50712        3948 :         udata = __Pyx_PyUnicode_DATA(uval);
   50713        3948 :         if (!CYTHON_PEP393_ENABLED || ukind == result_ukind) {
   50714        3948 :             memcpy((char *)result_udata + (char_pos << kind_shift), udata, (size_t) (ulength << kind_shift));
   50715             :         } else {
   50716             :             #if PY_VERSION_HEX >= 0x030d0000
   50717             :             if (unlikely(PyUnicode_CopyCharacters(result_uval, char_pos, uval, 0, ulength) < 0)) goto bad;
   50718             :             #elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030300F0 || defined(_PyUnicode_FastCopyCharacters)
   50719           0 :             _PyUnicode_FastCopyCharacters(result_uval, char_pos, uval, 0, ulength);
   50720             :             #else
   50721             :             Py_ssize_t j;
   50722             :             for (j=0; j < ulength; j++) {
   50723             :                 Py_UCS4 uchar = __Pyx_PyUnicode_READ(ukind, udata, j);
   50724             :                 __Pyx_PyUnicode_WRITE(result_ukind, result_udata, char_pos+j, uchar);
   50725             :             }
   50726             :             #endif
   50727             :         }
   50728        3948 :         char_pos += ulength;
   50729             :     }
   50730             :     return result_uval;
   50731           0 : overflow:
   50732           0 :     PyErr_SetString(PyExc_OverflowError, "join() result is too long for a Python string");
   50733           0 : bad:
   50734           0 :     Py_DECREF(result_uval);
   50735             :     return NULL;
   50736             : #else
   50737             :     CYTHON_UNUSED_VAR(max_char);
   50738             :     CYTHON_UNUSED_VAR(result_ulength);
   50739             :     CYTHON_UNUSED_VAR(value_count);
   50740             :     return PyUnicode_Join(__pyx_empty_unicode, value_tuple);
   50741             : #endif
   50742             : }
   50743             : 
   50744             : /* GetAttr */
   50745           0 : static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
   50746             : #if CYTHON_USE_TYPE_SLOTS
   50747             : #if PY_MAJOR_VERSION >= 3
   50748           0 :     if (likely(PyUnicode_Check(n)))
   50749             : #else
   50750             :     if (likely(PyString_Check(n)))
   50751             : #endif
   50752           0 :         return __Pyx_PyObject_GetAttrStr(o, n);
   50753             : #endif
   50754           0 :     return PyObject_GetAttr(o, n);
   50755             : }
   50756             : 
   50757             : /* GetItemInt */
   50758           0 : static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
   50759           0 :     PyObject *r;
   50760           0 :     if (unlikely(!j)) return NULL;
   50761           0 :     r = PyObject_GetItem(o, j);
   50762           0 :     Py_DECREF(j);
   50763             :     return r;
   50764             : }
   50765      278486 : static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
   50766             :                                                               CYTHON_NCP_UNUSED int wraparound,
   50767             :                                                               CYTHON_NCP_UNUSED int boundscheck) {
   50768             : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   50769      278486 :     Py_ssize_t wrapped_i = i;
   50770      278486 :     if (wraparound & unlikely(i < 0)) {
   50771           0 :         wrapped_i += PyList_GET_SIZE(o);
   50772             :     }
   50773      278486 :     if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
   50774      278486 :         PyObject *r = PyList_GET_ITEM(o, wrapped_i);
   50775      278486 :         Py_INCREF(r);
   50776      278486 :         return r;
   50777             :     }
   50778           0 :     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
   50779             : #else
   50780             :     return PySequence_GetItem(o, i);
   50781             : #endif
   50782             : }
   50783      112491 : static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
   50784             :                                                               CYTHON_NCP_UNUSED int wraparound,
   50785             :                                                               CYTHON_NCP_UNUSED int boundscheck) {
   50786             : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   50787      112491 :     Py_ssize_t wrapped_i = i;
   50788      112491 :     if (wraparound & unlikely(i < 0)) {
   50789           0 :         wrapped_i += PyTuple_GET_SIZE(o);
   50790             :     }
   50791      112491 :     if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
   50792      112491 :         PyObject *r = PyTuple_GET_ITEM(o, wrapped_i);
   50793      112491 :         Py_INCREF(r);
   50794      112491 :         return r;
   50795             :     }
   50796           0 :     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
   50797             : #else
   50798             :     return PySequence_GetItem(o, i);
   50799             : #endif
   50800             : }
   50801       12060 : static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
   50802             :                                                      CYTHON_NCP_UNUSED int wraparound,
   50803             :                                                      CYTHON_NCP_UNUSED int boundscheck) {
   50804             : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
   50805       12060 :     if (is_list || PyList_CheckExact(o)) {
   50806           0 :         Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
   50807           0 :         if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
   50808           0 :             PyObject *r = PyList_GET_ITEM(o, n);
   50809           0 :             Py_INCREF(r);
   50810           0 :             return r;
   50811             :         }
   50812             :     }
   50813       12060 :     else if (PyTuple_CheckExact(o)) {
   50814       12060 :         Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
   50815       12060 :         if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
   50816       12060 :             PyObject *r = PyTuple_GET_ITEM(o, n);
   50817       12060 :             Py_INCREF(r);
   50818       12060 :             return r;
   50819             :         }
   50820             :     } else {
   50821           0 :         PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
   50822           0 :         PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
   50823           0 :         if (mm && mm->mp_subscript) {
   50824           0 :             PyObject *r, *key = PyInt_FromSsize_t(i);
   50825           0 :             if (unlikely(!key)) return NULL;
   50826           0 :             r = mm->mp_subscript(o, key);
   50827           0 :             Py_DECREF(key);
   50828           0 :             return r;
   50829             :         }
   50830           0 :         if (likely(sm && sm->sq_item)) {
   50831           0 :             if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
   50832           0 :                 Py_ssize_t l = sm->sq_length(o);
   50833           0 :                 if (likely(l >= 0)) {
   50834           0 :                     i += l;
   50835             :                 } else {
   50836           0 :                     if (!PyErr_ExceptionMatches(PyExc_OverflowError))
   50837             :                         return NULL;
   50838           0 :                     PyErr_Clear();
   50839             :                 }
   50840             :             }
   50841           0 :             return sm->sq_item(o, i);
   50842             :         }
   50843             :     }
   50844             : #else
   50845             :     if (is_list || !PyMapping_Check(o)) {
   50846             :         return PySequence_GetItem(o, i);
   50847             :     }
   50848             : #endif
   50849           0 :     return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
   50850             : }
   50851             : 
   50852             : /* PyObjectCallOneArg */
   50853        1559 : static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
   50854        1559 :     PyObject *args[2] = {NULL, arg};
   50855        1559 :     return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
   50856             : }
   50857             : 
   50858             : /* ObjectGetItem */
   50859             : #if CYTHON_USE_TYPE_SLOTS
   50860           0 : static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject *index) {
   50861           0 :     PyObject *runerr = NULL;
   50862           0 :     Py_ssize_t key_value;
   50863           0 :     key_value = __Pyx_PyIndex_AsSsize_t(index);
   50864           0 :     if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
   50865           0 :         return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1);
   50866             :     }
   50867           0 :     if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
   50868           0 :         __Pyx_TypeName index_type_name = __Pyx_PyType_GetName(Py_TYPE(index));
   50869           0 :         PyErr_Clear();
   50870           0 :         PyErr_Format(PyExc_IndexError,
   50871             :             "cannot fit '" __Pyx_FMT_TYPENAME "' into an index-sized integer", index_type_name);
   50872             :         __Pyx_DECREF_TypeName(index_type_name);
   50873             :     }
   50874             :     return NULL;
   50875             : }
   50876           0 : static PyObject *__Pyx_PyObject_GetItem_Slow(PyObject *obj, PyObject *key) {
   50877           0 :     __Pyx_TypeName obj_type_name;
   50878           0 :     if (likely(PyType_Check(obj))) {
   50879           0 :         PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(obj, __pyx_n_s_class_getitem);
   50880           0 :         if (!meth) {
   50881           0 :             PyErr_Clear();
   50882             :         } else {
   50883           0 :             PyObject *result = __Pyx_PyObject_CallOneArg(meth, key);
   50884           0 :             Py_DECREF(meth);
   50885           0 :             return result;
   50886             :         }
   50887             :     }
   50888           0 :     obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
   50889           0 :     PyErr_Format(PyExc_TypeError,
   50890             :         "'" __Pyx_FMT_TYPENAME "' object is not subscriptable", obj_type_name);
   50891           0 :     __Pyx_DECREF_TypeName(obj_type_name);
   50892           0 :     return NULL;
   50893             : }
   50894           0 : static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key) {
   50895           0 :     PyTypeObject *tp = Py_TYPE(obj);
   50896           0 :     PyMappingMethods *mm = tp->tp_as_mapping;
   50897           0 :     PySequenceMethods *sm = tp->tp_as_sequence;
   50898           0 :     if (likely(mm && mm->mp_subscript)) {
   50899           0 :         return mm->mp_subscript(obj, key);
   50900             :     }
   50901           0 :     if (likely(sm && sm->sq_item)) {
   50902           0 :         return __Pyx_PyObject_GetIndex(obj, key);
   50903             :     }
   50904           0 :     return __Pyx_PyObject_GetItem_Slow(obj, key);
   50905             : }
   50906             : #endif
   50907             : 
   50908             : /* KeywordStringCheck */
   50909           0 : static int __Pyx_CheckKeywordStrings(
   50910             :     PyObject *kw,
   50911             :     const char* function_name,
   50912             :     int kw_allowed)
   50913             : {
   50914           0 :     PyObject* key = 0;
   50915           0 :     Py_ssize_t pos = 0;
   50916             : #if CYTHON_COMPILING_IN_PYPY
   50917             :     if (!kw_allowed && PyDict_Next(kw, &pos, &key, 0))
   50918             :         goto invalid_keyword;
   50919             :     return 1;
   50920             : #else
   50921           0 :     if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kw))) {
   50922           0 :         Py_ssize_t kwsize;
   50923             : #if CYTHON_ASSUME_SAFE_MACROS
   50924           0 :         kwsize = PyTuple_GET_SIZE(kw);
   50925             : #else
   50926             :         kwsize = PyTuple_Size(kw);
   50927             :         if (kwsize < 0) return 0;
   50928             : #endif
   50929           0 :         if (unlikely(kwsize == 0))
   50930             :             return 1;
   50931           0 :         if (!kw_allowed) {
   50932             : #if CYTHON_ASSUME_SAFE_MACROS
   50933           0 :             key = PyTuple_GET_ITEM(kw, 0);
   50934             : #else
   50935             :             key = PyTuple_GetItem(kw, pos);
   50936             :             if (!key) return 0;
   50937             : #endif
   50938           0 :             goto invalid_keyword;
   50939             :         }
   50940             : #if PY_VERSION_HEX < 0x03090000
   50941             :         for (pos = 0; pos < kwsize; pos++) {
   50942             : #if CYTHON_ASSUME_SAFE_MACROS
   50943             :             key = PyTuple_GET_ITEM(kw, pos);
   50944             : #else
   50945             :             key = PyTuple_GetItem(kw, pos);
   50946             :             if (!key) return 0;
   50947             : #endif
   50948             :             if (unlikely(!PyUnicode_Check(key)))
   50949             :                 goto invalid_keyword_type;
   50950             :         }
   50951             : #endif
   50952             :         return 1;
   50953             :     }
   50954           0 :     while (PyDict_Next(kw, &pos, &key, 0)) {
   50955             :         #if PY_MAJOR_VERSION < 3
   50956             :         if (unlikely(!PyString_Check(key)))
   50957             :         #endif
   50958           0 :             if (unlikely(!PyUnicode_Check(key)))
   50959           0 :                 goto invalid_keyword_type;
   50960             :     }
   50961           0 :     if (!kw_allowed && unlikely(key))
   50962           0 :         goto invalid_keyword;
   50963             :     return 1;
   50964           0 : invalid_keyword_type:
   50965           0 :     PyErr_Format(PyExc_TypeError,
   50966             :         "%.200s() keywords must be strings", function_name);
   50967           0 :     return 0;
   50968             : #endif
   50969           0 : invalid_keyword:
   50970             :     #if PY_MAJOR_VERSION < 3
   50971             :     PyErr_Format(PyExc_TypeError,
   50972             :         "%.200s() got an unexpected keyword argument '%.200s'",
   50973             :         function_name, PyString_AsString(key));
   50974             :     #else
   50975           0 :     PyErr_Format(PyExc_TypeError,
   50976             :         "%s() got an unexpected keyword argument '%U'",
   50977             :         function_name, key);
   50978             :     #endif
   50979           0 :     return 0;
   50980             : }
   50981             : 
   50982             : /* DivInt[Py_ssize_t] */
   50983           0 : static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t a, Py_ssize_t b) {
   50984           0 :     Py_ssize_t q = a / b;
   50985           0 :     Py_ssize_t r = a - q*b;
   50986           0 :     q -= ((r != 0) & ((r ^ b) < 0));
   50987           0 :     return q;
   50988             : }
   50989             : 
   50990             : /* GetAttr3 */
   50991             : #if __PYX_LIMITED_VERSION_HEX < 0x030d00A1
   50992           0 : static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
   50993           0 :     __Pyx_PyThreadState_declare
   50994           0 :     __Pyx_PyThreadState_assign
   50995           0 :     if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
   50996             :         return NULL;
   50997           0 :     __Pyx_PyErr_Clear();
   50998           0 :     Py_INCREF(d);
   50999             :     return d;
   51000             : }
   51001             : #endif
   51002           0 : static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
   51003           0 :     PyObject *r;
   51004             : #if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
   51005             :     int res = PyObject_GetOptionalAttr(o, n, &r);
   51006             :     return (res != 0) ? r : __Pyx_NewRef(d);
   51007             : #else
   51008             :   #if CYTHON_USE_TYPE_SLOTS
   51009           0 :     if (likely(PyString_Check(n))) {
   51010           0 :         r = __Pyx_PyObject_GetAttrStrNoError(o, n);
   51011           0 :         if (unlikely(!r) && likely(!PyErr_Occurred())) {
   51012           0 :             r = __Pyx_NewRef(d);
   51013             :         }
   51014           0 :         return r;
   51015             :     }
   51016             :   #endif
   51017           0 :     r = PyObject_GetAttr(o, n);
   51018           0 :     return (likely(r)) ? r : __Pyx_GetAttr3Default(d);
   51019             : #endif
   51020             : }
   51021             : 
   51022             : /* PyDictVersioning */
   51023             : #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
   51024             : static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
   51025             :     PyObject *dict = Py_TYPE(obj)->tp_dict;
   51026             :     return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
   51027             : }
   51028             : static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
   51029             :     PyObject **dictptr = NULL;
   51030             :     Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
   51031             :     if (offset) {
   51032             : #if CYTHON_COMPILING_IN_CPYTHON
   51033             :         dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
   51034             : #else
   51035             :         dictptr = _PyObject_GetDictPtr(obj);
   51036             : #endif
   51037             :     }
   51038             :     return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
   51039             : }
   51040             : static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
   51041             :     PyObject *dict = Py_TYPE(obj)->tp_dict;
   51042             :     if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
   51043             :         return 0;
   51044             :     return obj_dict_version == __Pyx_get_object_dict_version(obj);
   51045             : }
   51046             : #endif
   51047             : 
   51048             : /* GetModuleGlobalName */
   51049             : #if CYTHON_USE_DICT_VERSIONS
   51050             : static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
   51051             : #else
   51052        4453 : static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
   51053             : #endif
   51054             : {
   51055        4453 :     PyObject *result;
   51056             : #if !CYTHON_AVOID_BORROWED_REFS
   51057             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && PY_VERSION_HEX < 0x030d0000
   51058        4453 :     result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash);
   51059             :     __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
   51060        4453 :     if (likely(result)) {
   51061        8906 :         return __Pyx_NewRef(result);
   51062           0 :     } else if (unlikely(PyErr_Occurred())) {
   51063             :         return NULL;
   51064             :     }
   51065             : #elif CYTHON_COMPILING_IN_LIMITED_API
   51066             :     if (unlikely(!__pyx_m)) {
   51067             :         return NULL;
   51068             :     }
   51069             :     result = PyObject_GetAttr(__pyx_m, name);
   51070             :     if (likely(result)) {
   51071             :         return result;
   51072             :     }
   51073             : #else
   51074             :     result = PyDict_GetItem(__pyx_d, name);
   51075             :     __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
   51076             :     if (likely(result)) {
   51077             :         return __Pyx_NewRef(result);
   51078             :     }
   51079             : #endif
   51080             : #else
   51081             :     result = PyObject_GetItem(__pyx_d, name);
   51082             :     __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
   51083             :     if (likely(result)) {
   51084             :         return __Pyx_NewRef(result);
   51085             :     }
   51086             :     PyErr_Clear();
   51087             : #endif
   51088           0 :     return __Pyx_GetBuiltinName(name);
   51089             : }
   51090             : 
   51091             : /* RaiseTooManyValuesToUnpack */
   51092           0 : static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
   51093           0 :     PyErr_Format(PyExc_ValueError,
   51094             :                  "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
   51095           0 : }
   51096             : 
   51097             : /* RaiseNeedMoreValuesToUnpack */
   51098           0 : static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
   51099           0 :     PyErr_Format(PyExc_ValueError,
   51100             :                  "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
   51101             :                  index, (index == 1) ? "" : "s");
   51102           0 : }
   51103             : 
   51104             : /* RaiseNoneIterError */
   51105           0 : static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
   51106           0 :     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
   51107           0 : }
   51108             : 
   51109             : /* ExtTypeTest */
   51110          14 : static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
   51111          14 :     __Pyx_TypeName obj_type_name;
   51112          14 :     __Pyx_TypeName type_name;
   51113          14 :     if (unlikely(!type)) {
   51114           0 :         PyErr_SetString(PyExc_SystemError, "Missing type object");
   51115           0 :         return 0;
   51116             :     }
   51117          14 :     if (likely(__Pyx_TypeCheck(obj, type)))
   51118             :         return 1;
   51119           0 :     obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
   51120           0 :     type_name = __Pyx_PyType_GetName(type);
   51121           0 :     PyErr_Format(PyExc_TypeError,
   51122             :                  "Cannot convert " __Pyx_FMT_TYPENAME " to " __Pyx_FMT_TYPENAME,
   51123             :                  obj_type_name, type_name);
   51124           0 :     __Pyx_DECREF_TypeName(obj_type_name);
   51125           0 :     __Pyx_DECREF_TypeName(type_name);
   51126           0 :     return 0;
   51127             : }
   51128             : 
   51129             : /* GetTopmostException */
   51130             : #if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
   51131             : static _PyErr_StackItem *
   51132      112506 : __Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
   51133             : {
   51134      112506 :     _PyErr_StackItem *exc_info = tstate->exc_info;
   51135      112629 :     while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) &&
   51136      111943 :            exc_info->previous_item != NULL)
   51137             :     {
   51138             :         exc_info = exc_info->previous_item;
   51139             :     }
   51140      112506 :     return exc_info;
   51141             : }
   51142             : #endif
   51143             : 
   51144             : /* SaveResetException */
   51145             : #if CYTHON_FAST_THREAD_STATE
   51146      112506 : static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
   51147             :   #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
   51148      112506 :     _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
   51149      112506 :     PyObject *exc_value = exc_info->exc_value;
   51150      112506 :     if (exc_value == NULL || exc_value == Py_None) {
   51151      111820 :         *value = NULL;
   51152      111820 :         *type = NULL;
   51153      111820 :         *tb = NULL;
   51154             :     } else {
   51155         686 :         *value = exc_value;
   51156         686 :         Py_INCREF(*value);
   51157         686 :         *type = (PyObject*) Py_TYPE(exc_value);
   51158         686 :         Py_INCREF(*type);
   51159         686 :         *tb = PyException_GetTraceback(exc_value);
   51160             :     }
   51161             :   #elif CYTHON_USE_EXC_INFO_STACK
   51162             :     _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
   51163             :     *type = exc_info->exc_type;
   51164             :     *value = exc_info->exc_value;
   51165             :     *tb = exc_info->exc_traceback;
   51166             :     Py_XINCREF(*type);
   51167             :     Py_XINCREF(*value);
   51168             :     Py_XINCREF(*tb);
   51169             :   #else
   51170             :     *type = tstate->exc_type;
   51171             :     *value = tstate->exc_value;
   51172             :     *tb = tstate->exc_traceback;
   51173             :     Py_XINCREF(*type);
   51174             :     Py_XINCREF(*value);
   51175             :     Py_XINCREF(*tb);
   51176             :   #endif
   51177      112506 : }
   51178      112491 : static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
   51179             :   #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
   51180      112491 :     _PyErr_StackItem *exc_info = tstate->exc_info;
   51181      112491 :     PyObject *tmp_value = exc_info->exc_value;
   51182      112491 :     exc_info->exc_value = value;
   51183      112491 :     Py_XDECREF(tmp_value);
   51184      112491 :     Py_XDECREF(type);
   51185      112491 :     Py_XDECREF(tb);
   51186             :   #else
   51187             :     PyObject *tmp_type, *tmp_value, *tmp_tb;
   51188             :     #if CYTHON_USE_EXC_INFO_STACK
   51189             :     _PyErr_StackItem *exc_info = tstate->exc_info;
   51190             :     tmp_type = exc_info->exc_type;
   51191             :     tmp_value = exc_info->exc_value;
   51192             :     tmp_tb = exc_info->exc_traceback;
   51193             :     exc_info->exc_type = type;
   51194             :     exc_info->exc_value = value;
   51195             :     exc_info->exc_traceback = tb;
   51196             :     #else
   51197             :     tmp_type = tstate->exc_type;
   51198             :     tmp_value = tstate->exc_value;
   51199             :     tmp_tb = tstate->exc_traceback;
   51200             :     tstate->exc_type = type;
   51201             :     tstate->exc_value = value;
   51202             :     tstate->exc_traceback = tb;
   51203             :     #endif
   51204             :     Py_XDECREF(tmp_type);
   51205             :     Py_XDECREF(tmp_value);
   51206             :     Py_XDECREF(tmp_tb);
   51207             :   #endif
   51208      112491 : }
   51209             : #endif
   51210             : 
   51211             : /* GetException */
   51212             : #if CYTHON_FAST_THREAD_STATE
   51213           0 : static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
   51214             : #else
   51215             : static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
   51216             : #endif
   51217             : {
   51218           0 :     PyObject *local_type = NULL, *local_value, *local_tb = NULL;
   51219             : #if CYTHON_FAST_THREAD_STATE
   51220           0 :     PyObject *tmp_type, *tmp_value, *tmp_tb;
   51221             :   #if PY_VERSION_HEX >= 0x030C00A6
   51222           0 :     local_value = tstate->current_exception;
   51223           0 :     tstate->current_exception = 0;
   51224           0 :     if (likely(local_value)) {
   51225           0 :         local_type = (PyObject*) Py_TYPE(local_value);
   51226           0 :         Py_INCREF(local_type);
   51227           0 :         local_tb = PyException_GetTraceback(local_value);
   51228             :     }
   51229             :   #else
   51230             :     local_type = tstate->curexc_type;
   51231             :     local_value = tstate->curexc_value;
   51232             :     local_tb = tstate->curexc_traceback;
   51233             :     tstate->curexc_type = 0;
   51234             :     tstate->curexc_value = 0;
   51235             :     tstate->curexc_traceback = 0;
   51236             :   #endif
   51237             : #else
   51238             :     PyErr_Fetch(&local_type, &local_value, &local_tb);
   51239             : #endif
   51240           0 :     PyErr_NormalizeException(&local_type, &local_value, &local_tb);
   51241             : #if CYTHON_FAST_THREAD_STATE && PY_VERSION_HEX >= 0x030C00A6
   51242           0 :     if (unlikely(tstate->current_exception))
   51243             : #elif CYTHON_FAST_THREAD_STATE
   51244             :     if (unlikely(tstate->curexc_type))
   51245             : #else
   51246             :     if (unlikely(PyErr_Occurred()))
   51247             : #endif
   51248           0 :         goto bad;
   51249             :     #if PY_MAJOR_VERSION >= 3
   51250           0 :     if (local_tb) {
   51251           0 :         if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
   51252           0 :             goto bad;
   51253             :     }
   51254             :     #endif
   51255           0 :     Py_XINCREF(local_tb);
   51256           0 :     Py_XINCREF(local_type);
   51257           0 :     Py_XINCREF(local_value);
   51258           0 :     *type = local_type;
   51259           0 :     *value = local_value;
   51260           0 :     *tb = local_tb;
   51261             : #if CYTHON_FAST_THREAD_STATE
   51262             :     #if CYTHON_USE_EXC_INFO_STACK
   51263             :     {
   51264           0 :         _PyErr_StackItem *exc_info = tstate->exc_info;
   51265             :       #if PY_VERSION_HEX >= 0x030B00a4
   51266           0 :         tmp_value = exc_info->exc_value;
   51267           0 :         exc_info->exc_value = local_value;
   51268           0 :         tmp_type = NULL;
   51269           0 :         tmp_tb = NULL;
   51270           0 :         Py_XDECREF(local_type);
   51271           0 :         Py_XDECREF(local_tb);
   51272             :       #else
   51273             :         tmp_type = exc_info->exc_type;
   51274             :         tmp_value = exc_info->exc_value;
   51275             :         tmp_tb = exc_info->exc_traceback;
   51276             :         exc_info->exc_type = local_type;
   51277             :         exc_info->exc_value = local_value;
   51278             :         exc_info->exc_traceback = local_tb;
   51279             :       #endif
   51280             :     }
   51281             :     #else
   51282             :     tmp_type = tstate->exc_type;
   51283             :     tmp_value = tstate->exc_value;
   51284             :     tmp_tb = tstate->exc_traceback;
   51285             :     tstate->exc_type = local_type;
   51286             :     tstate->exc_value = local_value;
   51287             :     tstate->exc_traceback = local_tb;
   51288             :     #endif
   51289           0 :     Py_XDECREF(tmp_type);
   51290           0 :     Py_XDECREF(tmp_value);
   51291           0 :     Py_XDECREF(tmp_tb);
   51292             : #else
   51293             :     PyErr_SetExcInfo(local_type, local_value, local_tb);
   51294             : #endif
   51295           0 :     return 0;
   51296           0 : bad:
   51297           0 :     *type = 0;
   51298           0 :     *value = 0;
   51299           0 :     *tb = 0;
   51300           0 :     Py_XDECREF(local_type);
   51301           0 :     Py_XDECREF(local_value);
   51302           0 :     Py_XDECREF(local_tb);
   51303           0 :     return -1;
   51304             : }
   51305             : 
   51306             : /* SwapException */
   51307             : #if CYTHON_FAST_THREAD_STATE
   51308           0 : static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
   51309           0 :     PyObject *tmp_type, *tmp_value, *tmp_tb;
   51310             :   #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
   51311           0 :     _PyErr_StackItem *exc_info = tstate->exc_info;
   51312           0 :     tmp_value = exc_info->exc_value;
   51313           0 :     exc_info->exc_value = *value;
   51314           0 :     if (tmp_value == NULL || tmp_value == Py_None) {
   51315           0 :         Py_XDECREF(tmp_value);
   51316           0 :         tmp_value = NULL;
   51317           0 :         tmp_type = NULL;
   51318           0 :         tmp_tb = NULL;
   51319             :     } else {
   51320           0 :         tmp_type = (PyObject*) Py_TYPE(tmp_value);
   51321           0 :         Py_INCREF(tmp_type);
   51322             :         #if CYTHON_COMPILING_IN_CPYTHON
   51323           0 :         tmp_tb = ((PyBaseExceptionObject*) tmp_value)->traceback;
   51324           0 :         Py_XINCREF(tmp_tb);
   51325             :         #else
   51326             :         tmp_tb = PyException_GetTraceback(tmp_value);
   51327             :         #endif
   51328             :     }
   51329             :   #elif CYTHON_USE_EXC_INFO_STACK
   51330             :     _PyErr_StackItem *exc_info = tstate->exc_info;
   51331             :     tmp_type = exc_info->exc_type;
   51332             :     tmp_value = exc_info->exc_value;
   51333             :     tmp_tb = exc_info->exc_traceback;
   51334             :     exc_info->exc_type = *type;
   51335             :     exc_info->exc_value = *value;
   51336             :     exc_info->exc_traceback = *tb;
   51337             :   #else
   51338             :     tmp_type = tstate->exc_type;
   51339             :     tmp_value = tstate->exc_value;
   51340             :     tmp_tb = tstate->exc_traceback;
   51341             :     tstate->exc_type = *type;
   51342             :     tstate->exc_value = *value;
   51343             :     tstate->exc_traceback = *tb;
   51344             :   #endif
   51345           0 :     *type = tmp_type;
   51346           0 :     *value = tmp_value;
   51347           0 :     *tb = tmp_tb;
   51348           0 : }
   51349             : #else
   51350             : static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
   51351             :     PyObject *tmp_type, *tmp_value, *tmp_tb;
   51352             :     PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
   51353             :     PyErr_SetExcInfo(*type, *value, *tb);
   51354             :     *type = tmp_type;
   51355             :     *value = tmp_value;
   51356             :     *tb = tmp_tb;
   51357             : }
   51358             : #endif
   51359             : 
   51360             : /* Import */
   51361           3 : static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
   51362           3 :     PyObject *module = 0;
   51363           3 :     PyObject *empty_dict = 0;
   51364           3 :     PyObject *empty_list = 0;
   51365             :     #if PY_MAJOR_VERSION < 3
   51366             :     PyObject *py_import;
   51367             :     py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
   51368             :     if (unlikely(!py_import))
   51369             :         goto bad;
   51370             :     if (!from_list) {
   51371             :         empty_list = PyList_New(0);
   51372             :         if (unlikely(!empty_list))
   51373             :             goto bad;
   51374             :         from_list = empty_list;
   51375             :     }
   51376             :     #endif
   51377           3 :     empty_dict = PyDict_New();
   51378           3 :     if (unlikely(!empty_dict))
   51379           0 :         goto bad;
   51380             :     {
   51381             :         #if PY_MAJOR_VERSION >= 3
   51382           3 :         if (level == -1) {
   51383           0 :             if (strchr(__Pyx_MODULE_NAME, '.') != NULL) {
   51384             :                 module = PyImport_ImportModuleLevelObject(
   51385             :                     name, __pyx_d, empty_dict, from_list, 1);
   51386             :                 if (unlikely(!module)) {
   51387             :                     if (unlikely(!PyErr_ExceptionMatches(PyExc_ImportError)))
   51388             :                         goto bad;
   51389             :                     PyErr_Clear();
   51390             :                 }
   51391             :             }
   51392           0 :             level = 0;
   51393             :         }
   51394             :         #endif
   51395           3 :         if (!module) {
   51396             :             #if PY_MAJOR_VERSION < 3
   51397             :             PyObject *py_level = PyInt_FromLong(level);
   51398             :             if (unlikely(!py_level))
   51399             :                 goto bad;
   51400             :             module = PyObject_CallFunctionObjArgs(py_import,
   51401             :                 name, __pyx_d, empty_dict, from_list, py_level, (PyObject *)NULL);
   51402             :             Py_DECREF(py_level);
   51403             :             #else
   51404           3 :             module = PyImport_ImportModuleLevelObject(
   51405           3 :                 name, __pyx_d, empty_dict, from_list, level);
   51406             :             #endif
   51407             :         }
   51408             :     }
   51409           3 : bad:
   51410           3 :     Py_XDECREF(empty_dict);
   51411           3 :     Py_XDECREF(empty_list);
   51412             :     #if PY_MAJOR_VERSION < 3
   51413             :     Py_XDECREF(py_import);
   51414             :     #endif
   51415           3 :     return module;
   51416             : }
   51417             : 
   51418             : /* ImportDottedModule */
   51419             : #if PY_MAJOR_VERSION >= 3
   51420           0 : static PyObject *__Pyx__ImportDottedModule_Error(PyObject *name, PyObject *parts_tuple, Py_ssize_t count) {
   51421           0 :     PyObject *partial_name = NULL, *slice = NULL, *sep = NULL;
   51422           0 :     if (unlikely(PyErr_Occurred())) {
   51423           0 :         PyErr_Clear();
   51424             :     }
   51425           0 :     if (likely(PyTuple_GET_SIZE(parts_tuple) == count)) {
   51426             :         partial_name = name;
   51427             :     } else {
   51428           0 :         slice = PySequence_GetSlice(parts_tuple, 0, count);
   51429           0 :         if (unlikely(!slice))
   51430           0 :             goto bad;
   51431           0 :         sep = PyUnicode_FromStringAndSize(".", 1);
   51432           0 :         if (unlikely(!sep))
   51433           0 :             goto bad;
   51434           0 :         partial_name = PyUnicode_Join(sep, slice);
   51435             :     }
   51436           0 :     PyErr_Format(
   51437             : #if PY_MAJOR_VERSION < 3
   51438             :         PyExc_ImportError,
   51439             :         "No module named '%s'", PyString_AS_STRING(partial_name));
   51440             : #else
   51441             : #if PY_VERSION_HEX >= 0x030600B1
   51442             :         PyExc_ModuleNotFoundError,
   51443             : #else
   51444             :         PyExc_ImportError,
   51445             : #endif
   51446             :         "No module named '%U'", partial_name);
   51447             : #endif
   51448           0 : bad:
   51449           0 :     Py_XDECREF(sep);
   51450           0 :     Py_XDECREF(slice);
   51451           0 :     Py_XDECREF(partial_name);
   51452           0 :     return NULL;
   51453             : }
   51454             : #endif
   51455             : #if PY_MAJOR_VERSION >= 3
   51456           3 : static PyObject *__Pyx__ImportDottedModule_Lookup(PyObject *name) {
   51457           3 :     PyObject *imported_module;
   51458             : #if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM  < 0x07030400)
   51459             :     PyObject *modules = PyImport_GetModuleDict();
   51460             :     if (unlikely(!modules))
   51461             :         return NULL;
   51462             :     imported_module = __Pyx_PyDict_GetItemStr(modules, name);
   51463             :     Py_XINCREF(imported_module);
   51464             : #else
   51465           6 :     imported_module = PyImport_GetModule(name);
   51466             : #endif
   51467           3 :     return imported_module;
   51468             : }
   51469             : #endif
   51470             : #if PY_MAJOR_VERSION >= 3
   51471           0 : static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *name, PyObject *parts_tuple) {
   51472           0 :     Py_ssize_t i, nparts;
   51473           0 :     nparts = PyTuple_GET_SIZE(parts_tuple);
   51474           0 :     for (i=1; i < nparts && module; i++) {
   51475           0 :         PyObject *part, *submodule;
   51476             : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   51477           0 :         part = PyTuple_GET_ITEM(parts_tuple, i);
   51478             : #else
   51479             :         part = PySequence_ITEM(parts_tuple, i);
   51480             : #endif
   51481           0 :         submodule = __Pyx_PyObject_GetAttrStrNoError(module, part);
   51482             : #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
   51483             :         Py_DECREF(part);
   51484             : #endif
   51485           0 :         Py_DECREF(module);
   51486           0 :         module = submodule;
   51487             :     }
   51488           0 :     if (unlikely(!module)) {
   51489           0 :         return __Pyx__ImportDottedModule_Error(name, parts_tuple, i);
   51490             :     }
   51491             :     return module;
   51492             : }
   51493             : #endif
   51494           0 : static PyObject *__Pyx__ImportDottedModule(PyObject *name, PyObject *parts_tuple) {
   51495             : #if PY_MAJOR_VERSION < 3
   51496             :     PyObject *module, *from_list, *star = __pyx_n_s__3;
   51497             :     CYTHON_UNUSED_VAR(parts_tuple);
   51498             :     from_list = PyList_New(1);
   51499             :     if (unlikely(!from_list))
   51500             :         return NULL;
   51501             :     Py_INCREF(star);
   51502             :     PyList_SET_ITEM(from_list, 0, star);
   51503             :     module = __Pyx_Import(name, from_list, 0);
   51504             :     Py_DECREF(from_list);
   51505             :     return module;
   51506             : #else
   51507           0 :     PyObject *imported_module;
   51508           0 :     PyObject *module = __Pyx_Import(name, NULL, 0);
   51509           0 :     if (!parts_tuple || unlikely(!module))
   51510             :         return module;
   51511           0 :     imported_module = __Pyx__ImportDottedModule_Lookup(name);
   51512           0 :     if (likely(imported_module)) {
   51513           0 :         Py_DECREF(module);
   51514           0 :         return imported_module;
   51515             :     }
   51516           0 :     PyErr_Clear();
   51517           0 :     return __Pyx_ImportDottedModule_WalkParts(module, name, parts_tuple);
   51518             : #endif
   51519             : }
   51520           3 : static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple) {
   51521             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030400B1
   51522           3 :     PyObject *module = __Pyx__ImportDottedModule_Lookup(name);
   51523           3 :     if (likely(module)) {
   51524           3 :         PyObject *spec = __Pyx_PyObject_GetAttrStrNoError(module, __pyx_n_s_spec);
   51525           3 :         if (likely(spec)) {
   51526           3 :             PyObject *unsafe = __Pyx_PyObject_GetAttrStrNoError(spec, __pyx_n_s_initializing);
   51527           3 :             if (likely(!unsafe || !__Pyx_PyObject_IsTrue(unsafe))) {
   51528           3 :                 Py_DECREF(spec);
   51529             :                 spec = NULL;
   51530             :             }
   51531           3 :             Py_XDECREF(unsafe);
   51532             :         }
   51533           3 :         if (likely(!spec)) {
   51534           3 :             PyErr_Clear();
   51535           3 :             return module;
   51536             :         }
   51537           0 :         Py_DECREF(spec);
   51538           0 :         Py_DECREF(module);
   51539           0 :     } else if (PyErr_Occurred()) {
   51540           0 :         PyErr_Clear();
   51541             :     }
   51542             : #endif
   51543           0 :     return __Pyx__ImportDottedModule(name, parts_tuple);
   51544             : }
   51545             : 
   51546             : /* FastTypeChecks */
   51547             : #if CYTHON_COMPILING_IN_CPYTHON
   51548             : static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
   51549           0 :     while (a) {
   51550           0 :         a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*);
   51551           0 :         if (a == b)
   51552             :             return 1;
   51553             :     }
   51554           0 :     return b == &PyBaseObject_Type;
   51555             : }
   51556      649358 : static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
   51557      649358 :     PyObject *mro;
   51558      649358 :     if (a == b) return 1;
   51559      536853 :     mro = a->tp_mro;
   51560      536853 :     if (likely(mro)) {
   51561      536853 :         Py_ssize_t i, n;
   51562      536853 :         n = PyTuple_GET_SIZE(mro);
   51563     1473834 :         for (i = 0; i < n; i++) {
   51564     1073706 :             if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
   51565             :                 return 1;
   51566             :         }
   51567             :         return 0;
   51568             :     }
   51569      649358 :     return __Pyx_InBases(a, b);
   51570             : }
   51571        2612 : static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) {
   51572        2612 :     PyObject *mro;
   51573        2612 :     if (cls == a || cls == b) return 1;
   51574        2588 :     mro = cls->tp_mro;
   51575        2588 :     if (likely(mro)) {
   51576        2588 :         Py_ssize_t i, n;
   51577        2588 :         n = PyTuple_GET_SIZE(mro);
   51578        9030 :         for (i = 0; i < n; i++) {
   51579        6442 :             PyObject *base = PyTuple_GET_ITEM(mro, i);
   51580        6442 :             if (base == (PyObject *)a || base == (PyObject *)b)
   51581             :                 return 1;
   51582             :         }
   51583             :         return 0;
   51584             :     }
   51585           0 :     return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b);
   51586             : }
   51587             : #if PY_MAJOR_VERSION == 2
   51588             : static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
   51589             :     PyObject *exception, *value, *tb;
   51590             :     int res;
   51591             :     __Pyx_PyThreadState_declare
   51592             :     __Pyx_PyThreadState_assign
   51593             :     __Pyx_ErrFetch(&exception, &value, &tb);
   51594             :     res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
   51595             :     if (unlikely(res == -1)) {
   51596             :         PyErr_WriteUnraisable(err);
   51597             :         res = 0;
   51598             :     }
   51599             :     if (!res) {
   51600             :         res = PyObject_IsSubclass(err, exc_type2);
   51601             :         if (unlikely(res == -1)) {
   51602             :             PyErr_WriteUnraisable(err);
   51603             :             res = 0;
   51604             :         }
   51605             :     }
   51606             :     __Pyx_ErrRestore(exception, value, tb);
   51607             :     return res;
   51608             : }
   51609             : #else
   51610           0 : static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
   51611           0 :     if (exc_type1) {
   51612           0 :         return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2);
   51613             :     } else {
   51614           0 :         return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
   51615             :     }
   51616             : }
   51617             : #endif
   51618           0 : static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
   51619           0 :     Py_ssize_t i, n;
   51620           0 :     assert(PyExceptionClass_Check(exc_type));
   51621           0 :     n = PyTuple_GET_SIZE(tuple);
   51622             : #if PY_MAJOR_VERSION >= 3
   51623           0 :     for (i=0; i<n; i++) {
   51624           0 :         if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
   51625             :     }
   51626             : #endif
   51627           0 :     for (i=0; i<n; i++) {
   51628           0 :         PyObject *t = PyTuple_GET_ITEM(tuple, i);
   51629             :         #if PY_MAJOR_VERSION < 3
   51630             :         if (likely(exc_type == t)) return 1;
   51631             :         #endif
   51632           0 :         if (likely(PyExceptionClass_Check(t))) {
   51633           0 :             if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
   51634             :         } else {
   51635           0 :         }
   51636             :     }
   51637             :     return 0;
   51638             : }
   51639           0 : static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
   51640           0 :     if (likely(err == exc_type)) return 1;
   51641           0 :     if (likely(PyExceptionClass_Check(err))) {
   51642           0 :         if (likely(PyExceptionClass_Check(exc_type))) {
   51643           0 :             return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
   51644           0 :         } else if (likely(PyTuple_Check(exc_type))) {
   51645           0 :             return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
   51646             :         } else {
   51647           0 :         }
   51648             :     }
   51649           0 :     return PyErr_GivenExceptionMatches(err, exc_type);
   51650             : }
   51651           0 : static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
   51652           0 :     assert(PyExceptionClass_Check(exc_type1));
   51653           0 :     assert(PyExceptionClass_Check(exc_type2));
   51654           0 :     if (likely(err == exc_type1 || err == exc_type2)) return 1;
   51655           0 :     if (likely(PyExceptionClass_Check(err))) {
   51656           0 :         return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
   51657             :     }
   51658           0 :     return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
   51659             : }
   51660             : #endif
   51661             : 
   51662             : /* PySequenceMultiply */
   51663           0 : static PyObject* __Pyx_PySequence_Multiply_Generic(PyObject *seq, Py_ssize_t mul) {
   51664           0 :     PyObject *result, *pymul = PyInt_FromSsize_t(mul);
   51665           0 :     if (unlikely(!pymul))
   51666             :         return NULL;
   51667           0 :     result = PyNumber_Multiply(seq, pymul);
   51668           0 :     Py_DECREF(pymul);
   51669             :     return result;
   51670             : }
   51671           0 : static CYTHON_INLINE PyObject* __Pyx_PySequence_Multiply(PyObject *seq, Py_ssize_t mul) {
   51672             : #if CYTHON_USE_TYPE_SLOTS
   51673           0 :     PyTypeObject *type = Py_TYPE(seq);
   51674           0 :     if (likely(type->tp_as_sequence && type->tp_as_sequence->sq_repeat)) {
   51675           0 :         return type->tp_as_sequence->sq_repeat(seq, mul);
   51676             :     } else
   51677             : #endif
   51678             :     {
   51679           0 :         return __Pyx_PySequence_Multiply_Generic(seq, mul);
   51680             :     }
   51681             : }
   51682             : 
   51683             : /* SetItemInt */
   51684           0 : static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) {
   51685           0 :     int r;
   51686           0 :     if (unlikely(!j)) return -1;
   51687           0 :     r = PyObject_SetItem(o, j, v);
   51688           0 :     Py_DECREF(j);
   51689             :     return r;
   51690             : }
   51691      128608 : static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list,
   51692             :                                                CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) {
   51693             : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
   51694      128608 :     if (is_list || PyList_CheckExact(o)) {
   51695      128608 :         Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o));
   51696      128608 :         if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) {
   51697      128608 :             PyObject* old = PyList_GET_ITEM(o, n);
   51698      128608 :             Py_INCREF(v);
   51699      128608 :             PyList_SET_ITEM(o, n, v);
   51700      128608 :             Py_DECREF(old);
   51701      128608 :             return 1;
   51702             :         }
   51703             :     } else {
   51704           0 :         PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
   51705           0 :         PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
   51706           0 :         if (mm && mm->mp_ass_subscript) {
   51707           0 :             int r;
   51708           0 :             PyObject *key = PyInt_FromSsize_t(i);
   51709           0 :             if (unlikely(!key)) return -1;
   51710           0 :             r = mm->mp_ass_subscript(o, key, v);
   51711           0 :             Py_DECREF(key);
   51712           0 :             return r;
   51713             :         }
   51714           0 :         if (likely(sm && sm->sq_ass_item)) {
   51715           0 :             if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
   51716           0 :                 Py_ssize_t l = sm->sq_length(o);
   51717           0 :                 if (likely(l >= 0)) {
   51718           0 :                     i += l;
   51719             :                 } else {
   51720           0 :                     if (!PyErr_ExceptionMatches(PyExc_OverflowError))
   51721             :                         return -1;
   51722           0 :                     PyErr_Clear();
   51723             :                 }
   51724             :             }
   51725           0 :             return sm->sq_ass_item(o, i, v);
   51726             :         }
   51727             :     }
   51728             : #else
   51729             :     if (is_list || !PyMapping_Check(o))
   51730             :     {
   51731             :         return PySequence_SetItem(o, i, v);
   51732             :     }
   51733             : #endif
   51734           0 :     return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v);
   51735             : }
   51736             : 
   51737             : /* RaiseUnboundLocalError */
   51738           0 : static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) {
   51739           0 :     PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
   51740             : }
   51741             : 
   51742             : /* DivInt[long] */
   51743           0 : static CYTHON_INLINE long __Pyx_div_long(long a, long b) {
   51744           0 :     long q = a / b;
   51745           0 :     long r = a - q*b;
   51746           0 :     q -= ((r != 0) & ((r ^ b) < 0));
   51747           0 :     return q;
   51748             : }
   51749             : 
   51750             : /* ImportFrom */
   51751           0 : static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
   51752           0 :     PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
   51753           0 :     if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
   51754           0 :         const char* module_name_str = 0;
   51755           0 :         PyObject* module_name = 0;
   51756           0 :         PyObject* module_dot = 0;
   51757           0 :         PyObject* full_name = 0;
   51758           0 :         PyErr_Clear();
   51759           0 :         module_name_str = PyModule_GetName(module);
   51760           0 :         if (unlikely(!module_name_str)) { goto modbad; }
   51761           0 :         module_name = PyUnicode_FromString(module_name_str);
   51762           0 :         if (unlikely(!module_name)) { goto modbad; }
   51763           0 :         module_dot = PyUnicode_Concat(module_name, __pyx_kp_u__2);
   51764           0 :         if (unlikely(!module_dot)) { goto modbad; }
   51765           0 :         full_name = PyUnicode_Concat(module_dot, name);
   51766           0 :         if (unlikely(!full_name)) { goto modbad; }
   51767             :         #if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM  < 0x07030400)
   51768             :         {
   51769             :             PyObject *modules = PyImport_GetModuleDict();
   51770             :             if (unlikely(!modules))
   51771             :                 goto modbad;
   51772             :             value = PyObject_GetItem(modules, full_name);
   51773             :         }
   51774             :         #else
   51775           0 :         value = PyImport_GetModule(full_name);
   51776             :         #endif
   51777           0 :       modbad:
   51778           0 :         Py_XDECREF(full_name);
   51779           0 :         Py_XDECREF(module_dot);
   51780           0 :         Py_XDECREF(module_name);
   51781             :     }
   51782           0 :     if (unlikely(!value)) {
   51783           0 :         PyErr_Format(PyExc_ImportError,
   51784             :         #if PY_MAJOR_VERSION < 3
   51785             :             "cannot import name %.230s", PyString_AS_STRING(name));
   51786             :         #else
   51787             :             "cannot import name %S", name);
   51788             :         #endif
   51789             :     }
   51790           0 :     return value;
   51791             : }
   51792             : 
   51793             : /* HasAttr */
   51794           0 : static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
   51795           0 :     PyObject *r;
   51796           0 :     if (unlikely(!__Pyx_PyBaseString_Check(n))) {
   51797           0 :         PyErr_SetString(PyExc_TypeError,
   51798             :                         "hasattr(): attribute name must be string");
   51799           0 :         return -1;
   51800             :     }
   51801           0 :     r = __Pyx_GetAttr(o, n);
   51802           0 :     if (!r) {
   51803           0 :         PyErr_Clear();
   51804           0 :         return 0;
   51805             :     } else {
   51806           0 :         Py_DECREF(r);
   51807           0 :         return 1;
   51808             :     }
   51809             : }
   51810             : 
   51811             : /* PyObjectFormatAndDecref */
   51812             : static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f) {
   51813             :     if (unlikely(!s)) return NULL;
   51814             :     if (likely(PyUnicode_CheckExact(s))) return s;
   51815             :     #if PY_MAJOR_VERSION < 3
   51816             :     if (likely(PyString_CheckExact(s))) {
   51817             :         PyObject *result = PyUnicode_FromEncodedObject(s, NULL, "strict");
   51818             :         Py_DECREF(s);
   51819             :         return result;
   51820             :     }
   51821             :     #endif
   51822             :     return __Pyx_PyObject_FormatAndDecref(s, f);
   51823             : }
   51824        1316 : static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f) {
   51825        1316 :     PyObject *result;
   51826        1316 :     if (unlikely(!s)) return NULL;
   51827        1316 :     result = PyObject_Format(s, f);
   51828        1316 :     Py_DECREF(s);
   51829             :     return result;
   51830             : }
   51831             : 
   51832             : /* BufferIndexError */
   51833           0 : static void __Pyx_RaiseBufferIndexError(int axis) {
   51834           0 :   PyErr_Format(PyExc_IndexError,
   51835             :      "Out of bounds on buffer access (axis %d)", axis);
   51836             : }
   51837             : 
   51838             : /* PyIntCompare */
   51839       77333 : static CYTHON_INLINE int __Pyx_PyInt_BoolEqObjC(PyObject *op1, PyObject *op2, long intval, long inplace) {
   51840       77333 :     CYTHON_MAYBE_UNUSED_VAR(intval);
   51841       77333 :     CYTHON_UNUSED_VAR(inplace);
   51842       77333 :     if (op1 == op2) {
   51843             :         return 1;
   51844             :     }
   51845             :     #if PY_MAJOR_VERSION < 3
   51846             :     if (likely(PyInt_CheckExact(op1))) {
   51847             :         const long b = intval;
   51848             :         long a = PyInt_AS_LONG(op1);
   51849             :         return (a == b);
   51850             :     }
   51851             :     #endif
   51852             :     #if CYTHON_USE_PYLONG_INTERNALS
   51853       77333 :     if (likely(PyLong_CheckExact(op1))) {
   51854        6436 :         int unequal;
   51855        6436 :         unsigned long uintval;
   51856        6436 :         Py_ssize_t size = __Pyx_PyLong_DigitCount(op1);
   51857        6436 :         const digit* digits = __Pyx_PyLong_Digits(op1);
   51858        6436 :         if (intval == 0) {
   51859        6436 :             return (__Pyx_PyLong_IsZero(op1) == 1);
   51860           0 :         } else if (intval < 0) {
   51861           0 :             if (__Pyx_PyLong_IsNonNeg(op1))
   51862             :                 return 0;
   51863           0 :             intval = -intval;
   51864             :         } else {
   51865           0 :             if (__Pyx_PyLong_IsNeg(op1))
   51866             :                 return 0;
   51867             :         }
   51868           0 :         uintval = (unsigned long) intval;
   51869             : #if PyLong_SHIFT * 4 < SIZEOF_LONG*8
   51870             :         if (uintval >> (PyLong_SHIFT * 4)) {
   51871             :             unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
   51872             :                  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
   51873             :         } else
   51874             : #endif
   51875             : #if PyLong_SHIFT * 3 < SIZEOF_LONG*8
   51876             :         if (uintval >> (PyLong_SHIFT * 3)) {
   51877             :             unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
   51878             :                  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
   51879             :         } else
   51880             : #endif
   51881             : #if PyLong_SHIFT * 2 < SIZEOF_LONG*8
   51882           0 :         if (uintval >> (PyLong_SHIFT * 2)) {
   51883           0 :             unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
   51884           0 :                  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
   51885             :         } else
   51886             : #endif
   51887             : #if PyLong_SHIFT * 1 < SIZEOF_LONG*8
   51888           0 :         if (uintval >> (PyLong_SHIFT * 1)) {
   51889           0 :             unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
   51890           0 :                  | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
   51891             :         } else
   51892             : #endif
   51893           0 :             unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK));
   51894           0 :         return (unequal == 0);
   51895             :     }
   51896             :     #endif
   51897       70897 :     if (PyFloat_CheckExact(op1)) {
   51898       60666 :         const long b = intval;
   51899             : #if CYTHON_COMPILING_IN_LIMITED_API
   51900             :         double a = __pyx_PyFloat_AsDouble(op1);
   51901             : #else
   51902       60666 :         double a = PyFloat_AS_DOUBLE(op1);
   51903             : #endif
   51904       60666 :         return ((double)a == (double)b);
   51905             :     }
   51906       10231 :     return __Pyx_PyObject_IsTrueAndDecref(
   51907             :         PyObject_RichCompare(op1, op2, Py_EQ));
   51908             : }
   51909             : 
   51910             : /* DelItemInt */
   51911           0 : static int __Pyx_DelItem_Generic(PyObject *o, PyObject *j) {
   51912           0 :     int r;
   51913           0 :     if (unlikely(!j)) return -1;
   51914           0 :     r = PyObject_DelItem(o, j);
   51915           0 :     Py_DECREF(j);
   51916             :     return r;
   51917             : }
   51918        1194 : static CYTHON_INLINE int __Pyx_DelItemInt_Fast(PyObject *o, Py_ssize_t i,
   51919             :                                                int is_list, CYTHON_NCP_UNUSED int wraparound) {
   51920             : #if !CYTHON_USE_TYPE_SLOTS
   51921             :     if (is_list || !PyMapping_Check(o)) {
   51922             :         return PySequence_DelItem(o, i);
   51923             :     }
   51924             : #else
   51925        1194 :     PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
   51926        1194 :     PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
   51927        1194 :     if ((!is_list) && mm && mm->mp_ass_subscript) {
   51928           0 :         PyObject *key = PyInt_FromSsize_t(i);
   51929           0 :         return likely(key) ? mm->mp_ass_subscript(o, key, (PyObject *)NULL) : -1;
   51930             :     }
   51931        1194 :     if (likely(sm && sm->sq_ass_item)) {
   51932        1194 :         if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
   51933           0 :             Py_ssize_t l = sm->sq_length(o);
   51934           0 :             if (likely(l >= 0)) {
   51935           0 :                 i += l;
   51936             :             } else {
   51937           0 :                 if (!PyErr_ExceptionMatches(PyExc_OverflowError))
   51938             :                     return -1;
   51939           0 :                 PyErr_Clear();
   51940             :             }
   51941             :         }
   51942        1194 :         return sm->sq_ass_item(o, i, (PyObject *)NULL);
   51943             :     }
   51944             : #endif
   51945           0 :     return __Pyx_DelItem_Generic(o, PyInt_FromSsize_t(i));
   51946             : }
   51947             : 
   51948             : /* DictGetItem */
   51949             : #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
   51950      244876 : static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
   51951      244876 :     PyObject *value;
   51952      244876 :     value = PyDict_GetItemWithError(d, key);
   51953      244876 :     if (unlikely(!value)) {
   51954           0 :         if (!PyErr_Occurred()) {
   51955           0 :             if (unlikely(PyTuple_Check(key))) {
   51956           0 :                 PyObject* args = PyTuple_Pack(1, key);
   51957           0 :                 if (likely(args)) {
   51958           0 :                     PyErr_SetObject(PyExc_KeyError, args);
   51959           0 :                     Py_DECREF(args);
   51960             :                 }
   51961             :             } else {
   51962           0 :                 PyErr_SetObject(PyExc_KeyError, key);
   51963             :             }
   51964             :         }
   51965           0 :         return NULL;
   51966             :     }
   51967      244876 :     Py_INCREF(value);
   51968             :     return value;
   51969             : }
   51970             : #endif
   51971             : 
   51972             : /* IsLittleEndian */
   51973           0 : static CYTHON_INLINE int __Pyx_Is_Little_Endian(void)
   51974             : {
   51975           0 :   union {
   51976             :     uint32_t u32;
   51977             :     uint8_t u8[4];
   51978             :   } S;
   51979           0 :   S.u32 = 0x01020304;
   51980           0 :   return S.u8[0] == 4;
   51981             : }
   51982             : 
   51983             : /* BufferFormatCheck */
   51984      529189 : static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
   51985             :                               __Pyx_BufFmt_StackElem* stack,
   51986             :                               __Pyx_TypeInfo* type) {
   51987      529189 :   stack[0].field = &ctx->root;
   51988      529189 :   stack[0].parent_offset = 0;
   51989      529189 :   ctx->root.type = type;
   51990      529189 :   ctx->root.name = "buffer dtype";
   51991      529189 :   ctx->root.offset = 0;
   51992      529189 :   ctx->head = stack;
   51993      529189 :   ctx->head->field = &ctx->root;
   51994      529189 :   ctx->fmt_offset = 0;
   51995      529189 :   ctx->head->parent_offset = 0;
   51996      529189 :   ctx->new_packmode = '@';
   51997      529189 :   ctx->enc_packmode = '@';
   51998      529189 :   ctx->new_count = 1;
   51999      529189 :   ctx->enc_count = 0;
   52000      529189 :   ctx->enc_type = 0;
   52001      529189 :   ctx->is_complex = 0;
   52002      529189 :   ctx->is_valid_array = 0;
   52003      529189 :   ctx->struct_alignment = 0;
   52004      529189 :   while (type->typegroup == 'S') {
   52005           0 :     ++ctx->head;
   52006           0 :     ctx->head->field = type->fields;
   52007           0 :     ctx->head->parent_offset = 0;
   52008           0 :     type = type->fields->type;
   52009             :   }
   52010      529189 : }
   52011           0 : static int __Pyx_BufFmt_ParseNumber(const char** ts) {
   52012           0 :     int count;
   52013           0 :     const char* t = *ts;
   52014           0 :     if (*t < '0' || *t > '9') {
   52015             :       return -1;
   52016             :     } else {
   52017           0 :         count = *t++ - '0';
   52018           0 :         while (*t >= '0' && *t <= '9') {
   52019           0 :             count *= 10;
   52020           0 :             count += *t++ - '0';
   52021             :         }
   52022             :     }
   52023           0 :     *ts = t;
   52024           0 :     return count;
   52025             : }
   52026           0 : static int __Pyx_BufFmt_ExpectNumber(const char **ts) {
   52027           0 :     int number = __Pyx_BufFmt_ParseNumber(ts);
   52028           0 :     if (number == -1)
   52029           0 :         PyErr_Format(PyExc_ValueError,\
   52030           0 :                      "Does not understand character buffer dtype format string ('%c')", **ts);
   52031           0 :     return number;
   52032             : }
   52033           0 : static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) {
   52034           0 :   PyErr_Format(PyExc_ValueError,
   52035             :                "Unexpected format string character: '%c'", ch);
   52036             : }
   52037           0 : static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) {
   52038           0 :   switch (ch) {
   52039             :     case '?': return "'bool'";
   52040           0 :     case 'c': return "'char'";
   52041           0 :     case 'b': return "'signed char'";
   52042           0 :     case 'B': return "'unsigned char'";
   52043           0 :     case 'h': return "'short'";
   52044           0 :     case 'H': return "'unsigned short'";
   52045           0 :     case 'i': return "'int'";
   52046           0 :     case 'I': return "'unsigned int'";
   52047           0 :     case 'l': return "'long'";
   52048           0 :     case 'L': return "'unsigned long'";
   52049           0 :     case 'q': return "'long long'";
   52050           0 :     case 'Q': return "'unsigned long long'";
   52051           0 :     case 'f': return (is_complex ? "'complex float'" : "'float'");
   52052           0 :     case 'd': return (is_complex ? "'complex double'" : "'double'");
   52053           0 :     case 'g': return (is_complex ? "'complex long double'" : "'long double'");
   52054           0 :     case 'T': return "a struct";
   52055           0 :     case 'O': return "Python object";
   52056           0 :     case 'P': return "a pointer";
   52057           0 :     case 's': case 'p': return "a string";
   52058           0 :     case 0: return "end";
   52059           0 :     default: return "unparsable format string";
   52060             :   }
   52061             : }
   52062           0 : static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) {
   52063           0 :   switch (ch) {
   52064             :     case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
   52065           0 :     case 'h': case 'H': return 2;
   52066             :     case 'i': case 'I': case 'l': case 'L': return 4;
   52067             :     case 'q': case 'Q': return 8;
   52068           0 :     case 'f': return (is_complex ? 8 : 4);
   52069           0 :     case 'd': return (is_complex ? 16 : 8);
   52070           0 :     case 'g': {
   52071           0 :       PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g')..");
   52072           0 :       return 0;
   52073             :     }
   52074             :     case 'O': case 'P': return sizeof(void*);
   52075           0 :     default:
   52076           0 :       __Pyx_BufFmt_RaiseUnexpectedChar(ch);
   52077           0 :       return 0;
   52078             :     }
   52079             : }
   52080      529189 : static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) {
   52081      529189 :   switch (ch) {
   52082             :     case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
   52083        3907 :     case 'h': case 'H': return sizeof(short);
   52084             :     case 'i': case 'I': return sizeof(int);
   52085             :     case 'l': case 'L': return sizeof(long);
   52086             :     #ifdef HAVE_LONG_LONG
   52087             :     case 'q': case 'Q': return sizeof(PY_LONG_LONG);
   52088             :     #endif
   52089        4069 :     case 'f': return sizeof(float) * (is_complex ? 2 : 1);
   52090       11806 :     case 'd': return sizeof(double) * (is_complex ? 2 : 1);
   52091        3956 :     case 'g': return sizeof(long double) * (is_complex ? 2 : 1);
   52092             :     case 'O': case 'P': return sizeof(void*);
   52093           0 :     default: {
   52094           0 :       __Pyx_BufFmt_RaiseUnexpectedChar(ch);
   52095           0 :       return 0;
   52096             :     }
   52097             :   }
   52098             : }
   52099             : typedef struct { char c; short x; } __Pyx_st_short;
   52100             : typedef struct { char c; int x; } __Pyx_st_int;
   52101             : typedef struct { char c; long x; } __Pyx_st_long;
   52102             : typedef struct { char c; float x; } __Pyx_st_float;
   52103             : typedef struct { char c; double x; } __Pyx_st_double;
   52104             : typedef struct { char c; long double x; } __Pyx_st_longdouble;
   52105             : typedef struct { char c; void *x; } __Pyx_st_void_p;
   52106             : #ifdef HAVE_LONG_LONG
   52107             : typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong;
   52108             : #endif
   52109      529189 : static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, int is_complex) {
   52110      529189 :   CYTHON_UNUSED_VAR(is_complex);
   52111      529189 :   switch (ch) {
   52112             :     case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
   52113        3907 :     case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short);
   52114             :     case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int);
   52115             :     case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long);
   52116             : #ifdef HAVE_LONG_LONG
   52117             :     case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG);
   52118             : #endif
   52119             :     case 'f': return sizeof(__Pyx_st_float) - sizeof(float);
   52120             :     case 'd': return sizeof(__Pyx_st_double) - sizeof(double);
   52121        3956 :     case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double);
   52122             :     case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*);
   52123           0 :     default:
   52124           0 :       __Pyx_BufFmt_RaiseUnexpectedChar(ch);
   52125           0 :       return 0;
   52126             :     }
   52127             : }
   52128             : /* These are for computing the padding at the end of the struct to align
   52129             :    on the first member of the struct. This will probably the same as above,
   52130             :    but we don't have any guarantees.
   52131             :  */
   52132             : typedef struct { short x; char c; } __Pyx_pad_short;
   52133             : typedef struct { int x; char c; } __Pyx_pad_int;
   52134             : typedef struct { long x; char c; } __Pyx_pad_long;
   52135             : typedef struct { float x; char c; } __Pyx_pad_float;
   52136             : typedef struct { double x; char c; } __Pyx_pad_double;
   52137             : typedef struct { long double x; char c; } __Pyx_pad_longdouble;
   52138             : typedef struct { void *x; char c; } __Pyx_pad_void_p;
   52139             : #ifdef HAVE_LONG_LONG
   52140             : typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong;
   52141             : #endif
   52142      529189 : static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, int is_complex) {
   52143      529189 :   CYTHON_UNUSED_VAR(is_complex);
   52144      529189 :   switch (ch) {
   52145             :     case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
   52146        3907 :     case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short);
   52147             :     case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int);
   52148             :     case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long);
   52149             : #ifdef HAVE_LONG_LONG
   52150             :     case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG);
   52151             : #endif
   52152             :     case 'f': return sizeof(__Pyx_pad_float) - sizeof(float);
   52153             :     case 'd': return sizeof(__Pyx_pad_double) - sizeof(double);
   52154        3956 :     case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double);
   52155             :     case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*);
   52156           0 :     default:
   52157           0 :       __Pyx_BufFmt_RaiseUnexpectedChar(ch);
   52158           0 :       return 0;
   52159             :     }
   52160             : }
   52161      529189 : static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) {
   52162      529189 :   switch (ch) {
   52163             :     case 'c':
   52164             :         return 'H';
   52165      107089 :     case 'b': case 'h': case 'i':
   52166             :     case 'l': case 'q': case 's': case 'p':
   52167      107089 :         return 'I';
   52168       11497 :     case '?': case 'B': case 'H': case 'I': case 'L': case 'Q':
   52169       11497 :         return 'U';
   52170       19831 :     case 'f': case 'd': case 'g':
   52171       19831 :         return (is_complex ? 'C' : 'R');
   52172      390772 :     case 'O':
   52173      390772 :         return 'O';
   52174           0 :     case 'P':
   52175           0 :         return 'P';
   52176           0 :     default: {
   52177           0 :       __Pyx_BufFmt_RaiseUnexpectedChar(ch);
   52178           0 :       return 0;
   52179             :     }
   52180             :   }
   52181             : }
   52182           0 : static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) {
   52183           0 :   if (ctx->head == NULL || ctx->head->field == &ctx->root) {
   52184           0 :     const char* expected;
   52185           0 :     const char* quote;
   52186           0 :     if (ctx->head == NULL) {
   52187             :       expected = "end";
   52188             :       quote = "";
   52189             :     } else {
   52190           0 :       expected = ctx->head->field->type->name;
   52191           0 :       quote = "'";
   52192             :     }
   52193           0 :     PyErr_Format(PyExc_ValueError,
   52194             :                  "Buffer dtype mismatch, expected %s%s%s but got %s",
   52195             :                  quote, expected, quote,
   52196           0 :                  __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex));
   52197             :   } else {
   52198           0 :     __Pyx_StructField* field = ctx->head->field;
   52199           0 :     __Pyx_StructField* parent = (ctx->head - 1)->field;
   52200           0 :     PyErr_Format(PyExc_ValueError,
   52201             :                  "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'",
   52202           0 :                  field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex),
   52203           0 :                  parent->type->name, field->name);
   52204             :   }
   52205           0 : }
   52206     1058378 : static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) {
   52207     1058378 :   char group;
   52208     1058378 :   size_t size, offset, arraysize = 1;
   52209     1058378 :   if (ctx->enc_type == 0) return 0;
   52210      529189 :   if (ctx->head->field->type->arraysize[0]) {
   52211           0 :     int i, ndim = 0;
   52212           0 :     if (ctx->enc_type == 's' || ctx->enc_type == 'p') {
   52213           0 :         ctx->is_valid_array = ctx->head->field->type->ndim == 1;
   52214           0 :         ndim = 1;
   52215           0 :         if (ctx->enc_count != ctx->head->field->type->arraysize[0]) {
   52216           0 :             PyErr_Format(PyExc_ValueError,
   52217             :                          "Expected a dimension of size %zu, got %zu",
   52218             :                          ctx->head->field->type->arraysize[0], ctx->enc_count);
   52219           0 :             return -1;
   52220             :         }
   52221             :     }
   52222           0 :     if (!ctx->is_valid_array) {
   52223           0 :       PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d",
   52224             :                    ctx->head->field->type->ndim, ndim);
   52225           0 :       return -1;
   52226             :     }
   52227           0 :     for (i = 0; i < ctx->head->field->type->ndim; i++) {
   52228           0 :       arraysize *= ctx->head->field->type->arraysize[i];
   52229             :     }
   52230           0 :     ctx->is_valid_array = 0;
   52231           0 :     ctx->enc_count = 1;
   52232             :   }
   52233      529189 :   group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex);
   52234      529189 :   do {
   52235      529189 :     __Pyx_StructField* field = ctx->head->field;
   52236      529189 :     __Pyx_TypeInfo* type = field->type;
   52237      529189 :     if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') {
   52238      529189 :       size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex);
   52239             :     } else {
   52240           0 :       size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex);
   52241             :     }
   52242      529189 :     if (ctx->enc_packmode == '@') {
   52243      529189 :       size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex);
   52244      529189 :       size_t align_mod_offset;
   52245      529189 :       if (align_at == 0) return -1;
   52246      529189 :       align_mod_offset = ctx->fmt_offset % align_at;
   52247      529189 :       if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset;
   52248      529189 :       if (ctx->struct_alignment == 0)
   52249      529189 :           ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type,
   52250             :                                                                  ctx->is_complex);
   52251             :     }
   52252      529189 :     if (type->size != size || type->typegroup != group) {
   52253           0 :       if (type->typegroup == 'C' && type->fields != NULL) {
   52254           0 :         size_t parent_offset = ctx->head->parent_offset + field->offset;
   52255           0 :         ++ctx->head;
   52256           0 :         ctx->head->field = type->fields;
   52257           0 :         ctx->head->parent_offset = parent_offset;
   52258           0 :         continue;
   52259             :       }
   52260           0 :       if ((type->typegroup == 'H' || group == 'H') && type->size == size) {
   52261             :       } else {
   52262           0 :           __Pyx_BufFmt_RaiseExpected(ctx);
   52263           0 :           return -1;
   52264             :       }
   52265             :     }
   52266      529189 :     offset = ctx->head->parent_offset + field->offset;
   52267      529189 :     if (ctx->fmt_offset != offset) {
   52268           0 :       PyErr_Format(PyExc_ValueError,
   52269             :                    "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected",
   52270             :                    (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset);
   52271           0 :       return -1;
   52272             :     }
   52273      529189 :     ctx->fmt_offset += size;
   52274      529189 :     if (arraysize)
   52275      529189 :       ctx->fmt_offset += (arraysize - 1) * size;
   52276      529189 :     --ctx->enc_count;
   52277      529189 :     while (1) {
   52278      529189 :       if (field == &ctx->root) {
   52279      529189 :         ctx->head = NULL;
   52280      529189 :         if (ctx->enc_count != 0) {
   52281           0 :           __Pyx_BufFmt_RaiseExpected(ctx);
   52282           0 :           return -1;
   52283             :         }
   52284             :         break;
   52285             :       }
   52286           0 :       ctx->head->field = ++field;
   52287           0 :       if (field->type == NULL) {
   52288           0 :         --ctx->head;
   52289           0 :         field = ctx->head->field;
   52290           0 :         continue;
   52291           0 :       } else if (field->type->typegroup == 'S') {
   52292           0 :         size_t parent_offset = ctx->head->parent_offset + field->offset;
   52293           0 :         if (field->type->fields->type == NULL) continue;
   52294           0 :         field = field->type->fields;
   52295           0 :         ++ctx->head;
   52296           0 :         ctx->head->field = field;
   52297           0 :         ctx->head->parent_offset = parent_offset;
   52298           0 :         break;
   52299             :       } else {
   52300             :         break;
   52301             :       }
   52302             :     }
   52303      529189 :   } while (ctx->enc_count);
   52304      529189 :   ctx->enc_type = 0;
   52305      529189 :   ctx->is_complex = 0;
   52306      529189 :   return 0;
   52307             : }
   52308             : static int
   52309           0 : __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp)
   52310             : {
   52311           0 :     const char *ts = *tsp;
   52312           0 :     int i = 0, number, ndim;
   52313           0 :     ++ts;
   52314           0 :     if (ctx->new_count != 1) {
   52315           0 :         PyErr_SetString(PyExc_ValueError,
   52316             :                         "Cannot handle repeated arrays in format string");
   52317           0 :         return -1;
   52318             :     }
   52319           0 :     if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return -1;
   52320           0 :     ndim = ctx->head->field->type->ndim;
   52321           0 :     while (*ts && *ts != ')') {
   52322           0 :         switch (*ts) {
   52323           0 :             case ' ': case '\f': case '\r': case '\n': case '\t': case '\v':  continue;
   52324           0 :             default:  break;
   52325             :         }
   52326           0 :         number = __Pyx_BufFmt_ExpectNumber(&ts);
   52327           0 :         if (number == -1) return -1;
   52328           0 :         if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i]) {
   52329           0 :             PyErr_Format(PyExc_ValueError,
   52330             :                         "Expected a dimension of size %zu, got %d",
   52331             :                         ctx->head->field->type->arraysize[i], number);
   52332           0 :             return -1;
   52333             :         }
   52334           0 :         if (*ts != ',' && *ts != ')') {
   52335           0 :             PyErr_Format(PyExc_ValueError,
   52336             :                                 "Expected a comma in format string, got '%c'", *ts);
   52337           0 :             return -1;
   52338             :         }
   52339           0 :         if (*ts == ',') ts++;
   52340           0 :         i++;
   52341             :     }
   52342           0 :     if (i != ndim) {
   52343           0 :         PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d",
   52344           0 :                             ctx->head->field->type->ndim, i);
   52345           0 :         return -1;
   52346             :     }
   52347           0 :     if (!*ts) {
   52348           0 :         PyErr_SetString(PyExc_ValueError,
   52349             :                         "Unexpected end of format string, expected ')'");
   52350           0 :         return -1;
   52351             :     }
   52352           0 :     ctx->is_valid_array = 1;
   52353           0 :     ctx->new_count = 1;
   52354           0 :     *tsp = ++ts;
   52355           0 :     return 0;
   52356             : }
   52357      529189 : static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) {
   52358      529189 :   int got_Z = 0;
   52359     1058378 :   while (1) {
   52360     1058378 :     switch(*ts) {
   52361      529189 :       case 0:
   52362      529189 :         if (ctx->enc_type != 0 && ctx->head == NULL) {
   52363           0 :           __Pyx_BufFmt_RaiseExpected(ctx);
   52364           0 :           return NULL;
   52365             :         }
   52366      529189 :         if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
   52367      529189 :         if (ctx->head != NULL) {
   52368           0 :           __Pyx_BufFmt_RaiseExpected(ctx);
   52369           0 :           return NULL;
   52370             :         }
   52371             :         return ts;
   52372           0 :       case ' ':
   52373             :       case '\r':
   52374             :       case '\n':
   52375           0 :         ++ts;
   52376           0 :         break;
   52377             :       case '<':
   52378           0 :         if (!__Pyx_Is_Little_Endian()) {
   52379             :           PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler");
   52380             :           return NULL;
   52381             :         }
   52382           0 :         ctx->new_packmode = '=';
   52383           0 :         ++ts;
   52384           0 :         break;
   52385             :       case '>':
   52386             :       case '!':
   52387           0 :         if (__Pyx_Is_Little_Endian()) {
   52388           0 :           PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler");
   52389           0 :           return NULL;
   52390             :         }
   52391             :         ctx->new_packmode = '=';
   52392             :         ++ts;
   52393             :         break;
   52394           0 :       case '=':
   52395             :       case '@':
   52396             :       case '^':
   52397           0 :         ctx->new_packmode = *ts++;
   52398           0 :         break;
   52399           0 :       case 'T':
   52400             :         {
   52401           0 :           const char* ts_after_sub;
   52402           0 :           size_t i, struct_count = ctx->new_count;
   52403           0 :           size_t struct_alignment = ctx->struct_alignment;
   52404           0 :           ctx->new_count = 1;
   52405           0 :           ++ts;
   52406           0 :           if (*ts != '{') {
   52407           0 :             PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'");
   52408           0 :             return NULL;
   52409             :           }
   52410           0 :           if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
   52411           0 :           ctx->enc_type = 0;
   52412           0 :           ctx->enc_count = 0;
   52413           0 :           ctx->struct_alignment = 0;
   52414           0 :           ++ts;
   52415           0 :           ts_after_sub = ts;
   52416           0 :           for (i = 0; i != struct_count; ++i) {
   52417           0 :             ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts);
   52418           0 :             if (!ts_after_sub) return NULL;
   52419             :           }
   52420           0 :           ts = ts_after_sub;
   52421           0 :           if (struct_alignment) ctx->struct_alignment = struct_alignment;
   52422             :         }
   52423             :         break;
   52424           0 :       case '}':
   52425             :         {
   52426           0 :           size_t alignment = ctx->struct_alignment;
   52427           0 :           ++ts;
   52428           0 :           if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
   52429           0 :           ctx->enc_type = 0;
   52430           0 :           if (alignment && ctx->fmt_offset % alignment) {
   52431           0 :             ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment);
   52432             :           }
   52433             :         }
   52434             :         return ts;
   52435           0 :       case 'x':
   52436           0 :         if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
   52437           0 :         ctx->fmt_offset += ctx->new_count;
   52438           0 :         ctx->new_count = 1;
   52439           0 :         ctx->enc_count = 0;
   52440           0 :         ctx->enc_type = 0;
   52441           0 :         ctx->enc_packmode = ctx->new_packmode;
   52442           0 :         ++ts;
   52443           0 :         break;
   52444        6987 :       case 'Z':
   52445        6987 :         got_Z = 1;
   52446        6987 :         ++ts;
   52447        6987 :         if (*ts != 'f' && *ts != 'd' && *ts != 'g') {
   52448           0 :           __Pyx_BufFmt_RaiseUnexpectedChar('Z');
   52449           0 :           return NULL;
   52450             :         }
   52451      529189 :         CYTHON_FALLTHROUGH;
   52452             :       case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I':
   52453             :       case 'l': case 'L': case 'q': case 'Q':
   52454             :       case 'f': case 'd': case 'g':
   52455             :       case 'O': case 'p':
   52456      529189 :         if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) &&
   52457           0 :             (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) {
   52458           0 :           ctx->enc_count += ctx->new_count;
   52459           0 :           ctx->new_count = 1;
   52460           0 :           got_Z = 0;
   52461           0 :           ++ts;
   52462           0 :           break;
   52463             :         }
   52464      529189 :         CYTHON_FALLTHROUGH;
   52465             :       case 's':
   52466      529189 :         if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
   52467      529189 :         ctx->enc_count = ctx->new_count;
   52468      529189 :         ctx->enc_packmode = ctx->new_packmode;
   52469      529189 :         ctx->enc_type = *ts;
   52470      529189 :         ctx->is_complex = got_Z;
   52471      529189 :         ++ts;
   52472      529189 :         ctx->new_count = 1;
   52473      529189 :         got_Z = 0;
   52474      529189 :         break;
   52475           0 :       case ':':
   52476           0 :         ++ts;
   52477           0 :         while(*ts != ':') ++ts;
   52478           0 :         ++ts;
   52479           0 :         break;
   52480           0 :       case '(':
   52481           0 :         if (__pyx_buffmt_parse_array(ctx, &ts) < 0) return NULL;
   52482             :         break;
   52483           0 :       default:
   52484             :         {
   52485           0 :           int number = __Pyx_BufFmt_ExpectNumber(&ts);
   52486           0 :           if (number == -1) return NULL;
   52487           0 :           ctx->new_count = (size_t)number;
   52488             :         }
   52489             :     }
   52490             :   }
   52491             : }
   52492             : 
   52493             : /* BufferGetAndValidate */
   52494      129061 :   static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info) {
   52495      129061 :   if (unlikely(info->buf == NULL)) return;
   52496      129061 :   if (info->suboffsets == __Pyx_minusones) info->suboffsets = NULL;
   52497      129061 :   __Pyx_ReleaseBuffer(info);
   52498             : }
   52499           0 : static void __Pyx_ZeroBuffer(Py_buffer* buf) {
   52500           0 :   buf->buf = NULL;
   52501           0 :   buf->obj = NULL;
   52502           0 :   buf->strides = __Pyx_zeros;
   52503           0 :   buf->shape = __Pyx_zeros;
   52504           0 :   buf->suboffsets = __Pyx_minusones;
   52505             : }
   52506      129061 : static int __Pyx__GetBufferAndValidate(
   52507             :         Py_buffer* buf, PyObject* obj,  __Pyx_TypeInfo* dtype, int flags,
   52508             :         int nd, int cast, __Pyx_BufFmt_StackElem* stack)
   52509             : {
   52510      129061 :   buf->buf = NULL;
   52511      129061 :   if (unlikely(__Pyx_GetBuffer(obj, buf, flags) == -1)) {
   52512           0 :     __Pyx_ZeroBuffer(buf);
   52513           0 :     return -1;
   52514             :   }
   52515      129061 :   if (unlikely(buf->ndim != nd)) {
   52516           0 :     PyErr_Format(PyExc_ValueError,
   52517             :                  "Buffer has wrong number of dimensions (expected %d, got %d)",
   52518             :                  nd, buf->ndim);
   52519           0 :     goto fail;
   52520             :   }
   52521      129061 :   if (!cast) {
   52522      129061 :     __Pyx_BufFmt_Context ctx;
   52523      129061 :     __Pyx_BufFmt_Init(&ctx, stack, dtype);
   52524      129061 :     if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail;
   52525             :   }
   52526      129061 :   if (unlikely((size_t)buf->itemsize != dtype->size)) {
   52527           0 :     PyErr_Format(PyExc_ValueError,
   52528             :       "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "d byte%s) does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "d byte%s)",
   52529             :       buf->itemsize, (buf->itemsize > 1) ? "s" : "",
   52530             :       dtype->name, (Py_ssize_t)dtype->size, (dtype->size > 1) ? "s" : "");
   52531           0 :     goto fail;
   52532             :   }
   52533      129061 :   if (buf->suboffsets == NULL) buf->suboffsets = __Pyx_minusones;
   52534             :   return 0;
   52535           0 : fail:;
   52536           0 :   __Pyx_SafeReleaseBuffer(buf);
   52537           0 :   return -1;
   52538             : }
   52539             : 
   52540             : /* UnicodeAsUCS4 */
   52541      112491 :   static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject* x) {
   52542      112491 :    Py_ssize_t length;
   52543             :    #if CYTHON_PEP393_ENABLED
   52544      112491 :    length = PyUnicode_GET_LENGTH(x);
   52545      112491 :    if (likely(length == 1)) {
   52546      112491 :        return PyUnicode_READ_CHAR(x, 0);
   52547             :    }
   52548             :    #else
   52549             :    length = PyUnicode_GET_SIZE(x);
   52550             :    if (likely(length == 1)) {
   52551             :        return PyUnicode_AS_UNICODE(x)[0];
   52552             :    }
   52553             :    #if Py_UNICODE_SIZE == 2
   52554             :    else if (PyUnicode_GET_SIZE(x) == 2) {
   52555             :        Py_UCS4 high_val = PyUnicode_AS_UNICODE(x)[0];
   52556             :        if (high_val >= 0xD800 && high_val <= 0xDBFF) {
   52557             :            Py_UCS4 low_val = PyUnicode_AS_UNICODE(x)[1];
   52558             :            if (low_val >= 0xDC00 && low_val <= 0xDFFF) {
   52559             :                return 0x10000 + (((high_val & ((1<<10)-1)) << 10) | (low_val & ((1<<10)-1)));
   52560             :            }
   52561             :        }
   52562             :    }
   52563             :    #endif
   52564             :    #endif
   52565           0 :    PyErr_Format(PyExc_ValueError,
   52566             :                 "only single character unicode strings can be converted to Py_UCS4, "
   52567             :                 "got length %" CYTHON_FORMAT_SSIZE_T "d", length);
   52568           0 :    return (Py_UCS4)-1;
   52569             : }
   52570             : 
   52571             : /* object_ord */
   52572           0 :   static long __Pyx__PyObject_Ord(PyObject* c) {
   52573           0 :     Py_ssize_t size;
   52574           0 :     if (PyBytes_Check(c)) {
   52575           0 :         size = PyBytes_GET_SIZE(c);
   52576           0 :         if (likely(size == 1)) {
   52577           0 :             return (unsigned char) PyBytes_AS_STRING(c)[0];
   52578             :         }
   52579             : #if PY_MAJOR_VERSION < 3
   52580             :     } else if (PyUnicode_Check(c)) {
   52581             :         return (long)__Pyx_PyUnicode_AsPy_UCS4(c);
   52582             : #endif
   52583             : #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
   52584           0 :     } else if (PyByteArray_Check(c)) {
   52585           0 :         size = PyByteArray_GET_SIZE(c);
   52586           0 :         if (likely(size == 1)) {
   52587           0 :             return (unsigned char) PyByteArray_AS_STRING(c)[0];
   52588             :         }
   52589             : #endif
   52590             :     } else {
   52591           0 :         __Pyx_TypeName c_type_name = __Pyx_PyType_GetName(Py_TYPE(c));
   52592           0 :         PyErr_Format(PyExc_TypeError,
   52593             :             "ord() expected string of length 1, but " __Pyx_FMT_TYPENAME " found",
   52594             :             c_type_name);
   52595           0 :         __Pyx_DECREF_TypeName(c_type_name);
   52596           0 :         return (long)(Py_UCS4)-1;
   52597             :     }
   52598           0 :     PyErr_Format(PyExc_TypeError,
   52599             :         "ord() expected a character, but string of length %zd found", size);
   52600           0 :     return (long)(Py_UCS4)-1;
   52601             : }
   52602             : 
   52603             : /* memoryview_get_from_buffer */
   52604             :   #if !CYTHON_COMPILING_IN_LIMITED_API || CYTHON_LIMITED_API >= 0x030b0000
   52605             : #else
   52606             : static Py_ssize_t __Pyx_PyMemoryView_Get_itemsize(PyObject *obj) {
   52607             :     Py_ssize_t result;
   52608             :     PyObject *attr = PyObject_GetAttr(obj, __pyx_n_s_itemsize);
   52609             :     if (!attr) {
   52610             :         goto bad;
   52611             :     }
   52612             :     result = PyLong_AsSsize_t(attr);
   52613             :     Py_DECREF(attr);
   52614             :     return result;
   52615             :     bad:
   52616             :     Py_XDECREF(attr);
   52617             :     return -1;
   52618             : }
   52619             : #endif
   52620             : 
   52621             : /* memoryview_get_from_buffer */
   52622             :   #if !CYTHON_COMPILING_IN_LIMITED_API || CYTHON_LIMITED_API >= 0x030b0000
   52623             : #else
   52624             : static int __Pyx_PyMemoryView_Get_ndim(PyObject *obj) {
   52625             :     int result;
   52626             :     PyObject *attr = PyObject_GetAttr(obj, __pyx_n_s_ndim);
   52627             :     if (!attr) {
   52628             :         goto bad;
   52629             :     }
   52630             :     result = PyLong_AsLong(attr);
   52631             :     Py_DECREF(attr);
   52632             :     return result;
   52633             :     bad:
   52634             :     Py_XDECREF(attr);
   52635             :     return -1;
   52636             : }
   52637             : #endif
   52638             : 
   52639             : /* IterFinish */
   52640           0 :   static CYTHON_INLINE int __Pyx_IterFinish(void) {
   52641           0 :     PyObject* exc_type;
   52642           0 :     __Pyx_PyThreadState_declare
   52643           0 :     __Pyx_PyThreadState_assign
   52644           0 :     exc_type = __Pyx_PyErr_CurrentExceptionType();
   52645           0 :     if (unlikely(exc_type)) {
   52646           0 :         if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))
   52647             :             return -1;
   52648           0 :         __Pyx_PyErr_Clear();
   52649           0 :         return 0;
   52650             :     }
   52651             :     return 0;
   52652             : }
   52653             : 
   52654             : /* PyObjectCallNoArg */
   52655           0 :   static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
   52656           0 :     PyObject *arg[2] = {NULL, NULL};
   52657           0 :     return __Pyx_PyObject_FastCall(func, arg + 1, 0 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
   52658             : }
   52659             : 
   52660             : /* PyObjectGetMethod */
   52661           0 :   static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
   52662           0 :     PyObject *attr;
   52663             : #if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP
   52664           0 :     __Pyx_TypeName type_name;
   52665           0 :     PyTypeObject *tp = Py_TYPE(obj);
   52666           0 :     PyObject *descr;
   52667           0 :     descrgetfunc f = NULL;
   52668           0 :     PyObject **dictptr, *dict;
   52669           0 :     int meth_found = 0;
   52670           0 :     assert (*method == NULL);
   52671           0 :     if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
   52672           0 :         attr = __Pyx_PyObject_GetAttrStr(obj, name);
   52673           0 :         goto try_unpack;
   52674             :     }
   52675           0 :     if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
   52676             :         return 0;
   52677             :     }
   52678           0 :     descr = _PyType_Lookup(tp, name);
   52679           0 :     if (likely(descr != NULL)) {
   52680           0 :         Py_INCREF(descr);
   52681             : #if defined(Py_TPFLAGS_METHOD_DESCRIPTOR) && Py_TPFLAGS_METHOD_DESCRIPTOR
   52682           0 :         if (__Pyx_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
   52683             : #elif PY_MAJOR_VERSION >= 3
   52684             :         #ifdef __Pyx_CyFunction_USED
   52685             :         if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
   52686             :         #else
   52687             :         if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type)))
   52688             :         #endif
   52689             : #else
   52690             :         #ifdef __Pyx_CyFunction_USED
   52691             :         if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr)))
   52692             :         #else
   52693             :         if (likely(PyFunction_Check(descr)))
   52694             :         #endif
   52695             : #endif
   52696             :         {
   52697             :             meth_found = 1;
   52698             :         } else {
   52699           0 :             f = Py_TYPE(descr)->tp_descr_get;
   52700           0 :             if (f != NULL && PyDescr_IsData(descr)) {
   52701           0 :                 attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
   52702           0 :                 Py_DECREF(descr);
   52703           0 :                 goto try_unpack;
   52704             :             }
   52705             :         }
   52706             :     }
   52707           0 :     dictptr = _PyObject_GetDictPtr(obj);
   52708           0 :     if (dictptr != NULL && (dict = *dictptr) != NULL) {
   52709           0 :         Py_INCREF(dict);
   52710           0 :         attr = __Pyx_PyDict_GetItemStr(dict, name);
   52711           0 :         if (attr != NULL) {
   52712           0 :             Py_INCREF(attr);
   52713           0 :             Py_DECREF(dict);
   52714           0 :             Py_XDECREF(descr);
   52715           0 :             goto try_unpack;
   52716             :         }
   52717           0 :         Py_DECREF(dict);
   52718             :     }
   52719           0 :     if (meth_found) {
   52720           0 :         *method = descr;
   52721           0 :         return 1;
   52722             :     }
   52723           0 :     if (f != NULL) {
   52724           0 :         attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
   52725           0 :         Py_DECREF(descr);
   52726           0 :         goto try_unpack;
   52727             :     }
   52728           0 :     if (likely(descr != NULL)) {
   52729           0 :         *method = descr;
   52730           0 :         return 0;
   52731             :     }
   52732           0 :     type_name = __Pyx_PyType_GetName(tp);
   52733           0 :     PyErr_Format(PyExc_AttributeError,
   52734             : #if PY_MAJOR_VERSION >= 3
   52735             :                  "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'",
   52736             :                  type_name, name);
   52737             : #else
   52738             :                  "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'",
   52739             :                  type_name, PyString_AS_STRING(name));
   52740             : #endif
   52741           0 :     __Pyx_DECREF_TypeName(type_name);
   52742           0 :     return 0;
   52743             : #else
   52744             :     attr = __Pyx_PyObject_GetAttrStr(obj, name);
   52745             :     goto try_unpack;
   52746             : #endif
   52747           0 : try_unpack:
   52748             : #if CYTHON_UNPACK_METHODS
   52749           0 :     if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
   52750           0 :         PyObject *function = PyMethod_GET_FUNCTION(attr);
   52751           0 :         Py_INCREF(function);
   52752           0 :         Py_DECREF(attr);
   52753           0 :         *method = function;
   52754           0 :         return 1;
   52755             :     }
   52756             : #endif
   52757           0 :     *method = attr;
   52758           0 :     return 0;
   52759             : }
   52760             : 
   52761             : /* PyObjectCallMethod0 */
   52762           0 :   static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
   52763           0 :     PyObject *method = NULL, *result = NULL;
   52764           0 :     int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
   52765           0 :     if (likely(is_method)) {
   52766           0 :         result = __Pyx_PyObject_CallOneArg(method, obj);
   52767           0 :         Py_DECREF(method);
   52768           0 :         return result;
   52769             :     }
   52770           0 :     if (unlikely(!method)) goto bad;
   52771           0 :     result = __Pyx_PyObject_CallNoArg(method);
   52772           0 :     Py_DECREF(method);
   52773             : bad:
   52774             :     return result;
   52775             : }
   52776             : 
   52777             : /* UnpackItemEndCheck */
   52778           0 :   static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
   52779           0 :     if (unlikely(retval)) {
   52780           0 :         Py_DECREF(retval);
   52781           0 :         __Pyx_RaiseTooManyValuesError(expected);
   52782           0 :         return -1;
   52783             :     }
   52784           0 :     return __Pyx_IterFinish();
   52785             : }
   52786             : 
   52787             : /* UnpackTupleError */
   52788           0 :   static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) {
   52789           0 :     if (t == Py_None) {
   52790           0 :       __Pyx_RaiseNoneNotIterableError();
   52791           0 :     } else if (PyTuple_GET_SIZE(t) < index) {
   52792           0 :       __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t));
   52793             :     } else {
   52794           0 :       __Pyx_RaiseTooManyValuesError(index);
   52795             :     }
   52796           0 : }
   52797             : 
   52798             : /* UnpackTuple2 */
   52799           0 :   static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
   52800             :         PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) {
   52801           0 :     PyObject *value1 = NULL, *value2 = NULL;
   52802             : #if CYTHON_COMPILING_IN_PYPY
   52803             :     value1 = PySequence_ITEM(tuple, 0);  if (unlikely(!value1)) goto bad;
   52804             :     value2 = PySequence_ITEM(tuple, 1);  if (unlikely(!value2)) goto bad;
   52805             : #else
   52806           0 :     value1 = PyTuple_GET_ITEM(tuple, 0);  Py_INCREF(value1);
   52807           0 :     value2 = PyTuple_GET_ITEM(tuple, 1);  Py_INCREF(value2);
   52808             : #endif
   52809           0 :     if (decref_tuple) {
   52810           0 :         Py_DECREF(tuple);
   52811             :     }
   52812           0 :     *pvalue1 = value1;
   52813           0 :     *pvalue2 = value2;
   52814           0 :     return 0;
   52815             : #if CYTHON_COMPILING_IN_PYPY
   52816             : bad:
   52817             :     Py_XDECREF(value1);
   52818             :     Py_XDECREF(value2);
   52819             :     if (decref_tuple) { Py_XDECREF(tuple); }
   52820             :     return -1;
   52821             : #endif
   52822             : }
   52823           0 : static int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2,
   52824             :                                        int has_known_size, int decref_tuple) {
   52825           0 :     Py_ssize_t index;
   52826           0 :     PyObject *value1 = NULL, *value2 = NULL, *iter = NULL;
   52827           0 :     iternextfunc iternext;
   52828           0 :     iter = PyObject_GetIter(tuple);
   52829           0 :     if (unlikely(!iter)) goto bad;
   52830           0 :     if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; }
   52831           0 :     iternext = __Pyx_PyObject_GetIterNextFunc(iter);
   52832           0 :     value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; }
   52833           0 :     value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; }
   52834           0 :     if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad;
   52835           0 :     Py_DECREF(iter);
   52836           0 :     *pvalue1 = value1;
   52837           0 :     *pvalue2 = value2;
   52838           0 :     return 0;
   52839           0 : unpacking_failed:
   52840           0 :     if (!has_known_size && __Pyx_IterFinish() == 0)
   52841           0 :         __Pyx_RaiseNeedMoreValuesError(index);
   52842           0 : bad:
   52843           0 :     Py_XDECREF(iter);
   52844           0 :     Py_XDECREF(value1);
   52845           0 :     Py_XDECREF(value2);
   52846           0 :     if (decref_tuple) { Py_XDECREF(tuple); }
   52847             :     return -1;
   52848             : }
   52849             : 
   52850             : /* dict_iter */
   52851             :   #if CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
   52852             : #include <string.h>
   52853             : #endif
   52854         201 : static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name,
   52855             :                                                    Py_ssize_t* p_orig_length, int* p_source_is_dict) {
   52856         195 :     is_dict = is_dict || likely(PyDict_CheckExact(iterable));
   52857         201 :     *p_source_is_dict = is_dict;
   52858         201 :     if (is_dict) {
   52859             : #if !CYTHON_COMPILING_IN_PYPY
   52860         201 :         *p_orig_length = PyDict_Size(iterable);
   52861         201 :         Py_INCREF(iterable);
   52862         201 :         return iterable;
   52863             : #elif PY_MAJOR_VERSION >= 3
   52864             :         static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL;
   52865             :         PyObject **pp = NULL;
   52866             :         if (method_name) {
   52867             :             const char *name = PyUnicode_AsUTF8(method_name);
   52868             :             if (strcmp(name, "iteritems") == 0) pp = &py_items;
   52869             :             else if (strcmp(name, "iterkeys") == 0) pp = &py_keys;
   52870             :             else if (strcmp(name, "itervalues") == 0) pp = &py_values;
   52871             :             if (pp) {
   52872             :                 if (!*pp) {
   52873             :                     *pp = PyUnicode_FromString(name + 4);
   52874             :                     if (!*pp)
   52875             :                         return NULL;
   52876             :                 }
   52877             :                 method_name = *pp;
   52878             :             }
   52879             :         }
   52880             : #endif
   52881             :     }
   52882           0 :     *p_orig_length = 0;
   52883           0 :     if (method_name) {
   52884           0 :         PyObject* iter;
   52885           0 :         iterable = __Pyx_PyObject_CallMethod0(iterable, method_name);
   52886           0 :         if (!iterable)
   52887             :             return NULL;
   52888             : #if !CYTHON_COMPILING_IN_PYPY
   52889           0 :         if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable))
   52890             :             return iterable;
   52891             : #endif
   52892           0 :         iter = PyObject_GetIter(iterable);
   52893           0 :         Py_DECREF(iterable);
   52894           0 :         return iter;
   52895             :     }
   52896           0 :     return PyObject_GetIter(iterable);
   52897             : }
   52898        5895 : static CYTHON_INLINE int __Pyx_dict_iter_next(
   52899             :         PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos,
   52900             :         PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) {
   52901        5895 :     PyObject* next_item;
   52902             : #if !CYTHON_COMPILING_IN_PYPY
   52903        5895 :     if (source_is_dict) {
   52904        5895 :         PyObject *key, *value;
   52905        5895 :         if (unlikely(orig_length != PyDict_Size(iter_obj))) {
   52906           0 :             PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration");
   52907           0 :             return -1;
   52908             :         }
   52909        5895 :         if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) {
   52910             :             return 0;
   52911             :         }
   52912        5694 :         if (pitem) {
   52913           0 :             PyObject* tuple = PyTuple_New(2);
   52914           0 :             if (unlikely(!tuple)) {
   52915             :                 return -1;
   52916             :             }
   52917           0 :             Py_INCREF(key);
   52918           0 :             Py_INCREF(value);
   52919           0 :             PyTuple_SET_ITEM(tuple, 0, key);
   52920           0 :             PyTuple_SET_ITEM(tuple, 1, value);
   52921           0 :             *pitem = tuple;
   52922             :         } else {
   52923        5694 :             if (pkey) {
   52924        5694 :                 Py_INCREF(key);
   52925        5694 :                 *pkey = key;
   52926             :             }
   52927        5694 :             if (pvalue) {
   52928        5682 :                 Py_INCREF(value);
   52929        5682 :                 *pvalue = value;
   52930             :             }
   52931             :         }
   52932        5694 :         return 1;
   52933           0 :     } else if (PyTuple_CheckExact(iter_obj)) {
   52934           0 :         Py_ssize_t pos = *ppos;
   52935           0 :         if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0;
   52936           0 :         *ppos = pos + 1;
   52937           0 :         next_item = PyTuple_GET_ITEM(iter_obj, pos);
   52938           0 :         Py_INCREF(next_item);
   52939           0 :     } else if (PyList_CheckExact(iter_obj)) {
   52940           0 :         Py_ssize_t pos = *ppos;
   52941           0 :         if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0;
   52942           0 :         *ppos = pos + 1;
   52943           0 :         next_item = PyList_GET_ITEM(iter_obj, pos);
   52944           0 :         Py_INCREF(next_item);
   52945             :     } else
   52946             : #endif
   52947             :     {
   52948           0 :         next_item = PyIter_Next(iter_obj);
   52949           0 :         if (unlikely(!next_item)) {
   52950           0 :             return __Pyx_IterFinish();
   52951             :         }
   52952             :     }
   52953           0 :     if (pitem) {
   52954           0 :         *pitem = next_item;
   52955           0 :     } else if (pkey && pvalue) {
   52956           0 :         if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1))
   52957           0 :             return -1;
   52958           0 :     } else if (pkey) {
   52959           0 :         *pkey = next_item;
   52960             :     } else {
   52961           0 :         *pvalue = next_item;
   52962             :     }
   52963             :     return 1;
   52964             : }
   52965             : 
   52966             : /* UnpackUnboundCMethod */
   52967           0 :   static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *args, PyObject *kwargs) {
   52968           0 :     PyObject *result;
   52969           0 :     PyObject *selfless_args = PyTuple_GetSlice(args, 1, PyTuple_Size(args));
   52970           0 :     if (unlikely(!selfless_args)) return NULL;
   52971           0 :     result = PyObject_Call(method, selfless_args, kwargs);
   52972           0 :     Py_DECREF(selfless_args);
   52973             :     return result;
   52974             : }
   52975             : static PyMethodDef __Pyx_UnboundCMethod_Def = {
   52976             :      "CythonUnboundCMethod",
   52977             :      __PYX_REINTERPRET_FUNCION(PyCFunction, __Pyx_SelflessCall),
   52978             :      METH_VARARGS | METH_KEYWORDS,
   52979             :      NULL
   52980             : };
   52981           0 : static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
   52982           0 :     PyObject *method;
   52983           0 :     method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
   52984           0 :     if (unlikely(!method))
   52985             :         return -1;
   52986           0 :     target->method = method;
   52987             : #if CYTHON_COMPILING_IN_CPYTHON
   52988             :     #if PY_MAJOR_VERSION >= 3
   52989           0 :     if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
   52990             :     #else
   52991             :     if (likely(!__Pyx_CyOrPyCFunction_Check(method)))
   52992             :     #endif
   52993             :     {
   52994           0 :         PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
   52995           0 :         target->func = descr->d_method->ml_meth;
   52996           0 :         target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS);
   52997             :     } else
   52998             : #endif
   52999             : #if CYTHON_COMPILING_IN_PYPY
   53000             : #else
   53001           0 :     if (PyCFunction_Check(method))
   53002             : #endif
   53003             :     {
   53004           0 :         PyObject *self;
   53005           0 :         int self_found;
   53006             : #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
   53007             :         self = PyObject_GetAttrString(method, "__self__");
   53008             :         if (!self) {
   53009             :             PyErr_Clear();
   53010             :         }
   53011             : #else
   53012           0 :         self = PyCFunction_GET_SELF(method);
   53013             : #endif
   53014           0 :         self_found = (self && self != Py_None);
   53015             : #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
   53016             :         Py_XDECREF(self);
   53017             : #endif
   53018           0 :         if (self_found) {
   53019           0 :             PyObject *unbound_method = PyCFunction_New(&__Pyx_UnboundCMethod_Def, method);
   53020           0 :             if (unlikely(!unbound_method)) return -1;
   53021           0 :             Py_DECREF(method);
   53022           0 :             target->method = unbound_method;
   53023             :         }
   53024             :     }
   53025             :     return 0;
   53026             : }
   53027             : 
   53028             : /* CallUnboundCMethod0 */
   53029           0 :   static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
   53030           0 :     PyObject *args, *result = NULL;
   53031           0 :     if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
   53032             : #if CYTHON_ASSUME_SAFE_MACROS
   53033           0 :     args = PyTuple_New(1);
   53034           0 :     if (unlikely(!args)) goto bad;
   53035           0 :     Py_INCREF(self);
   53036           0 :     PyTuple_SET_ITEM(args, 0, self);
   53037             : #else
   53038             :     args = PyTuple_Pack(1, self);
   53039             :     if (unlikely(!args)) goto bad;
   53040             : #endif
   53041           0 :     result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
   53042           0 :     Py_DECREF(args);
   53043             : bad:
   53044             :     return result;
   53045             : }
   53046             : 
   53047             : /* py_dict_values */
   53048           0 :   static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {
   53049           0 :     if (PY_MAJOR_VERSION >= 3)
   53050           0 :         return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_values, d);
   53051             :     else
   53052             :         return PyDict_Values(d);
   53053             : }
   53054             : 
   53055             : /* CallUnboundCMethod1 */
   53056             :   #if CYTHON_COMPILING_IN_CPYTHON
   53057             : static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg) {
   53058             :     if (likely(cfunc->func)) {
   53059             :         int flag = cfunc->flag;
   53060             :         if (flag == METH_O) {
   53061             :             return (*(cfunc->func))(self, arg);
   53062             :         } else if ((PY_VERSION_HEX >= 0x030600B1) && flag == METH_FASTCALL) {
   53063             :             #if PY_VERSION_HEX >= 0x030700A0
   53064             :                 return (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)cfunc->func)(self, &arg, 1);
   53065             :             #else
   53066             :                 return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL);
   53067             :             #endif
   53068             :         } else if ((PY_VERSION_HEX >= 0x030700A0) && flag == (METH_FASTCALL | METH_KEYWORDS)) {
   53069             :             return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL);
   53070             :         }
   53071             :     }
   53072             :     return __Pyx__CallUnboundCMethod1(cfunc, self, arg);
   53073             : }
   53074             : #endif
   53075             : static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg){
   53076             :     PyObject *args, *result = NULL;
   53077             :     if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
   53078             : #if CYTHON_COMPILING_IN_CPYTHON
   53079             :     if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
   53080             :         args = PyTuple_New(1);
   53081             :         if (unlikely(!args)) goto bad;
   53082             :         Py_INCREF(arg);
   53083             :         PyTuple_SET_ITEM(args, 0, arg);
   53084             :         if (cfunc->flag & METH_KEYWORDS)
   53085             :             result = (*(PyCFunctionWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, NULL);
   53086             :         else
   53087             :             result = (*cfunc->func)(self, args);
   53088             :     } else {
   53089             :         args = PyTuple_New(2);
   53090             :         if (unlikely(!args)) goto bad;
   53091             :         Py_INCREF(self);
   53092             :         PyTuple_SET_ITEM(args, 0, self);
   53093             :         Py_INCREF(arg);
   53094             :         PyTuple_SET_ITEM(args, 1, arg);
   53095             :         result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
   53096             :     }
   53097             : #else
   53098             :     args = PyTuple_Pack(2, self, arg);
   53099             :     if (unlikely(!args)) goto bad;
   53100             :     result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
   53101             : #endif
   53102             : bad:
   53103             :     Py_XDECREF(args);
   53104             :     return result;
   53105             : }
   53106             : 
   53107             : /* CallUnboundCMethod2 */
   53108             :   #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030600B1
   53109             : static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2) {
   53110             :     if (likely(cfunc->func)) {
   53111             :         PyObject *args[2] = {arg1, arg2};
   53112             :         if (cfunc->flag == METH_FASTCALL) {
   53113             :             #if PY_VERSION_HEX >= 0x030700A0
   53114             :             return (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)cfunc->func)(self, args, 2);
   53115             :             #else
   53116             :             return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, 2, NULL);
   53117             :             #endif
   53118             :         }
   53119             :         #if PY_VERSION_HEX >= 0x030700A0
   53120             :         if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
   53121             :             return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, 2, NULL);
   53122             :         #endif
   53123             :     }
   53124             :     return __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2);
   53125             : }
   53126             : #endif
   53127             : static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2){
   53128             :     PyObject *args, *result = NULL;
   53129             :     if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
   53130             : #if CYTHON_COMPILING_IN_CPYTHON
   53131             :     if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
   53132             :         args = PyTuple_New(2);
   53133             :         if (unlikely(!args)) goto bad;
   53134             :         Py_INCREF(arg1);
   53135             :         PyTuple_SET_ITEM(args, 0, arg1);
   53136             :         Py_INCREF(arg2);
   53137             :         PyTuple_SET_ITEM(args, 1, arg2);
   53138             :         if (cfunc->flag & METH_KEYWORDS)
   53139             :             result = (*(PyCFunctionWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, NULL);
   53140             :         else
   53141             :             result = (*cfunc->func)(self, args);
   53142             :     } else {
   53143             :         args = PyTuple_New(3);
   53144             :         if (unlikely(!args)) goto bad;
   53145             :         Py_INCREF(self);
   53146             :         PyTuple_SET_ITEM(args, 0, self);
   53147             :         Py_INCREF(arg1);
   53148             :         PyTuple_SET_ITEM(args, 1, arg1);
   53149             :         Py_INCREF(arg2);
   53150             :         PyTuple_SET_ITEM(args, 2, arg2);
   53151             :         result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
   53152             :     }
   53153             : #else
   53154             :     args = PyTuple_Pack(3, self, arg1, arg2);
   53155             :     if (unlikely(!args)) goto bad;
   53156             :     result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
   53157             : #endif
   53158             : bad:
   53159             :     Py_XDECREF(args);
   53160             :     return result;
   53161             : }
   53162             : 
   53163             : /* dict_getitem_default */
   53164      112491 :   static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value) {
   53165      112491 :     PyObject* value;
   53166             : #if PY_MAJOR_VERSION >= 3 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000)
   53167      112491 :     value = PyDict_GetItemWithError(d, key);
   53168      112491 :     if (unlikely(!value)) {
   53169           0 :         if (unlikely(PyErr_Occurred()))
   53170             :             return NULL;
   53171             :         value = default_value;
   53172             :     }
   53173      112491 :     Py_INCREF(value);
   53174             :     if ((1));
   53175             : #else
   53176             :     if (PyString_CheckExact(key) || PyUnicode_CheckExact(key) || PyInt_CheckExact(key)) {
   53177             :         value = PyDict_GetItem(d, key);
   53178             :         if (unlikely(!value)) {
   53179             :             value = default_value;
   53180             :         }
   53181             :         Py_INCREF(value);
   53182             :     }
   53183             : #endif
   53184             :     else {
   53185             :         if (default_value == Py_None)
   53186             :             value = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyDict_Type_get, d, key);
   53187             :         else
   53188             :             value = __Pyx_CallUnboundCMethod2(&__pyx_umethod_PyDict_Type_get, d, key, default_value);
   53189             :     }
   53190             :     return value;
   53191             : }
   53192             : 
   53193             : /* ModInt[npy_intp] */
   53194       60449 :   static CYTHON_INLINE npy_intp __Pyx_mod_npy_intp(npy_intp a, npy_intp b) {
   53195       60449 :     npy_intp r = a % b;
   53196       60449 :     r += ((r != 0) & ((r ^ b) < 0)) * b;
   53197       60449 :     return r;
   53198             : }
   53199             : 
   53200             : /* DivInt[npy_intp] */
   53201       41983 :   static CYTHON_INLINE npy_intp __Pyx_div_npy_intp(npy_intp a, npy_intp b) {
   53202       41983 :     npy_intp q = a / b;
   53203       41983 :     npy_intp r = a - q*b;
   53204       41983 :     q -= ((r != 0) & ((r ^ b) < 0));
   53205       41983 :     return q;
   53206             : }
   53207             : 
   53208             : /* PyObject_GenericGetAttrNoDict */
   53209             :   #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
   53210             : static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) {
   53211             :     __Pyx_TypeName type_name = __Pyx_PyType_GetName(tp);
   53212             :     PyErr_Format(PyExc_AttributeError,
   53213             : #if PY_MAJOR_VERSION >= 3
   53214             :                  "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'",
   53215             :                  type_name, attr_name);
   53216             : #else
   53217             :                  "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'",
   53218             :                  type_name, PyString_AS_STRING(attr_name));
   53219             : #endif
   53220             :     __Pyx_DECREF_TypeName(type_name);
   53221             :     return NULL;
   53222             : }
   53223             : static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) {
   53224             :     PyObject *descr;
   53225             :     PyTypeObject *tp = Py_TYPE(obj);
   53226             :     if (unlikely(!PyString_Check(attr_name))) {
   53227             :         return PyObject_GenericGetAttr(obj, attr_name);
   53228             :     }
   53229             :     assert(!tp->tp_dictoffset);
   53230             :     descr = _PyType_Lookup(tp, attr_name);
   53231             :     if (unlikely(!descr)) {
   53232             :         return __Pyx_RaiseGenericGetAttributeError(tp, attr_name);
   53233             :     }
   53234             :     Py_INCREF(descr);
   53235             :     #if PY_MAJOR_VERSION < 3
   53236             :     if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS)))
   53237             :     #endif
   53238             :     {
   53239             :         descrgetfunc f = Py_TYPE(descr)->tp_descr_get;
   53240             :         if (unlikely(f)) {
   53241             :             PyObject *res = f(descr, obj, (PyObject *)tp);
   53242             :             Py_DECREF(descr);
   53243             :             return res;
   53244             :         }
   53245             :     }
   53246             :     return descr;
   53247             : }
   53248             : #endif
   53249             : 
   53250             : /* PyObject_GenericGetAttr */
   53251             :   #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
   53252             : static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) {
   53253             :     if (unlikely(Py_TYPE(obj)->tp_dictoffset)) {
   53254             :         return PyObject_GenericGetAttr(obj, attr_name);
   53255             :     }
   53256             :     return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name);
   53257             : }
   53258             : #endif
   53259             : 
   53260             : /* FixUpExtensionType */
   53261             :   #if CYTHON_USE_TYPE_SPECS
   53262             : static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) {
   53263             : #if PY_VERSION_HEX > 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
   53264             :     CYTHON_UNUSED_VAR(spec);
   53265             :     CYTHON_UNUSED_VAR(type);
   53266             : #else
   53267             :     const PyType_Slot *slot = spec->slots;
   53268             :     while (slot && slot->slot && slot->slot != Py_tp_members)
   53269             :         slot++;
   53270             :     if (slot && slot->slot == Py_tp_members) {
   53271             :         int changed = 0;
   53272             : #if !(PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON)
   53273             :         const
   53274             : #endif
   53275             :             PyMemberDef *memb = (PyMemberDef*) slot->pfunc;
   53276             :         while (memb && memb->name) {
   53277             :             if (memb->name[0] == '_' && memb->name[1] == '_') {
   53278             : #if PY_VERSION_HEX < 0x030900b1
   53279             :                 if (strcmp(memb->name, "__weaklistoffset__") == 0) {
   53280             :                     assert(memb->type == T_PYSSIZET);
   53281             :                     assert(memb->flags == READONLY);
   53282             :                     type->tp_weaklistoffset = memb->offset;
   53283             :                     changed = 1;
   53284             :                 }
   53285             :                 else if (strcmp(memb->name, "__dictoffset__") == 0) {
   53286             :                     assert(memb->type == T_PYSSIZET);
   53287             :                     assert(memb->flags == READONLY);
   53288             :                     type->tp_dictoffset = memb->offset;
   53289             :                     changed = 1;
   53290             :                 }
   53291             : #if CYTHON_METH_FASTCALL
   53292             :                 else if (strcmp(memb->name, "__vectorcalloffset__") == 0) {
   53293             :                     assert(memb->type == T_PYSSIZET);
   53294             :                     assert(memb->flags == READONLY);
   53295             : #if PY_VERSION_HEX >= 0x030800b4
   53296             :                     type->tp_vectorcall_offset = memb->offset;
   53297             : #else
   53298             :                     type->tp_print = (printfunc) memb->offset;
   53299             : #endif
   53300             :                     changed = 1;
   53301             :                 }
   53302             : #endif
   53303             : #else
   53304             :                 if ((0));
   53305             : #endif
   53306             : #if PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON
   53307             :                 else if (strcmp(memb->name, "__module__") == 0) {
   53308             :                     PyObject *descr;
   53309             :                     assert(memb->type == T_OBJECT);
   53310             :                     assert(memb->flags == 0 || memb->flags == READONLY);
   53311             :                     descr = PyDescr_NewMember(type, memb);
   53312             :                     if (unlikely(!descr))
   53313             :                         return -1;
   53314             :                     if (unlikely(PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr) < 0)) {
   53315             :                         Py_DECREF(descr);
   53316             :                         return -1;
   53317             :                     }
   53318             :                     Py_DECREF(descr);
   53319             :                     changed = 1;
   53320             :                 }
   53321             : #endif
   53322             :             }
   53323             :             memb++;
   53324             :         }
   53325             :         if (changed)
   53326             :             PyType_Modified(type);
   53327             :     }
   53328             : #endif
   53329             :     return 0;
   53330             : }
   53331             : #endif
   53332             : 
   53333             : /* ValidateBasesTuple */
   53334             :   #if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
   53335           0 : static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases) {
   53336           0 :     Py_ssize_t i, n;
   53337             : #if CYTHON_ASSUME_SAFE_MACROS
   53338           0 :     n = PyTuple_GET_SIZE(bases);
   53339             : #else
   53340             :     n = PyTuple_Size(bases);
   53341             :     if (n < 0) return -1;
   53342             : #endif
   53343           0 :     for (i = 1; i < n; i++)
   53344             :     {
   53345             : #if CYTHON_AVOID_BORROWED_REFS
   53346             :         PyObject *b0 = PySequence_GetItem(bases, i);
   53347             :         if (!b0) return -1;
   53348             : #elif CYTHON_ASSUME_SAFE_MACROS
   53349           0 :         PyObject *b0 = PyTuple_GET_ITEM(bases, i);
   53350             : #else
   53351             :         PyObject *b0 = PyTuple_GetItem(bases, i);
   53352             :         if (!b0) return -1;
   53353             : #endif
   53354           0 :         PyTypeObject *b;
   53355             : #if PY_MAJOR_VERSION < 3
   53356             :         if (PyClass_Check(b0))
   53357             :         {
   53358             :             PyErr_Format(PyExc_TypeError, "base class '%.200s' is an old-style class",
   53359             :                          PyString_AS_STRING(((PyClassObject*)b0)->cl_name));
   53360             : #if CYTHON_AVOID_BORROWED_REFS
   53361             :             Py_DECREF(b0);
   53362             : #endif
   53363             :             return -1;
   53364             :         }
   53365             : #endif
   53366           0 :         b = (PyTypeObject*) b0;
   53367           0 :         if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE))
   53368             :         {
   53369           0 :             __Pyx_TypeName b_name = __Pyx_PyType_GetName(b);
   53370           0 :             PyErr_Format(PyExc_TypeError,
   53371             :                 "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b_name);
   53372           0 :             __Pyx_DECREF_TypeName(b_name);
   53373             : #if CYTHON_AVOID_BORROWED_REFS
   53374             :             Py_DECREF(b0);
   53375             : #endif
   53376           0 :             return -1;
   53377             :         }
   53378           0 :         if (dictoffset == 0)
   53379             :         {
   53380           0 :             Py_ssize_t b_dictoffset = 0;
   53381             : #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
   53382           0 :             b_dictoffset = b->tp_dictoffset;
   53383             : #else
   53384             :             PyObject *py_b_dictoffset = PyObject_GetAttrString((PyObject*)b, "__dictoffset__");
   53385             :             if (!py_b_dictoffset) goto dictoffset_return;
   53386             :             b_dictoffset = PyLong_AsSsize_t(py_b_dictoffset);
   53387             :             Py_DECREF(py_b_dictoffset);
   53388             :             if (b_dictoffset == -1 && PyErr_Occurred()) goto dictoffset_return;
   53389             : #endif
   53390           0 :             if (b_dictoffset) {
   53391             :                 {
   53392           0 :                     __Pyx_TypeName b_name = __Pyx_PyType_GetName(b);
   53393           0 :                     PyErr_Format(PyExc_TypeError,
   53394             :                         "extension type '%.200s' has no __dict__ slot, "
   53395             :                         "but base type '" __Pyx_FMT_TYPENAME "' has: "
   53396             :                         "either add 'cdef dict __dict__' to the extension type "
   53397             :                         "or add '__slots__ = [...]' to the base type",
   53398             :                         type_name, b_name);
   53399           0 :                     __Pyx_DECREF_TypeName(b_name);
   53400             :                 }
   53401             : #if !(CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY)
   53402             :               dictoffset_return:
   53403             : #endif
   53404             : #if CYTHON_AVOID_BORROWED_REFS
   53405             :                 Py_DECREF(b0);
   53406             : #endif
   53407           0 :                 return -1;
   53408             :             }
   53409             :         }
   53410             : #if CYTHON_AVOID_BORROWED_REFS
   53411             :         Py_DECREF(b0);
   53412             : #endif
   53413             :     }
   53414             :     return 0;
   53415             : }
   53416             : #endif
   53417             : 
   53418             : /* PyType_Ready */
   53419          12 :   static int __Pyx_PyType_Ready(PyTypeObject *t) {
   53420             : #if CYTHON_USE_TYPE_SPECS || !(CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API) || defined(PYSTON_MAJOR_VERSION)
   53421             :     (void)__Pyx_PyObject_CallMethod0;
   53422             : #if CYTHON_USE_TYPE_SPECS
   53423             :     (void)__Pyx_validate_bases_tuple;
   53424             : #endif
   53425             :     return PyType_Ready(t);
   53426             : #else
   53427          12 :     int r;
   53428          12 :     PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
   53429          12 :     if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset, bases) == -1))
   53430             :         return -1;
   53431             : #if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION)
   53432             :     {
   53433          12 :         int gc_was_enabled;
   53434             :     #if PY_VERSION_HEX >= 0x030A00b1
   53435          12 :         gc_was_enabled = PyGC_Disable();
   53436          12 :         (void)__Pyx_PyObject_CallMethod0;
   53437             :     #else
   53438             :         PyObject *ret, *py_status;
   53439             :         PyObject *gc = NULL;
   53440             :         #if PY_VERSION_HEX >= 0x030700a1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400)
   53441             :         gc = PyImport_GetModule(__pyx_kp_u_gc);
   53442             :         #endif
   53443             :         if (unlikely(!gc)) gc = PyImport_Import(__pyx_kp_u_gc);
   53444             :         if (unlikely(!gc)) return -1;
   53445             :         py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_isenabled);
   53446             :         if (unlikely(!py_status)) {
   53447             :             Py_DECREF(gc);
   53448             :             return -1;
   53449             :         }
   53450             :         gc_was_enabled = __Pyx_PyObject_IsTrue(py_status);
   53451             :         Py_DECREF(py_status);
   53452             :         if (gc_was_enabled > 0) {
   53453             :             ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_disable);
   53454             :             if (unlikely(!ret)) {
   53455             :                 Py_DECREF(gc);
   53456             :                 return -1;
   53457             :             }
   53458             :             Py_DECREF(ret);
   53459             :         } else if (unlikely(gc_was_enabled == -1)) {
   53460             :             Py_DECREF(gc);
   53461             :             return -1;
   53462             :         }
   53463             :     #endif
   53464          12 :         t->tp_flags |= Py_TPFLAGS_HEAPTYPE;
   53465             : #if PY_VERSION_HEX >= 0x030A0000
   53466          12 :         t->tp_flags |= Py_TPFLAGS_IMMUTABLETYPE;
   53467             : #endif
   53468             : #else
   53469             :         (void)__Pyx_PyObject_CallMethod0;
   53470             : #endif
   53471          12 :     r = PyType_Ready(t);
   53472             : #if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION)
   53473          12 :         t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE;
   53474             :     #if PY_VERSION_HEX >= 0x030A00b1
   53475          12 :         if (gc_was_enabled)
   53476          12 :             PyGC_Enable();
   53477             :     #else
   53478             :         if (gc_was_enabled) {
   53479             :             PyObject *tp, *v, *tb;
   53480             :             PyErr_Fetch(&tp, &v, &tb);
   53481             :             ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_enable);
   53482             :             if (likely(ret || r == -1)) {
   53483             :                 Py_XDECREF(ret);
   53484             :                 PyErr_Restore(tp, v, tb);
   53485             :             } else {
   53486             :                 Py_XDECREF(tp);
   53487             :                 Py_XDECREF(v);
   53488             :                 Py_XDECREF(tb);
   53489             :                 r = -1;
   53490             :             }
   53491             :         }
   53492             :         Py_DECREF(gc);
   53493             :     #endif
   53494             :     }
   53495             : #endif
   53496             :     return r;
   53497             : #endif
   53498             : }
   53499             : 
   53500             : /* SetVTable */
   53501           9 :   static int __Pyx_SetVtable(PyTypeObject *type, void *vtable) {
   53502           9 :     PyObject *ob = PyCapsule_New(vtable, 0, 0);
   53503           9 :     if (unlikely(!ob))
   53504           0 :         goto bad;
   53505             : #if CYTHON_COMPILING_IN_LIMITED_API
   53506             :     if (unlikely(PyObject_SetAttr((PyObject *) type, __pyx_n_s_pyx_vtable, ob) < 0))
   53507             : #else
   53508           9 :     if (unlikely(PyDict_SetItem(type->tp_dict, __pyx_n_s_pyx_vtable, ob) < 0))
   53509             : #endif
   53510           0 :         goto bad;
   53511           9 :     Py_DECREF(ob);
   53512             :     return 0;
   53513           0 : bad:
   53514           0 :     Py_XDECREF(ob);
   53515           0 :     return -1;
   53516             : }
   53517             : 
   53518             : /* GetVTable */
   53519           0 :   static void* __Pyx_GetVtable(PyTypeObject *type) {
   53520           0 :     void* ptr;
   53521             : #if CYTHON_COMPILING_IN_LIMITED_API
   53522             :     PyObject *ob = PyObject_GetAttr((PyObject *)type, __pyx_n_s_pyx_vtable);
   53523             : #else
   53524           0 :     PyObject *ob = PyObject_GetItem(type->tp_dict, __pyx_n_s_pyx_vtable);
   53525             : #endif
   53526           0 :     if (!ob)
   53527           0 :         goto bad;
   53528           0 :     ptr = PyCapsule_GetPointer(ob, 0);
   53529           0 :     if (!ptr && !PyErr_Occurred())
   53530           0 :         PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type");
   53531           0 :     Py_DECREF(ob);
   53532             :     return ptr;
   53533           0 : bad:
   53534           0 :     Py_XDECREF(ob);
   53535           0 :     return NULL;
   53536             : }
   53537             : 
   53538             : /* MergeVTables */
   53539             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   53540           9 : static int __Pyx_MergeVtables(PyTypeObject *type) {
   53541           9 :     int i;
   53542           9 :     void** base_vtables;
   53543           9 :     __Pyx_TypeName tp_base_name;
   53544           9 :     __Pyx_TypeName base_name;
   53545           9 :     void* unknown = (void*)-1;
   53546           9 :     PyObject* bases = type->tp_bases;
   53547           9 :     int base_depth = 0;
   53548             :     {
   53549           9 :         PyTypeObject* base = type->tp_base;
   53550          21 :         while (base) {
   53551          12 :             base_depth += 1;
   53552          12 :             base = base->tp_base;
   53553             :         }
   53554             :     }
   53555           9 :     base_vtables = (void**) malloc(sizeof(void*) * (size_t)(base_depth + 1));
   53556           9 :     base_vtables[0] = unknown;
   53557           9 :     for (i = 1; i < PyTuple_GET_SIZE(bases); i++) {
   53558           0 :         void* base_vtable = __Pyx_GetVtable(((PyTypeObject*)PyTuple_GET_ITEM(bases, i)));
   53559           0 :         if (base_vtable != NULL) {
   53560           0 :             int j;
   53561           0 :             PyTypeObject* base = type->tp_base;
   53562           0 :             for (j = 0; j < base_depth; j++) {
   53563           0 :                 if (base_vtables[j] == unknown) {
   53564           0 :                     base_vtables[j] = __Pyx_GetVtable(base);
   53565           0 :                     base_vtables[j + 1] = unknown;
   53566             :                 }
   53567           0 :                 if (base_vtables[j] == base_vtable) {
   53568             :                     break;
   53569           0 :                 } else if (base_vtables[j] == NULL) {
   53570           0 :                     goto bad;
   53571             :                 }
   53572           0 :                 base = base->tp_base;
   53573             :             }
   53574             :         }
   53575             :     }
   53576           9 :     PyErr_Clear();
   53577           9 :     free(base_vtables);
   53578           9 :     return 0;
   53579           0 : bad:
   53580           0 :     tp_base_name = __Pyx_PyType_GetName(type->tp_base);
   53581           0 :     base_name = __Pyx_PyType_GetName((PyTypeObject*)PyTuple_GET_ITEM(bases, i));
   53582           0 :     PyErr_Format(PyExc_TypeError,
   53583             :         "multiple bases have vtable conflict: '" __Pyx_FMT_TYPENAME "' and '" __Pyx_FMT_TYPENAME "'", tp_base_name, base_name);
   53584           0 :     __Pyx_DECREF_TypeName(tp_base_name);
   53585           0 :     __Pyx_DECREF_TypeName(base_name);
   53586           0 :     free(base_vtables);
   53587           0 :     return -1;
   53588             : }
   53589             : #endif
   53590             : 
   53591             : /* SetupReduce */
   53592             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   53593           6 : static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
   53594           6 :   int ret;
   53595           6 :   PyObject *name_attr;
   53596           6 :   name_attr = __Pyx_PyObject_GetAttrStrNoError(meth, __pyx_n_s_name_2);
   53597           6 :   if (likely(name_attr)) {
   53598           6 :       ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
   53599             :   } else {
   53600             :       ret = -1;
   53601             :   }
   53602           6 :   if (unlikely(ret < 0)) {
   53603           0 :       PyErr_Clear();
   53604           0 :       ret = 0;
   53605             :   }
   53606           6 :   Py_XDECREF(name_attr);
   53607           6 :   return ret;
   53608             : }
   53609          12 : static int __Pyx_setup_reduce(PyObject* type_obj) {
   53610          12 :     int ret = 0;
   53611          12 :     PyObject *object_reduce = NULL;
   53612          12 :     PyObject *object_getstate = NULL;
   53613          12 :     PyObject *object_reduce_ex = NULL;
   53614          12 :     PyObject *reduce = NULL;
   53615          12 :     PyObject *reduce_ex = NULL;
   53616          12 :     PyObject *reduce_cython = NULL;
   53617          12 :     PyObject *setstate = NULL;
   53618          12 :     PyObject *setstate_cython = NULL;
   53619          12 :     PyObject *getstate = NULL;
   53620             : #if CYTHON_USE_PYTYPE_LOOKUP
   53621          12 :     getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate);
   53622             : #else
   53623             :     getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_getstate);
   53624             :     if (!getstate && PyErr_Occurred()) {
   53625             :         goto __PYX_BAD;
   53626             :     }
   53627             : #endif
   53628          12 :     if (getstate) {
   53629             : #if CYTHON_USE_PYTYPE_LOOKUP
   53630          12 :         object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_getstate);
   53631             : #else
   53632             :         object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_n_s_getstate);
   53633             :         if (!object_getstate && PyErr_Occurred()) {
   53634             :             goto __PYX_BAD;
   53635             :         }
   53636             : #endif
   53637          12 :         if (object_getstate != getstate) {
   53638           0 :             goto __PYX_GOOD;
   53639             :         }
   53640             :     }
   53641             : #if CYTHON_USE_PYTYPE_LOOKUP
   53642          12 :     object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
   53643             : #else
   53644             :     object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
   53645             : #endif
   53646          12 :     reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
   53647          12 :     if (reduce_ex == object_reduce_ex) {
   53648             : #if CYTHON_USE_PYTYPE_LOOKUP
   53649          12 :         object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
   53650             : #else
   53651             :         object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
   53652             : #endif
   53653          12 :         reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
   53654          12 :         if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) {
   53655          12 :             reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython);
   53656          12 :             if (likely(reduce_cython)) {
   53657          12 :                 ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
   53658          12 :                 ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
   53659           0 :             } else if (reduce == object_reduce || PyErr_Occurred()) {
   53660           0 :                 goto __PYX_BAD;
   53661             :             }
   53662          12 :             setstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate);
   53663          12 :             if (!setstate) PyErr_Clear();
   53664          12 :             if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) {
   53665          12 :                 setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython);
   53666          12 :                 if (likely(setstate_cython)) {
   53667          12 :                     ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
   53668          12 :                     ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
   53669           0 :                 } else if (!setstate || PyErr_Occurred()) {
   53670           0 :                     goto __PYX_BAD;
   53671             :                 }
   53672             :             }
   53673          12 :             PyType_Modified((PyTypeObject*)type_obj);
   53674             :         }
   53675             :     }
   53676          12 :     goto __PYX_GOOD;
   53677           0 : __PYX_BAD:
   53678           0 :     if (!PyErr_Occurred()) {
   53679           0 :         __Pyx_TypeName type_obj_name =
   53680             :             __Pyx_PyType_GetName((PyTypeObject*)type_obj);
   53681           0 :         PyErr_Format(PyExc_RuntimeError,
   53682             :             "Unable to initialize pickling for " __Pyx_FMT_TYPENAME, type_obj_name);
   53683             :         __Pyx_DECREF_TypeName(type_obj_name);
   53684             :     }
   53685             :     ret = -1;
   53686          12 : __PYX_GOOD:
   53687             : #if !CYTHON_USE_PYTYPE_LOOKUP
   53688             :     Py_XDECREF(object_reduce);
   53689             :     Py_XDECREF(object_reduce_ex);
   53690             :     Py_XDECREF(object_getstate);
   53691             :     Py_XDECREF(getstate);
   53692             : #endif
   53693          12 :     Py_XDECREF(reduce);
   53694          12 :     Py_XDECREF(reduce_ex);
   53695          12 :     Py_XDECREF(reduce_cython);
   53696          12 :     Py_XDECREF(setstate);
   53697          12 :     Py_XDECREF(setstate_cython);
   53698          12 :     return ret;
   53699             : }
   53700             : #endif
   53701             : 
   53702             : /* TypeImport */
   53703             :   #ifndef __PYX_HAVE_RT_ImportType_3_0_11
   53704             : #define __PYX_HAVE_RT_ImportType_3_0_11
   53705          48 : static PyTypeObject *__Pyx_ImportType_3_0_11(PyObject *module, const char *module_name, const char *class_name,
   53706             :     size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_0_11 check_size)
   53707             : {
   53708          48 :     PyObject *result = 0;
   53709          48 :     char warning[200];
   53710          48 :     Py_ssize_t basicsize;
   53711          48 :     Py_ssize_t itemsize;
   53712             : #if CYTHON_COMPILING_IN_LIMITED_API
   53713             :     PyObject *py_basicsize;
   53714             :     PyObject *py_itemsize;
   53715             : #endif
   53716          48 :     result = PyObject_GetAttrString(module, class_name);
   53717          48 :     if (!result)
   53718           0 :         goto bad;
   53719          48 :     if (!PyType_Check(result)) {
   53720           0 :         PyErr_Format(PyExc_TypeError,
   53721             :             "%.200s.%.200s is not a type object",
   53722             :             module_name, class_name);
   53723           0 :         goto bad;
   53724             :     }
   53725             : #if !CYTHON_COMPILING_IN_LIMITED_API
   53726          48 :     basicsize = ((PyTypeObject *)result)->tp_basicsize;
   53727          48 :     itemsize = ((PyTypeObject *)result)->tp_itemsize;
   53728             : #else
   53729             :     py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
   53730             :     if (!py_basicsize)
   53731             :         goto bad;
   53732             :     basicsize = PyLong_AsSsize_t(py_basicsize);
   53733             :     Py_DECREF(py_basicsize);
   53734             :     py_basicsize = 0;
   53735             :     if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
   53736             :         goto bad;
   53737             :     py_itemsize = PyObject_GetAttrString(result, "__itemsize__");
   53738             :     if (!py_itemsize)
   53739             :         goto bad;
   53740             :     itemsize = PyLong_AsSsize_t(py_itemsize);
   53741             :     Py_DECREF(py_itemsize);
   53742             :     py_itemsize = 0;
   53743             :     if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
   53744             :         goto bad;
   53745             : #endif
   53746          48 :     if (itemsize) {
   53747           3 :         if (size % alignment) {
   53748           0 :             alignment = size % alignment;
   53749             :         }
   53750           3 :         if (itemsize < (Py_ssize_t)alignment)
   53751             :             itemsize = (Py_ssize_t)alignment;
   53752             :     }
   53753          48 :     if ((size_t)(basicsize + itemsize) < size) {
   53754           0 :         PyErr_Format(PyExc_ValueError,
   53755             :             "%.200s.%.200s size changed, may indicate binary incompatibility. "
   53756             :             "Expected %zd from C header, got %zd from PyObject",
   53757             :             module_name, class_name, size, basicsize+itemsize);
   53758           0 :         goto bad;
   53759             :     }
   53760          48 :     if (check_size == __Pyx_ImportType_CheckSize_Error_3_0_11 &&
   53761           0 :             ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) {
   53762           0 :         PyErr_Format(PyExc_ValueError,
   53763             :             "%.200s.%.200s size changed, may indicate binary incompatibility. "
   53764             :             "Expected %zd from C header, got %zd-%zd from PyObject",
   53765             :             module_name, class_name, size, basicsize, basicsize+itemsize);
   53766           0 :         goto bad;
   53767             :     }
   53768          48 :     else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_0_11 && (size_t)basicsize > size) {
   53769           0 :         PyOS_snprintf(warning, sizeof(warning),
   53770             :             "%s.%s size changed, may indicate binary incompatibility. "
   53771             :             "Expected %zd from C header, got %zd from PyObject",
   53772             :             module_name, class_name, size, basicsize);
   53773           0 :         if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
   53774             :     }
   53775             :     return (PyTypeObject *)result;
   53776           0 : bad:
   53777           0 :     Py_XDECREF(result);
   53778           0 :     return NULL;
   53779             : }
   53780             : #endif
   53781             : 
   53782             : /* FetchSharedCythonModule */
   53783           6 :   static PyObject *__Pyx_FetchSharedCythonABIModule(void) {
   53784           6 :     return __Pyx_PyImport_AddModuleRef((char*) __PYX_ABI_MODULE_NAME);
   53785             : }
   53786             : 
   53787             : /* FetchCommonType */
   53788           3 :   static int __Pyx_VerifyCachedType(PyObject *cached_type,
   53789             :                                const char *name,
   53790             :                                Py_ssize_t basicsize,
   53791             :                                Py_ssize_t expected_basicsize) {
   53792           3 :     if (!PyType_Check(cached_type)) {
   53793           0 :         PyErr_Format(PyExc_TypeError,
   53794             :             "Shared Cython type %.200s is not a type object", name);
   53795           0 :         return -1;
   53796             :     }
   53797           3 :     if (basicsize != expected_basicsize) {
   53798           0 :         PyErr_Format(PyExc_TypeError,
   53799             :             "Shared Cython type %.200s has the wrong size, try recompiling",
   53800             :             name);
   53801           0 :         return -1;
   53802             :     }
   53803             :     return 0;
   53804             : }
   53805             : #if !CYTHON_USE_TYPE_SPECS
   53806           6 : static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
   53807           6 :     PyObject* abi_module;
   53808           6 :     const char* object_name;
   53809           6 :     PyTypeObject *cached_type = NULL;
   53810           6 :     abi_module = __Pyx_FetchSharedCythonABIModule();
   53811           6 :     if (!abi_module) return NULL;
   53812           6 :     object_name = strrchr(type->tp_name, '.');
   53813           6 :     object_name = object_name ? object_name+1 : type->tp_name;
   53814           6 :     cached_type = (PyTypeObject*) PyObject_GetAttrString(abi_module, object_name);
   53815           6 :     if (cached_type) {
   53816           3 :         if (__Pyx_VerifyCachedType(
   53817             :               (PyObject *)cached_type,
   53818             :               object_name,
   53819             :               cached_type->tp_basicsize,
   53820             :               type->tp_basicsize) < 0) {
   53821           0 :             goto bad;
   53822             :         }
   53823           3 :         goto done;
   53824             :     }
   53825           3 :     if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
   53826           3 :     PyErr_Clear();
   53827           3 :     if (PyType_Ready(type) < 0) goto bad;
   53828           3 :     if (PyObject_SetAttrString(abi_module, object_name, (PyObject *)type) < 0)
   53829           0 :         goto bad;
   53830           3 :     Py_INCREF(type);
   53831             :     cached_type = type;
   53832           6 : done:
   53833           6 :     Py_DECREF(abi_module);
   53834             :     return cached_type;
   53835           0 : bad:
   53836           0 :     Py_XDECREF(cached_type);
   53837           0 :     cached_type = NULL;
   53838           0 :     goto done;
   53839             : }
   53840             : #else
   53841             : static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases) {
   53842             :     PyObject *abi_module, *cached_type = NULL;
   53843             :     const char* object_name = strrchr(spec->name, '.');
   53844             :     object_name = object_name ? object_name+1 : spec->name;
   53845             :     abi_module = __Pyx_FetchSharedCythonABIModule();
   53846             :     if (!abi_module) return NULL;
   53847             :     cached_type = PyObject_GetAttrString(abi_module, object_name);
   53848             :     if (cached_type) {
   53849             :         Py_ssize_t basicsize;
   53850             : #if CYTHON_COMPILING_IN_LIMITED_API
   53851             :         PyObject *py_basicsize;
   53852             :         py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__");
   53853             :         if (unlikely(!py_basicsize)) goto bad;
   53854             :         basicsize = PyLong_AsSsize_t(py_basicsize);
   53855             :         Py_DECREF(py_basicsize);
   53856             :         py_basicsize = 0;
   53857             :         if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
   53858             : #else
   53859             :         basicsize = likely(PyType_Check(cached_type)) ? ((PyTypeObject*) cached_type)->tp_basicsize : -1;
   53860             : #endif
   53861             :         if (__Pyx_VerifyCachedType(
   53862             :               cached_type,
   53863             :               object_name,
   53864             :               basicsize,
   53865             :               spec->basicsize) < 0) {
   53866             :             goto bad;
   53867             :         }
   53868             :         goto done;
   53869             :     }
   53870             :     if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
   53871             :     PyErr_Clear();
   53872             :     CYTHON_UNUSED_VAR(module);
   53873             :     cached_type = __Pyx_PyType_FromModuleAndSpec(abi_module, spec, bases);
   53874             :     if (unlikely(!cached_type)) goto bad;
   53875             :     if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad;
   53876             :     if (PyObject_SetAttrString(abi_module, object_name, cached_type) < 0) goto bad;
   53877             : done:
   53878             :     Py_DECREF(abi_module);
   53879             :     assert(cached_type == NULL || PyType_Check(cached_type));
   53880             :     return (PyTypeObject *) cached_type;
   53881             : bad:
   53882             :     Py_XDECREF(cached_type);
   53883             :     cached_type = NULL;
   53884             :     goto done;
   53885             : }
   53886             : #endif
   53887             : 
   53888             : /* PyVectorcallFastCallDict */
   53889             :   #if CYTHON_METH_FASTCALL
   53890           0 : static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
   53891             : {
   53892           0 :     PyObject *res = NULL;
   53893           0 :     PyObject *kwnames;
   53894           0 :     PyObject **newargs;
   53895           0 :     PyObject **kwvalues;
   53896           0 :     Py_ssize_t i, pos;
   53897           0 :     size_t j;
   53898           0 :     PyObject *key, *value;
   53899           0 :     unsigned long keys_are_strings;
   53900           0 :     Py_ssize_t nkw = PyDict_GET_SIZE(kw);
   53901           0 :     newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0]));
   53902           0 :     if (unlikely(newargs == NULL)) {
   53903           0 :         PyErr_NoMemory();
   53904           0 :         return NULL;
   53905             :     }
   53906           0 :     for (j = 0; j < nargs; j++) newargs[j] = args[j];
   53907           0 :     kwnames = PyTuple_New(nkw);
   53908           0 :     if (unlikely(kwnames == NULL)) {
   53909           0 :         PyMem_Free(newargs);
   53910           0 :         return NULL;
   53911             :     }
   53912           0 :     kwvalues = newargs + nargs;
   53913           0 :     pos = i = 0;
   53914           0 :     keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS;
   53915           0 :     while (PyDict_Next(kw, &pos, &key, &value)) {
   53916           0 :         keys_are_strings &= Py_TYPE(key)->tp_flags;
   53917           0 :         Py_INCREF(key);
   53918           0 :         Py_INCREF(value);
   53919           0 :         PyTuple_SET_ITEM(kwnames, i, key);
   53920           0 :         kwvalues[i] = value;
   53921           0 :         i++;
   53922             :     }
   53923           0 :     if (unlikely(!keys_are_strings)) {
   53924           0 :         PyErr_SetString(PyExc_TypeError, "keywords must be strings");
   53925           0 :         goto cleanup;
   53926             :     }
   53927           0 :     res = vc(func, newargs, nargs, kwnames);
   53928           0 : cleanup:
   53929           0 :     Py_DECREF(kwnames);
   53930           0 :     for (i = 0; i < nkw; i++)
   53931           0 :         Py_DECREF(kwvalues[i]);
   53932           0 :     PyMem_Free(newargs);
   53933           0 :     return res;
   53934             : }
   53935           0 : static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
   53936             : {
   53937           0 :     if (likely(kw == NULL) || PyDict_GET_SIZE(kw) == 0) {
   53938           0 :         return vc(func, args, nargs, NULL);
   53939             :     }
   53940           0 :     return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw);
   53941             : }
   53942             : #endif
   53943             : 
   53944             : /* CythonFunctionShared */
   53945             :   #if CYTHON_COMPILING_IN_LIMITED_API
   53946             : static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc) {
   53947             :     if (__Pyx_CyFunction_Check(func)) {
   53948             :         return PyCFunction_GetFunction(((__pyx_CyFunctionObject*)func)->func) == (PyCFunction) cfunc;
   53949             :     } else if (PyCFunction_Check(func)) {
   53950             :         return PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
   53951             :     }
   53952             :     return 0;
   53953             : }
   53954             : #else
   53955             : static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc) {
   53956             :     return __Pyx_CyOrPyCFunction_Check(func) && __Pyx_CyOrPyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
   53957             : }
   53958             : #endif
   53959      165850 : static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) {
   53960             : #if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
   53961             :     __Pyx_Py_XDECREF_SET(
   53962             :         __Pyx_CyFunction_GetClassObj(f),
   53963             :             ((classobj) ? __Pyx_NewRef(classobj) : NULL));
   53964             : #else
   53965      165850 :     __Pyx_Py_XDECREF_SET(
   53966             :         ((PyCMethodObject *) (f))->mm_class,
   53967             :         (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL));
   53968             : #endif
   53969      165850 : }
   53970             : static PyObject *
   53971           0 : __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, void *closure)
   53972             : {
   53973           0 :     CYTHON_UNUSED_VAR(closure);
   53974           0 :     if (unlikely(op->func_doc == NULL)) {
   53975             : #if CYTHON_COMPILING_IN_LIMITED_API
   53976             :         op->func_doc = PyObject_GetAttrString(op->func, "__doc__");
   53977             :         if (unlikely(!op->func_doc)) return NULL;
   53978             : #else
   53979           0 :         if (((PyCFunctionObject*)op)->m_ml->ml_doc) {
   53980             : #if PY_MAJOR_VERSION >= 3
   53981           0 :             op->func_doc = PyUnicode_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);
   53982             : #else
   53983             :             op->func_doc = PyString_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);
   53984             : #endif
   53985           0 :             if (unlikely(op->func_doc == NULL))
   53986             :                 return NULL;
   53987             :         } else {
   53988           0 :             Py_INCREF(Py_None);
   53989           0 :             return Py_None;
   53990             :         }
   53991             : #endif
   53992             :     }
   53993           0 :     Py_INCREF(op->func_doc);
   53994             :     return op->func_doc;
   53995             : }
   53996             : static int
   53997           0 : __Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, void *context)
   53998             : {
   53999           0 :     CYTHON_UNUSED_VAR(context);
   54000           0 :     if (value == NULL) {
   54001           0 :         value = Py_None;
   54002             :     }
   54003           0 :     Py_INCREF(value);
   54004           0 :     __Pyx_Py_XDECREF_SET(op->func_doc, value);
   54005           0 :     return 0;
   54006             : }
   54007             : static PyObject *
   54008           0 : __Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, void *context)
   54009             : {
   54010           0 :     CYTHON_UNUSED_VAR(context);
   54011           0 :     if (unlikely(op->func_name == NULL)) {
   54012             : #if CYTHON_COMPILING_IN_LIMITED_API
   54013             :         op->func_name = PyObject_GetAttrString(op->func, "__name__");
   54014             : #elif PY_MAJOR_VERSION >= 3
   54015           0 :         op->func_name = PyUnicode_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name);
   54016             : #else
   54017             :         op->func_name = PyString_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name);
   54018             : #endif
   54019           0 :         if (unlikely(op->func_name == NULL))
   54020             :             return NULL;
   54021             :     }
   54022           0 :     Py_INCREF(op->func_name);
   54023             :     return op->func_name;
   54024             : }
   54025             : static int
   54026           0 : __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, void *context)
   54027             : {
   54028           0 :     CYTHON_UNUSED_VAR(context);
   54029             : #if PY_MAJOR_VERSION >= 3
   54030           0 :     if (unlikely(value == NULL || !PyUnicode_Check(value)))
   54031             : #else
   54032             :     if (unlikely(value == NULL || !PyString_Check(value)))
   54033             : #endif
   54034             :     {
   54035           0 :         PyErr_SetString(PyExc_TypeError,
   54036             :                         "__name__ must be set to a string object");
   54037           0 :         return -1;
   54038             :     }
   54039           0 :     Py_INCREF(value);
   54040           0 :     __Pyx_Py_XDECREF_SET(op->func_name, value);
   54041           0 :     return 0;
   54042             : }
   54043             : static PyObject *
   54044           0 : __Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, void *context)
   54045             : {
   54046           0 :     CYTHON_UNUSED_VAR(context);
   54047           0 :     Py_INCREF(op->func_qualname);
   54048           0 :     return op->func_qualname;
   54049             : }
   54050             : static int
   54051           0 : __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, void *context)
   54052             : {
   54053           0 :     CYTHON_UNUSED_VAR(context);
   54054             : #if PY_MAJOR_VERSION >= 3
   54055           0 :     if (unlikely(value == NULL || !PyUnicode_Check(value)))
   54056             : #else
   54057             :     if (unlikely(value == NULL || !PyString_Check(value)))
   54058             : #endif
   54059             :     {
   54060           0 :         PyErr_SetString(PyExc_TypeError,
   54061             :                         "__qualname__ must be set to a string object");
   54062           0 :         return -1;
   54063             :     }
   54064           0 :     Py_INCREF(value);
   54065           0 :     __Pyx_Py_XDECREF_SET(op->func_qualname, value);
   54066           0 :     return 0;
   54067             : }
   54068             : static PyObject *
   54069           0 : __Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context)
   54070             : {
   54071           0 :     CYTHON_UNUSED_VAR(context);
   54072           0 :     if (unlikely(op->func_dict == NULL)) {
   54073           0 :         op->func_dict = PyDict_New();
   54074           0 :         if (unlikely(op->func_dict == NULL))
   54075             :             return NULL;
   54076             :     }
   54077           0 :     Py_INCREF(op->func_dict);
   54078             :     return op->func_dict;
   54079             : }
   54080             : static int
   54081           0 : __Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, void *context)
   54082             : {
   54083           0 :     CYTHON_UNUSED_VAR(context);
   54084           0 :     if (unlikely(value == NULL)) {
   54085           0 :         PyErr_SetString(PyExc_TypeError,
   54086             :                "function's dictionary may not be deleted");
   54087           0 :         return -1;
   54088             :     }
   54089           0 :     if (unlikely(!PyDict_Check(value))) {
   54090           0 :         PyErr_SetString(PyExc_TypeError,
   54091             :                "setting function's dictionary to a non-dict");
   54092           0 :         return -1;
   54093             :     }
   54094           0 :     Py_INCREF(value);
   54095           0 :     __Pyx_Py_XDECREF_SET(op->func_dict, value);
   54096           0 :     return 0;
   54097             : }
   54098             : static PyObject *
   54099           0 : __Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, void *context)
   54100             : {
   54101           0 :     CYTHON_UNUSED_VAR(context);
   54102           0 :     Py_INCREF(op->func_globals);
   54103           0 :     return op->func_globals;
   54104             : }
   54105             : static PyObject *
   54106           0 : __Pyx_CyFunction_get_closure(__pyx_CyFunctionObject *op, void *context)
   54107             : {
   54108           0 :     CYTHON_UNUSED_VAR(op);
   54109           0 :     CYTHON_UNUSED_VAR(context);
   54110           0 :     Py_INCREF(Py_None);
   54111           0 :     return Py_None;
   54112             : }
   54113             : static PyObject *
   54114           0 : __Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, void *context)
   54115             : {
   54116           0 :     PyObject* result = (op->func_code) ? op->func_code : Py_None;
   54117           0 :     CYTHON_UNUSED_VAR(context);
   54118           0 :     Py_INCREF(result);
   54119           0 :     return result;
   54120             : }
   54121             : static int
   54122           0 : __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
   54123           0 :     int result = 0;
   54124           0 :     PyObject *res = op->defaults_getter((PyObject *) op);
   54125           0 :     if (unlikely(!res))
   54126             :         return -1;
   54127             :     #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   54128           0 :     op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
   54129           0 :     Py_INCREF(op->defaults_tuple);
   54130           0 :     op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
   54131           0 :     Py_INCREF(op->defaults_kwdict);
   54132             :     #else
   54133             :     op->defaults_tuple = __Pyx_PySequence_ITEM(res, 0);
   54134             :     if (unlikely(!op->defaults_tuple)) result = -1;
   54135             :     else {
   54136             :         op->defaults_kwdict = __Pyx_PySequence_ITEM(res, 1);
   54137             :         if (unlikely(!op->defaults_kwdict)) result = -1;
   54138             :     }
   54139             :     #endif
   54140           0 :     Py_DECREF(res);
   54141             :     return result;
   54142             : }
   54143             : static int
   54144           0 : __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
   54145           0 :     CYTHON_UNUSED_VAR(context);
   54146           0 :     if (!value) {
   54147             :         value = Py_None;
   54148           0 :     } else if (unlikely(value != Py_None && !PyTuple_Check(value))) {
   54149           0 :         PyErr_SetString(PyExc_TypeError,
   54150             :                         "__defaults__ must be set to a tuple object");
   54151           0 :         return -1;
   54152             :     }
   54153           0 :     PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not "
   54154             :                  "currently affect the values used in function calls", 1);
   54155           0 :     Py_INCREF(value);
   54156           0 :     __Pyx_Py_XDECREF_SET(op->defaults_tuple, value);
   54157           0 :     return 0;
   54158             : }
   54159             : static PyObject *
   54160           0 : __Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, void *context) {
   54161           0 :     PyObject* result = op->defaults_tuple;
   54162           0 :     CYTHON_UNUSED_VAR(context);
   54163           0 :     if (unlikely(!result)) {
   54164           0 :         if (op->defaults_getter) {
   54165           0 :             if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
   54166           0 :             result = op->defaults_tuple;
   54167             :         } else {
   54168             :             result = Py_None;
   54169             :         }
   54170             :     }
   54171           0 :     Py_INCREF(result);
   54172             :     return result;
   54173             : }
   54174             : static int
   54175           0 : __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
   54176           0 :     CYTHON_UNUSED_VAR(context);
   54177           0 :     if (!value) {
   54178             :         value = Py_None;
   54179           0 :     } else if (unlikely(value != Py_None && !PyDict_Check(value))) {
   54180           0 :         PyErr_SetString(PyExc_TypeError,
   54181             :                         "__kwdefaults__ must be set to a dict object");
   54182           0 :         return -1;
   54183             :     }
   54184           0 :     PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not "
   54185             :                  "currently affect the values used in function calls", 1);
   54186           0 :     Py_INCREF(value);
   54187           0 :     __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value);
   54188           0 :     return 0;
   54189             : }
   54190             : static PyObject *
   54191           0 : __Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, void *context) {
   54192           0 :     PyObject* result = op->defaults_kwdict;
   54193           0 :     CYTHON_UNUSED_VAR(context);
   54194           0 :     if (unlikely(!result)) {
   54195           0 :         if (op->defaults_getter) {
   54196           0 :             if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
   54197           0 :             result = op->defaults_kwdict;
   54198             :         } else {
   54199             :             result = Py_None;
   54200             :         }
   54201             :     }
   54202           0 :     Py_INCREF(result);
   54203             :     return result;
   54204             : }
   54205             : static int
   54206           0 : __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
   54207           0 :     CYTHON_UNUSED_VAR(context);
   54208           0 :     if (!value || value == Py_None) {
   54209             :         value = NULL;
   54210           0 :     } else if (unlikely(!PyDict_Check(value))) {
   54211           0 :         PyErr_SetString(PyExc_TypeError,
   54212             :                         "__annotations__ must be set to a dict object");
   54213           0 :         return -1;
   54214             :     }
   54215           0 :     Py_XINCREF(value);
   54216           0 :     __Pyx_Py_XDECREF_SET(op->func_annotations, value);
   54217           0 :     return 0;
   54218             : }
   54219             : static PyObject *
   54220           0 : __Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, void *context) {
   54221           0 :     PyObject* result = op->func_annotations;
   54222           0 :     CYTHON_UNUSED_VAR(context);
   54223           0 :     if (unlikely(!result)) {
   54224           0 :         result = PyDict_New();
   54225           0 :         if (unlikely(!result)) return NULL;
   54226           0 :         op->func_annotations = result;
   54227             :     }
   54228           0 :     Py_INCREF(result);
   54229             :     return result;
   54230             : }
   54231             : static PyObject *
   54232           0 : __Pyx_CyFunction_get_is_coroutine(__pyx_CyFunctionObject *op, void *context) {
   54233           0 :     int is_coroutine;
   54234           0 :     CYTHON_UNUSED_VAR(context);
   54235           0 :     if (op->func_is_coroutine) {
   54236           0 :         return __Pyx_NewRef(op->func_is_coroutine);
   54237             :     }
   54238           0 :     is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE;
   54239             : #if PY_VERSION_HEX >= 0x03050000
   54240           0 :     if (is_coroutine) {
   54241           0 :         PyObject *module, *fromlist, *marker = __pyx_n_s_is_coroutine;
   54242           0 :         fromlist = PyList_New(1);
   54243           0 :         if (unlikely(!fromlist)) return NULL;
   54244           0 :         Py_INCREF(marker);
   54245             : #if CYTHON_ASSUME_SAFE_MACROS
   54246           0 :         PyList_SET_ITEM(fromlist, 0, marker);
   54247             : #else
   54248             :         if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) {
   54249             :             Py_DECREF(marker);
   54250             :             Py_DECREF(fromlist);
   54251             :             return NULL;
   54252             :         }
   54253             : #endif
   54254           0 :         module = PyImport_ImportModuleLevelObject(__pyx_n_s_asyncio_coroutines, NULL, NULL, fromlist, 0);
   54255           0 :         Py_DECREF(fromlist);
   54256           0 :         if (unlikely(!module)) goto ignore;
   54257           0 :         op->func_is_coroutine = __Pyx_PyObject_GetAttrStr(module, marker);
   54258           0 :         Py_DECREF(module);
   54259           0 :         if (likely(op->func_is_coroutine)) {
   54260           0 :             return __Pyx_NewRef(op->func_is_coroutine);
   54261             :         }
   54262           0 : ignore:
   54263           0 :         PyErr_Clear();
   54264             :     }
   54265             : #endif
   54266           0 :     op->func_is_coroutine = __Pyx_PyBool_FromLong(is_coroutine);
   54267           0 :     return __Pyx_NewRef(op->func_is_coroutine);
   54268             : }
   54269             : #if CYTHON_COMPILING_IN_LIMITED_API
   54270             : static PyObject *
   54271             : __Pyx_CyFunction_get_module(__pyx_CyFunctionObject *op, void *context) {
   54272             :     CYTHON_UNUSED_VAR(context);
   54273             :     return PyObject_GetAttrString(op->func, "__module__");
   54274             : }
   54275             : static int
   54276             : __Pyx_CyFunction_set_module(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
   54277             :     CYTHON_UNUSED_VAR(context);
   54278             :     return PyObject_SetAttrString(op->func, "__module__", value);
   54279             : }
   54280             : #endif
   54281             : static PyGetSetDef __pyx_CyFunction_getsets[] = {
   54282             :     {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
   54283             :     {(char *) "__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
   54284             :     {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
   54285             :     {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
   54286             :     {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
   54287             :     {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
   54288             :     {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
   54289             :     {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
   54290             :     {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
   54291             :     {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
   54292             :     {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
   54293             :     {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
   54294             :     {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
   54295             :     {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
   54296             :     {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
   54297             :     {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
   54298             :     {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
   54299             :     {(char *) "_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0},
   54300             : #if CYTHON_COMPILING_IN_LIMITED_API
   54301             :     {"__module__", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0},
   54302             : #endif
   54303             :     {0, 0, 0, 0, 0}
   54304             : };
   54305             : static PyMemberDef __pyx_CyFunction_members[] = {
   54306             : #if !CYTHON_COMPILING_IN_LIMITED_API
   54307             :     {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0},
   54308             : #endif
   54309             : #if CYTHON_USE_TYPE_SPECS
   54310             :     {(char *) "__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict), READONLY, 0},
   54311             : #if CYTHON_METH_FASTCALL
   54312             : #if CYTHON_BACKPORT_VECTORCALL
   54313             :     {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall), READONLY, 0},
   54314             : #else
   54315             : #if !CYTHON_COMPILING_IN_LIMITED_API
   54316             :     {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0},
   54317             : #endif
   54318             : #endif
   54319             : #endif
   54320             : #if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
   54321             :     {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist), READONLY, 0},
   54322             : #else
   54323             :     {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0},
   54324             : #endif
   54325             : #endif
   54326             :     {0, 0, 0,  0, 0}
   54327             : };
   54328             : static PyObject *
   54329           0 : __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, PyObject *args)
   54330             : {
   54331           0 :     CYTHON_UNUSED_VAR(args);
   54332             : #if PY_MAJOR_VERSION >= 3
   54333           0 :     Py_INCREF(m->func_qualname);
   54334           0 :     return m->func_qualname;
   54335             : #else
   54336             :     return PyString_FromString(((PyCFunctionObject*)m)->m_ml->ml_name);
   54337             : #endif
   54338             : }
   54339             : static PyMethodDef __pyx_CyFunction_methods[] = {
   54340             :     {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
   54341             :     {0, 0, 0, 0}
   54342             : };
   54343             : #if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
   54344             : #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
   54345             : #else
   54346             : #define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist)
   54347             : #endif
   54348         274 : static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
   54349             :                                        PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
   54350             : #if !CYTHON_COMPILING_IN_LIMITED_API
   54351         274 :     PyCFunctionObject *cf = (PyCFunctionObject*) op;
   54352             : #endif
   54353         274 :     if (unlikely(op == NULL))
   54354             :         return NULL;
   54355             : #if CYTHON_COMPILING_IN_LIMITED_API
   54356             :     op->func = PyCFunction_NewEx(ml, (PyObject*)op, module);
   54357             :     if (unlikely(!op->func)) return NULL;
   54358             : #endif
   54359         274 :     op->flags = flags;
   54360         274 :     __Pyx_CyFunction_weakreflist(op) = NULL;
   54361             : #if !CYTHON_COMPILING_IN_LIMITED_API
   54362         274 :     cf->m_ml = ml;
   54363         274 :     cf->m_self = (PyObject *) op;
   54364             : #endif
   54365         274 :     Py_XINCREF(closure);
   54366         274 :     op->func_closure = closure;
   54367             : #if !CYTHON_COMPILING_IN_LIMITED_API
   54368         274 :     Py_XINCREF(module);
   54369         274 :     cf->m_module = module;
   54370             : #endif
   54371         274 :     op->func_dict = NULL;
   54372         274 :     op->func_name = NULL;
   54373         274 :     Py_INCREF(qualname);
   54374         274 :     op->func_qualname = qualname;
   54375         274 :     op->func_doc = NULL;
   54376             : #if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
   54377             :     op->func_classobj = NULL;
   54378             : #else
   54379         274 :     ((PyCMethodObject*)op)->mm_class = NULL;
   54380             : #endif
   54381         274 :     op->func_globals = globals;
   54382         274 :     Py_INCREF(op->func_globals);
   54383         274 :     Py_XINCREF(code);
   54384         274 :     op->func_code = code;
   54385         274 :     op->defaults_pyobjects = 0;
   54386         274 :     op->defaults_size = 0;
   54387         274 :     op->defaults = NULL;
   54388         274 :     op->defaults_tuple = NULL;
   54389         274 :     op->defaults_kwdict = NULL;
   54390         274 :     op->defaults_getter = NULL;
   54391         274 :     op->func_annotations = NULL;
   54392         274 :     op->func_is_coroutine = NULL;
   54393             : #if CYTHON_METH_FASTCALL
   54394         274 :     switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) {
   54395           0 :     case METH_NOARGS:
   54396           0 :         __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS;
   54397           0 :         break;
   54398           0 :     case METH_O:
   54399           0 :         __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O;
   54400           0 :         break;
   54401           0 :     case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
   54402           0 :         __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD;
   54403           0 :         break;
   54404         162 :     case METH_FASTCALL | METH_KEYWORDS:
   54405         162 :         __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS;
   54406         162 :         break;
   54407         112 :     case METH_VARARGS | METH_KEYWORDS:
   54408         112 :         __Pyx_CyFunction_func_vectorcall(op) = NULL;
   54409         112 :         break;
   54410           0 :     default:
   54411           0 :         PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
   54412           0 :         Py_DECREF(op);
   54413             :         return NULL;
   54414             :     }
   54415             : #endif
   54416             :     return (PyObject *) op;
   54417             : }
   54418             : static int
   54419        1510 : __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
   54420             : {
   54421        1510 :     Py_CLEAR(m->func_closure);
   54422             : #if CYTHON_COMPILING_IN_LIMITED_API
   54423             :     Py_CLEAR(m->func);
   54424             : #else
   54425        1510 :     Py_CLEAR(((PyCFunctionObject*)m)->m_module);
   54426             : #endif
   54427        1510 :     Py_CLEAR(m->func_dict);
   54428        1510 :     Py_CLEAR(m->func_name);
   54429        1510 :     Py_CLEAR(m->func_qualname);
   54430        1510 :     Py_CLEAR(m->func_doc);
   54431        1510 :     Py_CLEAR(m->func_globals);
   54432        1510 :     Py_CLEAR(m->func_code);
   54433             : #if !CYTHON_COMPILING_IN_LIMITED_API
   54434             : #if PY_VERSION_HEX < 0x030900B1
   54435             :     Py_CLEAR(__Pyx_CyFunction_GetClassObj(m));
   54436             : #else
   54437             :     {
   54438        1510 :         PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class;
   54439        1510 :         ((PyCMethodObject *) (m))->mm_class = NULL;
   54440        1510 :         Py_XDECREF(cls);
   54441             :     }
   54442             : #endif
   54443             : #endif
   54444        1510 :     Py_CLEAR(m->defaults_tuple);
   54445        1510 :     Py_CLEAR(m->defaults_kwdict);
   54446        1510 :     Py_CLEAR(m->func_annotations);
   54447        1510 :     Py_CLEAR(m->func_is_coroutine);
   54448        1510 :     if (m->defaults) {
   54449             :         PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
   54450             :         int i;
   54451         738 :         for (i = 0; i < m->defaults_pyobjects; i++)
   54452         369 :             Py_XDECREF(pydefaults[i]);
   54453         369 :         PyObject_Free(m->defaults);
   54454         369 :         m->defaults = NULL;
   54455             :     }
   54456        1510 :     return 0;
   54457             : }
   54458        1320 : static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
   54459             : {
   54460        1320 :     if (__Pyx_CyFunction_weakreflist(m) != NULL)
   54461           0 :         PyObject_ClearWeakRefs((PyObject *) m);
   54462        1320 :     __Pyx_CyFunction_clear(m);
   54463        1320 :     __Pyx_PyHeapTypeObject_GC_Del(m);
   54464        1320 : }
   54465           0 : static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
   54466             : {
   54467           0 :     PyObject_GC_UnTrack(m);
   54468           0 :     __Pyx__CyFunction_dealloc(m);
   54469           0 : }
   54470       79203 : static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
   54471             : {
   54472       79203 :     Py_VISIT(m->func_closure);
   54473             : #if CYTHON_COMPILING_IN_LIMITED_API
   54474             :     Py_VISIT(m->func);
   54475             : #else
   54476       79203 :     Py_VISIT(((PyCFunctionObject*)m)->m_module);
   54477             : #endif
   54478       79203 :     Py_VISIT(m->func_dict);
   54479       79203 :     Py_VISIT(m->func_name);
   54480       79203 :     Py_VISIT(m->func_qualname);
   54481       79203 :     Py_VISIT(m->func_doc);
   54482       79203 :     Py_VISIT(m->func_globals);
   54483       79203 :     Py_VISIT(m->func_code);
   54484             : #if !CYTHON_COMPILING_IN_LIMITED_API
   54485       79203 :     Py_VISIT(__Pyx_CyFunction_GetClassObj(m));
   54486             : #endif
   54487       79203 :     Py_VISIT(m->defaults_tuple);
   54488       79203 :     Py_VISIT(m->defaults_kwdict);
   54489       79203 :     Py_VISIT(m->func_is_coroutine);
   54490       79203 :     if (m->defaults) {
   54491             :         PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
   54492             :         int i;
   54493       37324 :         for (i = 0; i < m->defaults_pyobjects; i++)
   54494       18662 :             Py_VISIT(pydefaults[i]);
   54495             :     }
   54496             :     return 0;
   54497             : }
   54498             : static PyObject*
   54499           0 : __Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
   54500             : {
   54501             : #if PY_MAJOR_VERSION >= 3
   54502           0 :     return PyUnicode_FromFormat("<cyfunction %U at %p>",
   54503             :                                 op->func_qualname, (void *)op);
   54504             : #else
   54505             :     return PyString_FromFormat("<cyfunction %s at %p>",
   54506             :                                PyString_AsString(op->func_qualname), (void *)op);
   54507             : #endif
   54508             : }
   54509      415747 : static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
   54510             : #if CYTHON_COMPILING_IN_LIMITED_API
   54511             :     PyObject *f = ((__pyx_CyFunctionObject*)func)->func;
   54512             :     PyObject *py_name = NULL;
   54513             :     PyCFunction meth;
   54514             :     int flags;
   54515             :     meth = PyCFunction_GetFunction(f);
   54516             :     if (unlikely(!meth)) return NULL;
   54517             :     flags = PyCFunction_GetFlags(f);
   54518             :     if (unlikely(flags < 0)) return NULL;
   54519             : #else
   54520      415747 :     PyCFunctionObject* f = (PyCFunctionObject*)func;
   54521      415747 :     PyCFunction meth = f->m_ml->ml_meth;
   54522      415747 :     int flags = f->m_ml->ml_flags;
   54523             : #endif
   54524      415747 :     Py_ssize_t size;
   54525      415747 :     switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
   54526           0 :     case METH_VARARGS:
   54527           0 :         if (likely(kw == NULL || PyDict_Size(kw) == 0))
   54528           0 :             return (*meth)(self, arg);
   54529             :         break;
   54530      415747 :     case METH_VARARGS | METH_KEYWORDS:
   54531      415747 :         return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw);
   54532           0 :     case METH_NOARGS:
   54533           0 :         if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
   54534             : #if CYTHON_ASSUME_SAFE_MACROS
   54535           0 :             size = PyTuple_GET_SIZE(arg);
   54536             : #else
   54537             :             size = PyTuple_Size(arg);
   54538             :             if (unlikely(size < 0)) return NULL;
   54539             : #endif
   54540           0 :             if (likely(size == 0))
   54541           0 :                 return (*meth)(self, NULL);
   54542             : #if CYTHON_COMPILING_IN_LIMITED_API
   54543             :             py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
   54544             :             if (!py_name) return NULL;
   54545             :             PyErr_Format(PyExc_TypeError,
   54546             :                 "%.200S() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
   54547             :                 py_name, size);
   54548             :             Py_DECREF(py_name);
   54549             : #else
   54550           0 :             PyErr_Format(PyExc_TypeError,
   54551             :                 "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
   54552           0 :                 f->m_ml->ml_name, size);
   54553             : #endif
   54554           0 :             return NULL;
   54555             :         }
   54556             :         break;
   54557           0 :     case METH_O:
   54558           0 :         if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
   54559             : #if CYTHON_ASSUME_SAFE_MACROS
   54560           0 :             size = PyTuple_GET_SIZE(arg);
   54561             : #else
   54562             :             size = PyTuple_Size(arg);
   54563             :             if (unlikely(size < 0)) return NULL;
   54564             : #endif
   54565           0 :             if (likely(size == 1)) {
   54566           0 :                 PyObject *result, *arg0;
   54567             :                 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   54568           0 :                 arg0 = PyTuple_GET_ITEM(arg, 0);
   54569             :                 #else
   54570             :                 arg0 = __Pyx_PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
   54571             :                 #endif
   54572           0 :                 result = (*meth)(self, arg0);
   54573             :                 #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
   54574             :                 Py_DECREF(arg0);
   54575             :                 #endif
   54576           0 :                 return result;
   54577             :             }
   54578             : #if CYTHON_COMPILING_IN_LIMITED_API
   54579             :             py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
   54580             :             if (!py_name) return NULL;
   54581             :             PyErr_Format(PyExc_TypeError,
   54582             :                 "%.200S() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
   54583             :                 py_name, size);
   54584             :             Py_DECREF(py_name);
   54585             : #else
   54586           0 :             PyErr_Format(PyExc_TypeError,
   54587             :                 "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
   54588           0 :                 f->m_ml->ml_name, size);
   54589             : #endif
   54590           0 :             return NULL;
   54591             :         }
   54592             :         break;
   54593           0 :     default:
   54594           0 :         PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
   54595           0 :         return NULL;
   54596             :     }
   54597             : #if CYTHON_COMPILING_IN_LIMITED_API
   54598             :     py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
   54599             :     if (!py_name) return NULL;
   54600             :     PyErr_Format(PyExc_TypeError, "%.200S() takes no keyword arguments",
   54601             :                  py_name);
   54602             :     Py_DECREF(py_name);
   54603             : #else
   54604           0 :     PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",
   54605           0 :                  f->m_ml->ml_name);
   54606             : #endif
   54607           0 :     return NULL;
   54608             : }
   54609      415747 : static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
   54610      415747 :     PyObject *self, *result;
   54611             : #if CYTHON_COMPILING_IN_LIMITED_API
   54612             :     self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)func)->func);
   54613             :     if (unlikely(!self) && PyErr_Occurred()) return NULL;
   54614             : #else
   54615      415747 :     self = ((PyCFunctionObject*)func)->m_self;
   54616             : #endif
   54617      415747 :     result = __Pyx_CyFunction_CallMethod(func, self, arg, kw);
   54618      415747 :     return result;
   54619             : }
   54620           0 : static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
   54621           0 :     PyObject *result;
   54622           0 :     __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
   54623             : #if CYTHON_METH_FASTCALL
   54624           0 :      __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc);
   54625           0 :     if (vc) {
   54626             : #if CYTHON_ASSUME_SAFE_MACROS
   54627           0 :         return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw);
   54628             : #else
   54629             :         (void) &__Pyx_PyVectorcall_FastCallDict;
   54630             :         return PyVectorcall_Call(func, args, kw);
   54631             : #endif
   54632             :     }
   54633             : #endif
   54634           0 :     if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
   54635           0 :         Py_ssize_t argc;
   54636           0 :         PyObject *new_args;
   54637           0 :         PyObject *self;
   54638             : #if CYTHON_ASSUME_SAFE_MACROS
   54639           0 :         argc = PyTuple_GET_SIZE(args);
   54640             : #else
   54641             :         argc = PyTuple_Size(args);
   54642             :         if (unlikely(!argc) < 0) return NULL;
   54643             : #endif
   54644           0 :         new_args = PyTuple_GetSlice(args, 1, argc);
   54645           0 :         if (unlikely(!new_args))
   54646             :             return NULL;
   54647           0 :         self = PyTuple_GetItem(args, 0);
   54648           0 :         if (unlikely(!self)) {
   54649           0 :             Py_DECREF(new_args);
   54650             : #if PY_MAJOR_VERSION > 2
   54651           0 :             PyErr_Format(PyExc_TypeError,
   54652             :                          "unbound method %.200S() needs an argument",
   54653             :                          cyfunc->func_qualname);
   54654             : #else
   54655             :             PyErr_SetString(PyExc_TypeError,
   54656             :                             "unbound method needs an argument");
   54657             : #endif
   54658           0 :             return NULL;
   54659             :         }
   54660           0 :         result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
   54661           0 :         Py_DECREF(new_args);
   54662             :     } else {
   54663           0 :         result = __Pyx_CyFunction_Call(func, args, kw);
   54664             :     }
   54665             :     return result;
   54666             : }
   54667             : #if CYTHON_METH_FASTCALL
   54668      196557 : static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(__pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames)
   54669             : {
   54670      196557 :     int ret = 0;
   54671      196557 :     if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
   54672           0 :         if (unlikely(nargs < 1)) {
   54673           0 :             PyErr_Format(PyExc_TypeError, "%.200s() needs an argument",
   54674           0 :                          ((PyCFunctionObject*)cyfunc)->m_ml->ml_name);
   54675           0 :             return -1;
   54676             :         }
   54677             :         ret = 1;
   54678             :     }
   54679      196557 :     if (unlikely(kwnames) && unlikely(PyTuple_GET_SIZE(kwnames))) {
   54680           0 :         PyErr_Format(PyExc_TypeError,
   54681           0 :                      "%.200s() takes no keyword arguments", ((PyCFunctionObject*)cyfunc)->m_ml->ml_name);
   54682           0 :         return -1;
   54683             :     }
   54684             :     return ret;
   54685             : }
   54686           0 : static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
   54687             : {
   54688           0 :     __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
   54689           0 :     PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
   54690             : #if CYTHON_BACKPORT_VECTORCALL
   54691             :     Py_ssize_t nargs = (Py_ssize_t)nargsf;
   54692             : #else
   54693           0 :     Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
   54694             : #endif
   54695           0 :     PyObject *self;
   54696           0 :     switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
   54697           0 :     case 1:
   54698           0 :         self = args[0];
   54699           0 :         args += 1;
   54700           0 :         nargs -= 1;
   54701           0 :         break;
   54702           0 :     case 0:
   54703           0 :         self = ((PyCFunctionObject*)cyfunc)->m_self;
   54704           0 :         break;
   54705             :     default:
   54706             :         return NULL;
   54707             :     }
   54708           0 :     if (unlikely(nargs != 0)) {
   54709           0 :         PyErr_Format(PyExc_TypeError,
   54710             :             "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
   54711             :             def->ml_name, nargs);
   54712           0 :         return NULL;
   54713             :     }
   54714           0 :     return def->ml_meth(self, NULL);
   54715             : }
   54716           0 : static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
   54717             : {
   54718           0 :     __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
   54719           0 :     PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
   54720             : #if CYTHON_BACKPORT_VECTORCALL
   54721             :     Py_ssize_t nargs = (Py_ssize_t)nargsf;
   54722             : #else
   54723           0 :     Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
   54724             : #endif
   54725           0 :     PyObject *self;
   54726           0 :     switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
   54727           0 :     case 1:
   54728           0 :         self = args[0];
   54729           0 :         args += 1;
   54730           0 :         nargs -= 1;
   54731           0 :         break;
   54732           0 :     case 0:
   54733           0 :         self = ((PyCFunctionObject*)cyfunc)->m_self;
   54734           0 :         break;
   54735             :     default:
   54736             :         return NULL;
   54737             :     }
   54738           0 :     if (unlikely(nargs != 1)) {
   54739           0 :         PyErr_Format(PyExc_TypeError,
   54740             :             "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
   54741             :             def->ml_name, nargs);
   54742           0 :         return NULL;
   54743             :     }
   54744           0 :     return def->ml_meth(self, args[0]);
   54745             : }
   54746      196557 : static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
   54747             : {
   54748      196557 :     __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
   54749      196557 :     PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
   54750             : #if CYTHON_BACKPORT_VECTORCALL
   54751             :     Py_ssize_t nargs = (Py_ssize_t)nargsf;
   54752             : #else
   54753      196557 :     Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
   54754             : #endif
   54755      196557 :     PyObject *self;
   54756      196557 :     switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
   54757           0 :     case 1:
   54758           0 :         self = args[0];
   54759           0 :         args += 1;
   54760           0 :         nargs -= 1;
   54761           0 :         break;
   54762      196557 :     case 0:
   54763      196557 :         self = ((PyCFunctionObject*)cyfunc)->m_self;
   54764      196557 :         break;
   54765             :     default:
   54766             :         return NULL;
   54767             :     }
   54768      196557 :     return ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))def->ml_meth)(self, args, nargs, kwnames);
   54769             : }
   54770           0 : static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
   54771             : {
   54772           0 :     __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
   54773           0 :     PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
   54774           0 :     PyTypeObject *cls = (PyTypeObject *) __Pyx_CyFunction_GetClassObj(cyfunc);
   54775             : #if CYTHON_BACKPORT_VECTORCALL
   54776             :     Py_ssize_t nargs = (Py_ssize_t)nargsf;
   54777             : #else
   54778           0 :     Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
   54779             : #endif
   54780           0 :     PyObject *self;
   54781           0 :     switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
   54782           0 :     case 1:
   54783           0 :         self = args[0];
   54784           0 :         args += 1;
   54785           0 :         nargs -= 1;
   54786           0 :         break;
   54787           0 :     case 0:
   54788           0 :         self = ((PyCFunctionObject*)cyfunc)->m_self;
   54789           0 :         break;
   54790             :     default:
   54791             :         return NULL;
   54792             :     }
   54793           0 :     return ((__Pyx_PyCMethod)(void(*)(void))def->ml_meth)(self, cls, args, (size_t)nargs, kwnames);
   54794             : }
   54795             : #endif
   54796             : #if CYTHON_USE_TYPE_SPECS
   54797             : static PyType_Slot __pyx_CyFunctionType_slots[] = {
   54798             :     {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc},
   54799             :     {Py_tp_repr, (void *)__Pyx_CyFunction_repr},
   54800             :     {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod},
   54801             :     {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse},
   54802             :     {Py_tp_clear, (void *)__Pyx_CyFunction_clear},
   54803             :     {Py_tp_methods, (void *)__pyx_CyFunction_methods},
   54804             :     {Py_tp_members, (void *)__pyx_CyFunction_members},
   54805             :     {Py_tp_getset, (void *)__pyx_CyFunction_getsets},
   54806             :     {Py_tp_descr_get, (void *)__Pyx_PyMethod_New},
   54807             :     {0, 0},
   54808             : };
   54809             : static PyType_Spec __pyx_CyFunctionType_spec = {
   54810             :     __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
   54811             :     sizeof(__pyx_CyFunctionObject),
   54812             :     0,
   54813             : #ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
   54814             :     Py_TPFLAGS_METHOD_DESCRIPTOR |
   54815             : #endif
   54816             : #if (defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL)
   54817             :     _Py_TPFLAGS_HAVE_VECTORCALL |
   54818             : #endif
   54819             :     Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
   54820             :     __pyx_CyFunctionType_slots
   54821             : };
   54822             : #else
   54823             : static PyTypeObject __pyx_CyFunctionType_type = {
   54824             :     PyVarObject_HEAD_INIT(0, 0)
   54825             :     __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
   54826             :     sizeof(__pyx_CyFunctionObject),
   54827             :     0,
   54828             :     (destructor) __Pyx_CyFunction_dealloc,
   54829             : #if !CYTHON_METH_FASTCALL
   54830             :     0,
   54831             : #elif CYTHON_BACKPORT_VECTORCALL
   54832             :     (printfunc)offsetof(__pyx_CyFunctionObject, func_vectorcall),
   54833             : #else
   54834             :     offsetof(PyCFunctionObject, vectorcall),
   54835             : #endif
   54836             :     0,
   54837             :     0,
   54838             : #if PY_MAJOR_VERSION < 3
   54839             :     0,
   54840             : #else
   54841             :     0,
   54842             : #endif
   54843             :     (reprfunc) __Pyx_CyFunction_repr,
   54844             :     0,
   54845             :     0,
   54846             :     0,
   54847             :     0,
   54848             :     __Pyx_CyFunction_CallAsMethod,
   54849             :     0,
   54850             :     0,
   54851             :     0,
   54852             :     0,
   54853             : #ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
   54854             :     Py_TPFLAGS_METHOD_DESCRIPTOR |
   54855             : #endif
   54856             : #if defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL
   54857             :     _Py_TPFLAGS_HAVE_VECTORCALL |
   54858             : #endif
   54859             :     Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
   54860             :     0,
   54861             :     (traverseproc) __Pyx_CyFunction_traverse,
   54862             :     (inquiry) __Pyx_CyFunction_clear,
   54863             :     0,
   54864             : #if PY_VERSION_HEX < 0x030500A0
   54865             :     offsetof(__pyx_CyFunctionObject, func_weakreflist),
   54866             : #else
   54867             :     offsetof(PyCFunctionObject, m_weakreflist),
   54868             : #endif
   54869             :     0,
   54870             :     0,
   54871             :     __pyx_CyFunction_methods,
   54872             :     __pyx_CyFunction_members,
   54873             :     __pyx_CyFunction_getsets,
   54874             :     0,
   54875             :     0,
   54876             :     __Pyx_PyMethod_New,
   54877             :     0,
   54878             :     offsetof(__pyx_CyFunctionObject, func_dict),
   54879             :     0,
   54880             :     0,
   54881             :     0,
   54882             :     0,
   54883             :     0,
   54884             :     0,
   54885             :     0,
   54886             :     0,
   54887             :     0,
   54888             :     0,
   54889             :     0,
   54890             :     0,
   54891             : #if PY_VERSION_HEX >= 0x030400a1
   54892             :     0,
   54893             : #endif
   54894             : #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
   54895             :     0,
   54896             : #endif
   54897             : #if __PYX_NEED_TP_PRINT_SLOT
   54898             :     0,
   54899             : #endif
   54900             : #if PY_VERSION_HEX >= 0x030C0000
   54901             :     0,
   54902             : #endif
   54903             : #if PY_VERSION_HEX >= 0x030d00A4
   54904             :     0,
   54905             : #endif
   54906             : #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
   54907             :     0,
   54908             : #endif
   54909             : };
   54910             : #endif
   54911           3 : static int __pyx_CyFunction_init(PyObject *module) {
   54912             : #if CYTHON_USE_TYPE_SPECS
   54913             :     __pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CyFunctionType_spec, NULL);
   54914             : #else
   54915           3 :     CYTHON_UNUSED_VAR(module);
   54916           3 :     __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type);
   54917             : #endif
   54918           3 :     if (unlikely(__pyx_CyFunctionType == NULL)) {
   54919           0 :         return -1;
   54920             :     }
   54921             :     return 0;
   54922             : }
   54923         100 : static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) {
   54924         100 :     __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
   54925         100 :     m->defaults = PyObject_Malloc(size);
   54926         100 :     if (unlikely(!m->defaults))
   54927           0 :         return PyErr_NoMemory();
   54928         100 :     memset(m->defaults, 0, size);
   54929         100 :     m->defaults_pyobjects = pyobjects;
   54930         100 :     m->defaults_size = size;
   54931         100 :     return m->defaults;
   54932             : }
   54933          18 : static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
   54934          18 :     __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
   54935          18 :     m->defaults_tuple = tuple;
   54936          18 :     Py_INCREF(tuple);
   54937             : }
   54938             : static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
   54939             :     __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
   54940             :     m->defaults_kwdict = dict;
   54941             :     Py_INCREF(dict);
   54942             : }
   54943             : static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
   54944             :     __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
   54945             :     m->func_annotations = dict;
   54946             :     Py_INCREF(dict);
   54947             : }
   54948             : 
   54949             : /* CythonFunction */
   54950         162 :   static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
   54951             :                                       PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
   54952         162 :     PyObject *op = __Pyx_CyFunction_Init(
   54953         162 :         PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType),
   54954             :         ml, flags, qualname, closure, module, globals, code
   54955             :     );
   54956         162 :     if (likely(op)) {
   54957         162 :         PyObject_GC_Track(op);
   54958             :     }
   54959         162 :     return op;
   54960             : }
   54961             : 
   54962             : /* FusedFunction */
   54963             :   static PyObject *
   54964         112 : __pyx_FusedFunction_New(PyMethodDef *ml, int flags,
   54965             :                         PyObject *qualname, PyObject *closure,
   54966             :                         PyObject *module, PyObject *globals,
   54967             :                         PyObject *code)
   54968             : {
   54969         112 :     PyObject *op = __Pyx_CyFunction_Init(
   54970         112 :         PyObject_GC_New(__pyx_CyFunctionObject, __pyx_FusedFunctionType),
   54971             :         ml, flags, qualname, closure, module, globals, code
   54972             :     );
   54973         112 :     if (likely(op)) {
   54974         112 :         __pyx_FusedFunctionObject *fusedfunc = (__pyx_FusedFunctionObject *) op;
   54975         112 :         fusedfunc->__signatures__ = NULL;
   54976         112 :         fusedfunc->self = NULL;
   54977         112 :         PyObject_GC_Track(op);
   54978             :     }
   54979         112 :     return op;
   54980             : }
   54981             : static void
   54982        1320 : __pyx_FusedFunction_dealloc(__pyx_FusedFunctionObject *self)
   54983             : {
   54984        1320 :     PyObject_GC_UnTrack(self);
   54985        1320 :     Py_CLEAR(self->self);
   54986        1320 :     Py_CLEAR(self->__signatures__);
   54987        1320 :     __Pyx__CyFunction_dealloc((__pyx_CyFunctionObject *) self);
   54988        1320 : }
   54989             : static int
   54990       79203 : __pyx_FusedFunction_traverse(__pyx_FusedFunctionObject *self,
   54991             :                              visitproc visit,
   54992             :                              void *arg)
   54993             : {
   54994       79203 :     Py_VISIT(self->self);
   54995       79203 :     Py_VISIT(self->__signatures__);
   54996       79203 :     return __Pyx_CyFunction_traverse((__pyx_CyFunctionObject *) self, visit, arg);
   54997             : }
   54998             : static int
   54999         190 : __pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self)
   55000             : {
   55001         190 :     Py_CLEAR(self->self);
   55002         190 :     Py_CLEAR(self->__signatures__);
   55003         190 :     return __Pyx_CyFunction_clear((__pyx_CyFunctionObject *) self);
   55004             : }
   55005             : static PyObject *
   55006          94 : __pyx_FusedFunction_descr_get(PyObject *self, PyObject *obj, PyObject *type)
   55007             : {
   55008          94 :     __pyx_FusedFunctionObject *func, *meth;
   55009          94 :     func = (__pyx_FusedFunctionObject *) self;
   55010          94 :     if (func->self || func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD) {
   55011           0 :         Py_INCREF(self);
   55012           0 :         return self;
   55013             :     }
   55014          94 :     if (obj == Py_None)
   55015           0 :         obj = NULL;
   55016          94 :     if (func->func.flags & __Pyx_CYFUNCTION_CLASSMETHOD)
   55017           0 :         obj = type;
   55018          94 :     if (obj == NULL) {
   55019           0 :         Py_INCREF(self);
   55020           0 :         return self;
   55021             :     }
   55022          94 :     meth = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_New(
   55023             :                     ((PyCFunctionObject *) func)->m_ml,
   55024             :                     ((__pyx_CyFunctionObject *) func)->flags,
   55025             :                     ((__pyx_CyFunctionObject *) func)->func_qualname,
   55026             :                     ((__pyx_CyFunctionObject *) func)->func_closure,
   55027             :                     ((PyCFunctionObject *) func)->m_module,
   55028             :                     ((__pyx_CyFunctionObject *) func)->func_globals,
   55029             :                     ((__pyx_CyFunctionObject *) func)->func_code);
   55030          94 :     if (unlikely(!meth))
   55031             :         return NULL;
   55032          94 :     if (func->func.defaults) {
   55033          94 :         PyObject **pydefaults;
   55034          94 :         int i;
   55035          94 :         if (unlikely(!__Pyx_CyFunction_InitDefaults(
   55036             :                 (PyObject*)meth,
   55037             :                 func->func.defaults_size,
   55038             :                 func->func.defaults_pyobjects))) {
   55039           0 :             Py_XDECREF((PyObject*)meth);
   55040           0 :             return NULL;
   55041             :         }
   55042          94 :         memcpy(meth->func.defaults, func->func.defaults, func->func.defaults_size);
   55043          94 :         pydefaults = __Pyx_CyFunction_Defaults(PyObject *, meth);
   55044         188 :         for (i = 0; i < meth->func.defaults_pyobjects; i++)
   55045         188 :             Py_XINCREF(pydefaults[i]);
   55046             :     }
   55047          94 :     __Pyx_CyFunction_SetClassObj(meth, __Pyx_CyFunction_GetClassObj(func));
   55048          94 :     Py_XINCREF(func->__signatures__);
   55049          94 :     meth->__signatures__ = func->__signatures__;
   55050          94 :     Py_XINCREF(func->func.defaults_tuple);
   55051          94 :     meth->func.defaults_tuple = func->func.defaults_tuple;
   55052          94 :     Py_XINCREF(obj);
   55053          94 :     meth->self = obj;
   55054          94 :     return (PyObject *) meth;
   55055             : }
   55056             : static PyObject *
   55057         652 : _obj_to_string(PyObject *obj)
   55058             : {
   55059         652 :     if (PyUnicode_CheckExact(obj))
   55060         708 :         return __Pyx_NewRef(obj);
   55061             : #if PY_MAJOR_VERSION == 2
   55062             :     else if (PyString_Check(obj))
   55063             :         return PyUnicode_FromEncodedObject(obj, NULL, "strict");
   55064             : #endif
   55065           0 :     else if (PyType_Check(obj))
   55066           0 :         return PyObject_GetAttr(obj, __pyx_n_s_name_2);
   55067             :     else
   55068           0 :         return PyObject_Unicode(obj);
   55069             : }
   55070             : static PyObject *
   55071         640 : __pyx_FusedFunction_getitem(__pyx_FusedFunctionObject *self, PyObject *idx)
   55072             : {
   55073         640 :     PyObject *signature = NULL;
   55074         640 :     PyObject *unbound_result_func;
   55075         640 :     PyObject *result_func = NULL;
   55076         640 :     if (unlikely(self->__signatures__ == NULL)) {
   55077           0 :         PyErr_SetString(PyExc_TypeError, "Function is not fused");
   55078           0 :         return NULL;
   55079             :     }
   55080         640 :     if (PyTuple_Check(idx)) {
   55081         123 :         Py_ssize_t n = PyTuple_GET_SIZE(idx);
   55082         123 :         PyObject *list = PyList_New(n);
   55083         123 :         int i;
   55084         123 :         if (unlikely(!list))
   55085             :             return NULL;
   55086         258 :         for (i = 0; i < n; i++) {
   55087         135 :             PyObject *string;
   55088             : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   55089         135 :             PyObject *item = PyTuple_GET_ITEM(idx, i);
   55090             : #else
   55091             :             PyObject *item = PySequence_ITEM(idx, i);  if (unlikely(!item)) goto __pyx_err;
   55092             : #endif
   55093         135 :             string = _obj_to_string(item);
   55094             : #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
   55095             :             Py_DECREF(item);
   55096             : #endif
   55097         135 :             if (unlikely(!string)) goto __pyx_err;
   55098         135 :             PyList_SET_ITEM(list, i, string);
   55099             :         }
   55100         123 :         signature = PyUnicode_Join(__pyx_kp_u__12, list);
   55101         123 : __pyx_err:;
   55102         123 :         Py_DECREF(list);
   55103             :     } else {
   55104         517 :         signature = _obj_to_string(idx);
   55105             :     }
   55106         640 :     if (unlikely(!signature))
   55107             :         return NULL;
   55108         640 :     unbound_result_func = PyObject_GetItem(self->__signatures__, signature);
   55109         640 :     if (likely(unbound_result_func)) {
   55110         640 :         if (self->self) {
   55111           0 :             __pyx_FusedFunctionObject *unbound = (__pyx_FusedFunctionObject *) unbound_result_func;
   55112           0 :             __Pyx_CyFunction_SetClassObj(unbound, __Pyx_CyFunction_GetClassObj(self));
   55113           0 :             result_func = __pyx_FusedFunction_descr_get(unbound_result_func,
   55114             :                                                         self->self, self->self);
   55115             :         } else {
   55116         640 :             result_func = unbound_result_func;
   55117         640 :             Py_INCREF(result_func);
   55118             :         }
   55119             :     }
   55120         640 :     Py_DECREF(signature);
   55121         640 :     Py_XDECREF(unbound_result_func);
   55122         640 :     return result_func;
   55123             : }
   55124             : static PyObject *
   55125      415747 : __pyx_FusedFunction_callfunction(PyObject *func, PyObject *args, PyObject *kw)
   55126             : {
   55127      415747 :      __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
   55128      415747 :     int static_specialized = (cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD &&
   55129           0 :                               !((__pyx_FusedFunctionObject *) func)->__signatures__);
   55130      415747 :     if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !static_specialized) {
   55131           0 :         return __Pyx_CyFunction_CallAsMethod(func, args, kw);
   55132             :     } else {
   55133      415747 :         return __Pyx_CyFunction_Call(func, args, kw);
   55134             :     }
   55135             : }
   55136             : static PyObject *
   55137      249991 : __pyx_FusedFunction_call(PyObject *func, PyObject *args, PyObject *kw)
   55138             : {
   55139      249991 :     __pyx_FusedFunctionObject *binding_func = (__pyx_FusedFunctionObject *) func;
   55140      249991 :     Py_ssize_t argc = PyTuple_GET_SIZE(args);
   55141      249991 :     PyObject *new_args = NULL;
   55142      249991 :     __pyx_FusedFunctionObject *new_func = NULL;
   55143      249991 :     PyObject *result = NULL;
   55144      249991 :     int is_staticmethod = binding_func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD;
   55145      249991 :     if (binding_func->self) {
   55146          94 :         PyObject *self;
   55147          94 :         Py_ssize_t i;
   55148          94 :         new_args = PyTuple_New(argc + 1);
   55149          94 :         if (unlikely(!new_args))
   55150             :             return NULL;
   55151          94 :         self = binding_func->self;
   55152          94 :         Py_INCREF(self);
   55153          94 :         PyTuple_SET_ITEM(new_args, 0, self);
   55154          94 :         self = NULL;
   55155         282 :         for (i = 0; i < argc; i++) {
   55156             : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
   55157         188 :             PyObject *item = PyTuple_GET_ITEM(args, i);
   55158         188 :             Py_INCREF(item);
   55159             : #else
   55160             :             PyObject *item = PySequence_ITEM(args, i);  if (unlikely(!item)) goto bad;
   55161             : #endif
   55162         188 :             PyTuple_SET_ITEM(new_args, i + 1, item);
   55163             :         }
   55164             :         args = new_args;
   55165             :     }
   55166      249991 :     if (binding_func->__signatures__) {
   55167      165774 :         PyObject *tup;
   55168      165774 :         if (is_staticmethod && binding_func->func.flags & __Pyx_CYFUNCTION_CCLASS) {
   55169           0 :             tup = PyTuple_Pack(3, args,
   55170             :                                kw == NULL ? Py_None : kw,
   55171             :                                binding_func->func.defaults_tuple);
   55172           0 :             if (unlikely(!tup)) goto bad;
   55173           0 :             new_func = (__pyx_FusedFunctionObject *) __Pyx_CyFunction_CallMethod(
   55174             :                 func, binding_func->__signatures__, tup, NULL);
   55175             :         } else {
   55176      330317 :             tup = PyTuple_Pack(4, binding_func->__signatures__, args,
   55177             :                                kw == NULL ? Py_None : kw,
   55178             :                                binding_func->func.defaults_tuple);
   55179      165774 :             if (unlikely(!tup)) goto bad;
   55180      165774 :             new_func = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_callfunction(func, tup, NULL);
   55181             :         }
   55182      165774 :         Py_DECREF(tup);
   55183      165774 :         if (unlikely(!new_func))
   55184          18 :             goto bad;
   55185      165756 :         __Pyx_CyFunction_SetClassObj(new_func, __Pyx_CyFunction_GetClassObj(binding_func));
   55186      165756 :         func = (PyObject *) new_func;
   55187             :     }
   55188      249973 :     result = __pyx_FusedFunction_callfunction(func, args, kw);
   55189      249991 : bad:
   55190      249991 :     Py_XDECREF(new_args);
   55191      249991 :     Py_XDECREF((PyObject *) new_func);
   55192      249991 :     return result;
   55193             : }
   55194             : static PyMemberDef __pyx_FusedFunction_members[] = {
   55195             :     {(char *) "__signatures__",
   55196             :      T_OBJECT,
   55197             :      offsetof(__pyx_FusedFunctionObject, __signatures__),
   55198             :      READONLY,
   55199             :      0},
   55200             :     {(char *) "__self__", T_OBJECT_EX, offsetof(__pyx_FusedFunctionObject, self), READONLY, 0},
   55201             :     {0, 0, 0, 0, 0},
   55202             : };
   55203             : static PyGetSetDef __pyx_FusedFunction_getsets[] = {
   55204             :     {(char *) "__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
   55205             :     {0, 0, 0, 0, 0}
   55206             : };
   55207             : #if CYTHON_USE_TYPE_SPECS
   55208             : static PyType_Slot __pyx_FusedFunctionType_slots[] = {
   55209             :     {Py_tp_dealloc, (void *)__pyx_FusedFunction_dealloc},
   55210             :     {Py_tp_call, (void *)__pyx_FusedFunction_call},
   55211             :     {Py_tp_traverse, (void *)__pyx_FusedFunction_traverse},
   55212             :     {Py_tp_clear, (void *)__pyx_FusedFunction_clear},
   55213             :     {Py_tp_members, (void *)__pyx_FusedFunction_members},
   55214             :     {Py_tp_getset, (void *)__pyx_FusedFunction_getsets},
   55215             :     {Py_tp_descr_get, (void *)__pyx_FusedFunction_descr_get},
   55216             :     {Py_mp_subscript, (void *)__pyx_FusedFunction_getitem},
   55217             :     {0, 0},
   55218             : };
   55219             : static PyType_Spec __pyx_FusedFunctionType_spec = {
   55220             :     __PYX_TYPE_MODULE_PREFIX "fused_cython_function",
   55221             :     sizeof(__pyx_FusedFunctionObject),
   55222             :     0,
   55223             :     Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
   55224             :     __pyx_FusedFunctionType_slots
   55225             : };
   55226             : #else
   55227             : static PyMappingMethods __pyx_FusedFunction_mapping_methods = {
   55228             :     0,
   55229             :     (binaryfunc) __pyx_FusedFunction_getitem,
   55230             :     0,
   55231             : };
   55232             : static PyTypeObject __pyx_FusedFunctionType_type = {
   55233             :     PyVarObject_HEAD_INIT(0, 0)
   55234             :     __PYX_TYPE_MODULE_PREFIX "fused_cython_function",
   55235             :     sizeof(__pyx_FusedFunctionObject),
   55236             :     0,
   55237             :     (destructor) __pyx_FusedFunction_dealloc,
   55238             :     0,
   55239             :     0,
   55240             :     0,
   55241             : #if PY_MAJOR_VERSION < 3
   55242             :     0,
   55243             : #else
   55244             :     0,
   55245             : #endif
   55246             :     0,
   55247             :     0,
   55248             :     0,
   55249             :     &__pyx_FusedFunction_mapping_methods,
   55250             :     0,
   55251             :     (ternaryfunc) __pyx_FusedFunction_call,
   55252             :     0,
   55253             :     0,
   55254             :     0,
   55255             :     0,
   55256             :     Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
   55257             :     0,
   55258             :     (traverseproc) __pyx_FusedFunction_traverse,
   55259             :     (inquiry) __pyx_FusedFunction_clear,
   55260             :     0,
   55261             :     0,
   55262             :     0,
   55263             :     0,
   55264             :     0,
   55265             :     __pyx_FusedFunction_members,
   55266             :     __pyx_FusedFunction_getsets,
   55267             :     &__pyx_CyFunctionType_type,
   55268             :     0,
   55269             :     __pyx_FusedFunction_descr_get,
   55270             :     0,
   55271             :     0,
   55272             :     0,
   55273             :     0,
   55274             :     0,
   55275             :     0,
   55276             :     0,
   55277             :     0,
   55278             :     0,
   55279             :     0,
   55280             :     0,
   55281             :     0,
   55282             :     0,
   55283             :     0,
   55284             : #if PY_VERSION_HEX >= 0x030400a1
   55285             :     0,
   55286             : #endif
   55287             : #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
   55288             :     0,
   55289             : #endif
   55290             : #if __PYX_NEED_TP_PRINT_SLOT
   55291             :     0,
   55292             : #endif
   55293             : #if PY_VERSION_HEX >= 0x030C0000
   55294             :     0,
   55295             : #endif
   55296             : #if PY_VERSION_HEX >= 0x030d00A4
   55297             :     0,
   55298             : #endif
   55299             : #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
   55300             :     0,
   55301             : #endif
   55302             : };
   55303             : #endif
   55304           3 : static int __pyx_FusedFunction_init(PyObject *module) {
   55305             : #if CYTHON_USE_TYPE_SPECS
   55306             :     PyObject *bases = PyTuple_Pack(1, __pyx_CyFunctionType);
   55307             :     if (unlikely(!bases)) {
   55308             :         return -1;
   55309             :     }
   55310             :     __pyx_FusedFunctionType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_FusedFunctionType_spec, bases);
   55311             :     Py_DECREF(bases);
   55312             : #else
   55313           3 :     CYTHON_UNUSED_VAR(module);
   55314           3 :     __pyx_FusedFunctionType_type.tp_base = __pyx_CyFunctionType;
   55315           3 :     __pyx_FusedFunctionType = __Pyx_FetchCommonType(&__pyx_FusedFunctionType_type);
   55316             : #endif
   55317           3 :     if (unlikely(__pyx_FusedFunctionType == NULL)) {
   55318           0 :         return -1;
   55319             :     }
   55320             :     return 0;
   55321             : }
   55322             : 
   55323             : /* CLineInTraceback */
   55324             :   #ifndef CYTHON_CLINE_IN_TRACEBACK
   55325        2758 : static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) {
   55326        2758 :     PyObject *use_cline;
   55327        2758 :     PyObject *ptype, *pvalue, *ptraceback;
   55328             : #if CYTHON_COMPILING_IN_CPYTHON
   55329        2758 :     PyObject **cython_runtime_dict;
   55330             : #endif
   55331        2758 :     CYTHON_MAYBE_UNUSED_VAR(tstate);
   55332        2758 :     if (unlikely(!__pyx_cython_runtime)) {
   55333             :         return c_line;
   55334             :     }
   55335        2758 :     __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
   55336             : #if CYTHON_COMPILING_IN_CPYTHON
   55337        2758 :     cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
   55338        2758 :     if (likely(cython_runtime_dict)) {
   55339        2758 :         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
   55340             :             use_cline, *cython_runtime_dict,
   55341             :             __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
   55342             :     } else
   55343             : #endif
   55344             :     {
   55345           0 :       PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStrNoError(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
   55346           0 :       if (use_cline_obj) {
   55347           0 :         use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
   55348           0 :         Py_DECREF(use_cline_obj);
   55349             :       } else {
   55350           0 :         PyErr_Clear();
   55351           0 :         use_cline = NULL;
   55352             :       }
   55353             :     }
   55354        2758 :     if (!use_cline) {
   55355           0 :         c_line = 0;
   55356           0 :         (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
   55357             :     }
   55358        2758 :     else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
   55359             :         c_line = 0;
   55360             :     }
   55361        2758 :     __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
   55362        2758 :     return c_line;
   55363             : }
   55364             : #endif
   55365             : 
   55366             : /* CodeObjectCache */
   55367             :   #if !CYTHON_COMPILING_IN_LIMITED_API
   55368        2782 : static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
   55369        2782 :     int start = 0, mid = 0, end = count - 1;
   55370        2782 :     if (end >= 0 && code_line > entries[end].code_line) {
   55371             :         return count;
   55372             :     }
   55373        8074 :     while (start < end) {
   55374        7987 :         mid = start + (end - start) / 2;
   55375        7987 :         if (code_line < entries[mid].code_line) {
   55376             :             end = mid;
   55377        3891 :         } else if (code_line > entries[mid].code_line) {
   55378        1202 :              start = mid + 1;
   55379             :         } else {
   55380        2689 :             return mid;
   55381             :         }
   55382             :     }
   55383          87 :     if (code_line <= entries[mid].code_line) {
   55384             :         return mid;
   55385             :     } else {
   55386          57 :         return mid + 1;
   55387             :     }
   55388             : }
   55389        2758 : static PyCodeObject *__pyx_find_code_object(int code_line) {
   55390        2758 :     PyCodeObject* code_object;
   55391        2758 :     int pos;
   55392        2758 :     if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
   55393             :         return NULL;
   55394             :     }
   55395        2755 :     pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
   55396        2755 :     if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
   55397             :         return NULL;
   55398             :     }
   55399        2728 :     code_object = __pyx_code_cache.entries[pos].code_object;
   55400        2728 :     Py_INCREF(code_object);
   55401             :     return code_object;
   55402             : }
   55403          30 : static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
   55404          30 :     int pos, i;
   55405          30 :     __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
   55406          30 :     if (unlikely(!code_line)) {
   55407             :         return;
   55408             :     }
   55409          30 :     if (unlikely(!entries)) {
   55410           3 :         entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
   55411           3 :         if (likely(entries)) {
   55412           3 :             __pyx_code_cache.entries = entries;
   55413           3 :             __pyx_code_cache.max_count = 64;
   55414           3 :             __pyx_code_cache.count = 1;
   55415           3 :             entries[0].code_line = code_line;
   55416           3 :             entries[0].code_object = code_object;
   55417           3 :             Py_INCREF(code_object);
   55418             :         }
   55419           3 :         return;
   55420             :     }
   55421          27 :     pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
   55422          27 :     if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
   55423           0 :         PyCodeObject* tmp = entries[pos].code_object;
   55424           0 :         entries[pos].code_object = code_object;
   55425           0 :         Py_DECREF(tmp);
   55426           0 :         return;
   55427             :     }
   55428          27 :     if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
   55429           0 :         int new_max = __pyx_code_cache.max_count + 64;
   55430           0 :         entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
   55431           0 :             __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
   55432           0 :         if (unlikely(!entries)) {
   55433             :             return;
   55434             :         }
   55435           0 :         __pyx_code_cache.entries = entries;
   55436           0 :         __pyx_code_cache.max_count = new_max;
   55437             :     }
   55438         123 :     for (i=__pyx_code_cache.count; i>pos; i--) {
   55439          96 :         entries[i] = entries[i-1];
   55440             :     }
   55441          27 :     entries[pos].code_line = code_line;
   55442          27 :     entries[pos].code_object = code_object;
   55443          27 :     __pyx_code_cache.count++;
   55444          27 :     Py_INCREF(code_object);
   55445             : }
   55446             : #endif
   55447             : 
   55448             : /* AddTraceback */
   55449             :   #include "compile.h"
   55450             : #include "frameobject.h"
   55451             : #include "traceback.h"
   55452             : #if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API
   55453             :   #ifndef Py_BUILD_CORE
   55454             :     #define Py_BUILD_CORE 1
   55455             :   #endif
   55456             :   #include "internal/pycore_frame.h"
   55457             : #endif
   55458             : #if CYTHON_COMPILING_IN_LIMITED_API
   55459             : static PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict,
   55460             :                                                        PyObject *firstlineno, PyObject *name) {
   55461             :     PyObject *replace = NULL;
   55462             :     if (unlikely(PyDict_SetItemString(scratch_dict, "co_firstlineno", firstlineno))) return NULL;
   55463             :     if (unlikely(PyDict_SetItemString(scratch_dict, "co_name", name))) return NULL;
   55464             :     replace = PyObject_GetAttrString(code, "replace");
   55465             :     if (likely(replace)) {
   55466             :         PyObject *result;
   55467             :         result = PyObject_Call(replace, __pyx_empty_tuple, scratch_dict);
   55468             :         Py_DECREF(replace);
   55469             :         return result;
   55470             :     }
   55471             :     PyErr_Clear();
   55472             :     #if __PYX_LIMITED_VERSION_HEX < 0x030780000
   55473             :     {
   55474             :         PyObject *compiled = NULL, *result = NULL;
   55475             :         if (unlikely(PyDict_SetItemString(scratch_dict, "code", code))) return NULL;
   55476             :         if (unlikely(PyDict_SetItemString(scratch_dict, "type", (PyObject*)(&PyType_Type)))) return NULL;
   55477             :         compiled = Py_CompileString(
   55478             :             "out = type(code)(\n"
   55479             :             "  code.co_argcount, code.co_kwonlyargcount, code.co_nlocals, code.co_stacksize,\n"
   55480             :             "  code.co_flags, code.co_code, code.co_consts, code.co_names,\n"
   55481             :             "  code.co_varnames, code.co_filename, co_name, co_firstlineno,\n"
   55482             :             "  code.co_lnotab)\n", "<dummy>", Py_file_input);
   55483             :         if (!compiled) return NULL;
   55484             :         result = PyEval_EvalCode(compiled, scratch_dict, scratch_dict);
   55485             :         Py_DECREF(compiled);
   55486             :         if (!result) PyErr_Print();
   55487             :         Py_DECREF(result);
   55488             :         result = PyDict_GetItemString(scratch_dict, "out");
   55489             :         if (result) Py_INCREF(result);
   55490             :         return result;
   55491             :     }
   55492             :     #else
   55493             :     return NULL;
   55494             :     #endif
   55495             : }
   55496             : static void __Pyx_AddTraceback(const char *funcname, int c_line,
   55497             :                                int py_line, const char *filename) {
   55498             :     PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL;
   55499             :     PyObject *replace = NULL, *getframe = NULL, *frame = NULL;
   55500             :     PyObject *exc_type, *exc_value, *exc_traceback;
   55501             :     int success = 0;
   55502             :     if (c_line) {
   55503             :         (void) __pyx_cfilenm;
   55504             :         (void) __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line);
   55505             :     }
   55506             :     PyErr_Fetch(&exc_type, &exc_value, &exc_traceback);
   55507             :     code_object = Py_CompileString("_getframe()", filename, Py_eval_input);
   55508             :     if (unlikely(!code_object)) goto bad;
   55509             :     py_py_line = PyLong_FromLong(py_line);
   55510             :     if (unlikely(!py_py_line)) goto bad;
   55511             :     py_funcname = PyUnicode_FromString(funcname);
   55512             :     if (unlikely(!py_funcname)) goto bad;
   55513             :     dict = PyDict_New();
   55514             :     if (unlikely(!dict)) goto bad;
   55515             :     {
   55516             :         PyObject *old_code_object = code_object;
   55517             :         code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname);
   55518             :         Py_DECREF(old_code_object);
   55519             :     }
   55520             :     if (unlikely(!code_object)) goto bad;
   55521             :     getframe = PySys_GetObject("_getframe");
   55522             :     if (unlikely(!getframe)) goto bad;
   55523             :     if (unlikely(PyDict_SetItemString(dict, "_getframe", getframe))) goto bad;
   55524             :     frame = PyEval_EvalCode(code_object, dict, dict);
   55525             :     if (unlikely(!frame) || frame == Py_None) goto bad;
   55526             :     success = 1;
   55527             :   bad:
   55528             :     PyErr_Restore(exc_type, exc_value, exc_traceback);
   55529             :     Py_XDECREF(code_object);
   55530             :     Py_XDECREF(py_py_line);
   55531             :     Py_XDECREF(py_funcname);
   55532             :     Py_XDECREF(dict);
   55533             :     Py_XDECREF(replace);
   55534             :     if (success) {
   55535             :         PyTraceBack_Here(
   55536             :             (struct _frame*)frame);
   55537             :     }
   55538             :     Py_XDECREF(frame);
   55539             : }
   55540             : #else
   55541          30 : static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
   55542             :             const char *funcname, int c_line,
   55543             :             int py_line, const char *filename) {
   55544          30 :     PyCodeObject *py_code = NULL;
   55545          30 :     PyObject *py_funcname = NULL;
   55546             :     #if PY_MAJOR_VERSION < 3
   55547             :     PyObject *py_srcfile = NULL;
   55548             :     py_srcfile = PyString_FromString(filename);
   55549             :     if (!py_srcfile) goto bad;
   55550             :     #endif
   55551          30 :     if (c_line) {
   55552             :         #if PY_MAJOR_VERSION < 3
   55553             :         py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
   55554             :         if (!py_funcname) goto bad;
   55555             :         #else
   55556           0 :         py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
   55557           0 :         if (!py_funcname) goto bad;
   55558           0 :         funcname = PyUnicode_AsUTF8(py_funcname);
   55559           0 :         if (!funcname) goto bad;
   55560             :         #endif
   55561             :     }
   55562             :     else {
   55563             :         #if PY_MAJOR_VERSION < 3
   55564             :         py_funcname = PyString_FromString(funcname);
   55565             :         if (!py_funcname) goto bad;
   55566             :         #endif
   55567          30 :     }
   55568             :     #if PY_MAJOR_VERSION < 3
   55569             :     py_code = __Pyx_PyCode_New(
   55570             :         0,
   55571             :         0,
   55572             :         0,
   55573             :         0,
   55574             :         0,
   55575             :         0,
   55576             :         __pyx_empty_bytes, /*PyObject *code,*/
   55577             :         __pyx_empty_tuple, /*PyObject *consts,*/
   55578             :         __pyx_empty_tuple, /*PyObject *names,*/
   55579             :         __pyx_empty_tuple, /*PyObject *varnames,*/
   55580             :         __pyx_empty_tuple, /*PyObject *freevars,*/
   55581             :         __pyx_empty_tuple, /*PyObject *cellvars,*/
   55582             :         py_srcfile,   /*PyObject *filename,*/
   55583             :         py_funcname,  /*PyObject *name,*/
   55584             :         py_line,
   55585             :         __pyx_empty_bytes  /*PyObject *lnotab*/
   55586             :     );
   55587             :     Py_DECREF(py_srcfile);
   55588             :     #else
   55589          30 :     py_code = PyCode_NewEmpty(filename, funcname, py_line);
   55590             :     #endif
   55591          30 :     Py_XDECREF(py_funcname);
   55592          30 :     return py_code;
   55593           0 : bad:
   55594           0 :     Py_XDECREF(py_funcname);
   55595             :     #if PY_MAJOR_VERSION < 3
   55596             :     Py_XDECREF(py_srcfile);
   55597             :     #endif
   55598           0 :     return NULL;
   55599             : }
   55600        2758 : static void __Pyx_AddTraceback(const char *funcname, int c_line,
   55601             :                                int py_line, const char *filename) {
   55602        2758 :     PyCodeObject *py_code = 0;
   55603        2758 :     PyFrameObject *py_frame = 0;
   55604        2758 :     PyThreadState *tstate = __Pyx_PyThreadState_Current;
   55605        2758 :     PyObject *ptype, *pvalue, *ptraceback;
   55606        2758 :     if (c_line) {
   55607        2758 :         c_line = __Pyx_CLineForTraceback(tstate, c_line);
   55608             :     }
   55609        5516 :     py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
   55610        2758 :     if (!py_code) {
   55611          30 :         __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
   55612          30 :         py_code = __Pyx_CreateCodeObjectForTraceback(
   55613             :             funcname, c_line, py_line, filename);
   55614          30 :         if (!py_code) {
   55615             :             /* If the code object creation fails, then we should clear the
   55616             :                fetched exception references and propagate the new exception */
   55617           0 :             Py_XDECREF(ptype);
   55618           0 :             Py_XDECREF(pvalue);
   55619           0 :             Py_XDECREF(ptraceback);
   55620           0 :             goto bad;
   55621             :         }
   55622          30 :         __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
   55623          30 :         __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
   55624             :     }
   55625        5516 :     py_frame = PyFrame_New(
   55626             :         tstate,            /*PyThreadState *tstate,*/
   55627             :         py_code,           /*PyCodeObject *code,*/
   55628        2758 :         __pyx_d,    /*PyObject *globals,*/
   55629             :         0                  /*PyObject *locals*/
   55630             :     );
   55631        2758 :     if (!py_frame) goto bad;
   55632        2758 :     __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
   55633        2758 :     PyTraceBack_Here(py_frame);
   55634        2758 : bad:
   55635        2758 :     Py_XDECREF(py_code);
   55636        2758 :     Py_XDECREF(py_frame);
   55637        2758 : }
   55638             : #endif
   55639             : 
   55640             : #if PY_MAJOR_VERSION < 3
   55641             : static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) {
   55642             :     __Pyx_TypeName obj_type_name;
   55643             :     if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags);
   55644             :         if (__Pyx_TypeCheck(obj, __pyx_array_type)) return __pyx_array_getbuffer(obj, view, flags);
   55645             :         if (__Pyx_TypeCheck(obj, __pyx_memoryview_type)) return __pyx_memoryview_getbuffer(obj, view, flags);
   55646             :     obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
   55647             :     PyErr_Format(PyExc_TypeError,
   55648             :                  "'" __Pyx_FMT_TYPENAME "' does not have the buffer interface",
   55649             :                  obj_type_name);
   55650             :     __Pyx_DECREF_TypeName(obj_type_name);
   55651             :     return -1;
   55652             : }
   55653             : static void __Pyx_ReleaseBuffer(Py_buffer *view) {
   55654             :     PyObject *obj = view->obj;
   55655             :     if (!obj) return;
   55656             :     if (PyObject_CheckBuffer(obj)) {
   55657             :         PyBuffer_Release(view);
   55658             :         return;
   55659             :     }
   55660             :     if ((0)) {}
   55661             :     view->obj = NULL;
   55662             :     Py_DECREF(obj);
   55663             : }
   55664             : #endif
   55665             : 
   55666             : 
   55667             :   /* MemviewSliceIsContig */
   55668             :   static int
   55669           0 : __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim)
   55670             : {
   55671           0 :     int i, index, step, start;
   55672           0 :     Py_ssize_t itemsize = mvs.memview->view.itemsize;
   55673           0 :     if (order == 'F') {
   55674             :         step = 1;
   55675             :         start = 0;
   55676             :     } else {
   55677           0 :         step = -1;
   55678           0 :         start = ndim - 1;
   55679             :     }
   55680           0 :     for (i = 0; i < ndim; i++) {
   55681           0 :         index = start + step * i;
   55682           0 :         if (mvs.suboffsets[index] >= 0 || mvs.strides[index] != itemsize)
   55683             :             return 0;
   55684           0 :         itemsize *= mvs.shape[index];
   55685             :     }
   55686             :     return 1;
   55687             : }
   55688             : 
   55689             : /* OverlappingSlices */
   55690             :   static void
   55691           0 : __pyx_get_array_memory_extents(__Pyx_memviewslice *slice,
   55692             :                                void **out_start, void **out_end,
   55693             :                                int ndim, size_t itemsize)
   55694             : {
   55695           0 :     char *start, *end;
   55696           0 :     int i;
   55697           0 :     start = end = slice->data;
   55698           0 :     for (i = 0; i < ndim; i++) {
   55699           0 :         Py_ssize_t stride = slice->strides[i];
   55700           0 :         Py_ssize_t extent = slice->shape[i];
   55701           0 :         if (extent == 0) {
   55702           0 :             *out_start = *out_end = start;
   55703           0 :             return;
   55704             :         } else {
   55705           0 :             if (stride > 0)
   55706           0 :                 end += stride * (extent - 1);
   55707             :             else
   55708           0 :                 start += stride * (extent - 1);
   55709             :         }
   55710             :     }
   55711           0 :     *out_start = start;
   55712           0 :     *out_end = end + itemsize;
   55713             : }
   55714             : static int
   55715           0 : __pyx_slices_overlap(__Pyx_memviewslice *slice1,
   55716             :                      __Pyx_memviewslice *slice2,
   55717             :                      int ndim, size_t itemsize)
   55718             : {
   55719           0 :     void *start1, *end1, *start2, *end2;
   55720           0 :     __pyx_get_array_memory_extents(slice1, &start1, &end1, ndim, itemsize);
   55721           0 :     __pyx_get_array_memory_extents(slice2, &start2, &end2, ndim, itemsize);
   55722           0 :     return (start1 < end2) && (start2 < end1);
   55723             : }
   55724             : 
   55725             : /* Declarations */
   55726             :   #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
   55727             :   #ifdef __cplusplus
   55728             :     static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
   55729             :       return ::std::complex< float >(x, y);
   55730             :     }
   55731             :   #else
   55732             :     static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
   55733             :       return x + y*(__pyx_t_float_complex)_Complex_I;
   55734             :     }
   55735             :   #endif
   55736             : #else
   55737       16512 :     static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
   55738       16512 :       __pyx_t_float_complex z;
   55739       16512 :       z.real = x;
   55740       16512 :       z.imag = y;
   55741       16512 :       return z;
   55742             :     }
   55743             : #endif
   55744             : 
   55745             : /* Arithmetic */
   55746             :   #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
   55747             : #else
   55748             :     static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
   55749             :        return (a.real == b.real) && (a.imag == b.imag);
   55750             :     }
   55751             :     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
   55752             :         __pyx_t_float_complex z;
   55753             :         z.real = a.real + b.real;
   55754             :         z.imag = a.imag + b.imag;
   55755             :         return z;
   55756             :     }
   55757             :     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
   55758             :         __pyx_t_float_complex z;
   55759             :         z.real = a.real - b.real;
   55760             :         z.imag = a.imag - b.imag;
   55761             :         return z;
   55762             :     }
   55763             :     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
   55764             :         __pyx_t_float_complex z;
   55765             :         z.real = a.real * b.real - a.imag * b.imag;
   55766             :         z.imag = a.real * b.imag + a.imag * b.real;
   55767             :         return z;
   55768             :     }
   55769             :     #if 1
   55770             :     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
   55771             :         if (b.imag == 0) {
   55772             :             return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
   55773             :         } else if (fabsf(b.real) >= fabsf(b.imag)) {
   55774             :             if (b.real == 0 && b.imag == 0) {
   55775             :                 return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag);
   55776             :             } else {
   55777             :                 float r = b.imag / b.real;
   55778             :                 float s = (float)(1.0) / (b.real + b.imag * r);
   55779             :                 return __pyx_t_float_complex_from_parts(
   55780             :                     (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
   55781             :             }
   55782             :         } else {
   55783             :             float r = b.real / b.imag;
   55784             :             float s = (float)(1.0) / (b.imag + b.real * r);
   55785             :             return __pyx_t_float_complex_from_parts(
   55786             :                 (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
   55787             :         }
   55788             :     }
   55789             :     #else
   55790             :     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
   55791             :         if (b.imag == 0) {
   55792             :             return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
   55793             :         } else {
   55794             :             float denom = b.real * b.real + b.imag * b.imag;
   55795             :             return __pyx_t_float_complex_from_parts(
   55796             :                 (a.real * b.real + a.imag * b.imag) / denom,
   55797             :                 (a.imag * b.real - a.real * b.imag) / denom);
   55798             :         }
   55799             :     }
   55800             :     #endif
   55801             :     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) {
   55802             :         __pyx_t_float_complex z;
   55803             :         z.real = -a.real;
   55804             :         z.imag = -a.imag;
   55805             :         return z;
   55806             :     }
   55807             :     static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) {
   55808             :        return (a.real == 0) && (a.imag == 0);
   55809             :     }
   55810             :     static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) {
   55811             :         __pyx_t_float_complex z;
   55812             :         z.real =  a.real;
   55813             :         z.imag = -a.imag;
   55814             :         return z;
   55815             :     }
   55816             :     #if 1
   55817             :         static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) {
   55818             :           #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
   55819             :             return sqrtf(z.real*z.real + z.imag*z.imag);
   55820             :           #else
   55821             :             return hypotf(z.real, z.imag);
   55822             :           #endif
   55823             :         }
   55824             :         static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
   55825             :             __pyx_t_float_complex z;
   55826             :             float r, lnr, theta, z_r, z_theta;
   55827             :             if (b.imag == 0 && b.real == (int)b.real) {
   55828             :                 if (b.real < 0) {
   55829             :                     float denom = a.real * a.real + a.imag * a.imag;
   55830             :                     a.real = a.real / denom;
   55831             :                     a.imag = -a.imag / denom;
   55832             :                     b.real = -b.real;
   55833             :                 }
   55834             :                 switch ((int)b.real) {
   55835             :                     case 0:
   55836             :                         z.real = 1;
   55837             :                         z.imag = 0;
   55838             :                         return z;
   55839             :                     case 1:
   55840             :                         return a;
   55841             :                     case 2:
   55842             :                         return __Pyx_c_prod_float(a, a);
   55843             :                     case 3:
   55844             :                         z = __Pyx_c_prod_float(a, a);
   55845             :                         return __Pyx_c_prod_float(z, a);
   55846             :                     case 4:
   55847             :                         z = __Pyx_c_prod_float(a, a);
   55848             :                         return __Pyx_c_prod_float(z, z);
   55849             :                 }
   55850             :             }
   55851             :             if (a.imag == 0) {
   55852             :                 if (a.real == 0) {
   55853             :                     return a;
   55854             :                 } else if ((b.imag == 0) && (a.real >= 0)) {
   55855             :                     z.real = powf(a.real, b.real);
   55856             :                     z.imag = 0;
   55857             :                     return z;
   55858             :                 } else if (a.real > 0) {
   55859             :                     r = a.real;
   55860             :                     theta = 0;
   55861             :                 } else {
   55862             :                     r = -a.real;
   55863             :                     theta = atan2f(0.0, -1.0);
   55864             :                 }
   55865             :             } else {
   55866             :                 r = __Pyx_c_abs_float(a);
   55867             :                 theta = atan2f(a.imag, a.real);
   55868             :             }
   55869             :             lnr = logf(r);
   55870             :             z_r = expf(lnr * b.real - theta * b.imag);
   55871             :             z_theta = theta * b.real + lnr * b.imag;
   55872             :             z.real = z_r * cosf(z_theta);
   55873             :             z.imag = z_r * sinf(z_theta);
   55874             :             return z;
   55875             :         }
   55876             :     #endif
   55877             : #endif
   55878             : 
   55879             : /* Declarations */
   55880             :   #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
   55881             :   #ifdef __cplusplus
   55882             :     static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
   55883             :       return ::std::complex< double >(x, y);
   55884             :     }
   55885             :   #else
   55886             :     static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
   55887             :       return x + y*(__pyx_t_double_complex)_Complex_I;
   55888             :     }
   55889             :   #endif
   55890             : #else
   55891       21940 :     static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
   55892       21940 :       __pyx_t_double_complex z;
   55893       21940 :       z.real = x;
   55894       21940 :       z.imag = y;
   55895       21940 :       return z;
   55896             :     }
   55897             : #endif
   55898             : 
   55899             : /* Arithmetic */
   55900             :   #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
   55901             : #else
   55902             :     static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
   55903             :        return (a.real == b.real) && (a.imag == b.imag);
   55904             :     }
   55905             :     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
   55906             :         __pyx_t_double_complex z;
   55907             :         z.real = a.real + b.real;
   55908             :         z.imag = a.imag + b.imag;
   55909             :         return z;
   55910             :     }
   55911             :     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
   55912             :         __pyx_t_double_complex z;
   55913             :         z.real = a.real - b.real;
   55914             :         z.imag = a.imag - b.imag;
   55915             :         return z;
   55916             :     }
   55917             :     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
   55918             :         __pyx_t_double_complex z;
   55919             :         z.real = a.real * b.real - a.imag * b.imag;
   55920             :         z.imag = a.real * b.imag + a.imag * b.real;
   55921             :         return z;
   55922             :     }
   55923             :     #if 1
   55924             :     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
   55925             :         if (b.imag == 0) {
   55926             :             return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
   55927             :         } else if (fabs(b.real) >= fabs(b.imag)) {
   55928             :             if (b.real == 0 && b.imag == 0) {
   55929             :                 return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
   55930             :             } else {
   55931             :                 double r = b.imag / b.real;
   55932             :                 double s = (double)(1.0) / (b.real + b.imag * r);
   55933             :                 return __pyx_t_double_complex_from_parts(
   55934             :                     (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
   55935             :             }
   55936             :         } else {
   55937             :             double r = b.real / b.imag;
   55938             :             double s = (double)(1.0) / (b.imag + b.real * r);
   55939             :             return __pyx_t_double_complex_from_parts(
   55940             :                 (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
   55941             :         }
   55942             :     }
   55943             :     #else
   55944             :     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
   55945             :         if (b.imag == 0) {
   55946             :             return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
   55947             :         } else {
   55948             :             double denom = b.real * b.real + b.imag * b.imag;
   55949             :             return __pyx_t_double_complex_from_parts(
   55950             :                 (a.real * b.real + a.imag * b.imag) / denom,
   55951             :                 (a.imag * b.real - a.real * b.imag) / denom);
   55952             :         }
   55953             :     }
   55954             :     #endif
   55955             :     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) {
   55956             :         __pyx_t_double_complex z;
   55957             :         z.real = -a.real;
   55958             :         z.imag = -a.imag;
   55959             :         return z;
   55960             :     }
   55961             :     static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) {
   55962             :        return (a.real == 0) && (a.imag == 0);
   55963             :     }
   55964             :     static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) {
   55965             :         __pyx_t_double_complex z;
   55966             :         z.real =  a.real;
   55967             :         z.imag = -a.imag;
   55968             :         return z;
   55969             :     }
   55970             :     #if 1
   55971             :         static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) {
   55972             :           #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
   55973             :             return sqrt(z.real*z.real + z.imag*z.imag);
   55974             :           #else
   55975             :             return hypot(z.real, z.imag);
   55976             :           #endif
   55977             :         }
   55978             :         static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
   55979             :             __pyx_t_double_complex z;
   55980             :             double r, lnr, theta, z_r, z_theta;
   55981             :             if (b.imag == 0 && b.real == (int)b.real) {
   55982             :                 if (b.real < 0) {
   55983             :                     double denom = a.real * a.real + a.imag * a.imag;
   55984             :                     a.real = a.real / denom;
   55985             :                     a.imag = -a.imag / denom;
   55986             :                     b.real = -b.real;
   55987             :                 }
   55988             :                 switch ((int)b.real) {
   55989             :                     case 0:
   55990             :                         z.real = 1;
   55991             :                         z.imag = 0;
   55992             :                         return z;
   55993             :                     case 1:
   55994             :                         return a;
   55995             :                     case 2:
   55996             :                         return __Pyx_c_prod_double(a, a);
   55997             :                     case 3:
   55998             :                         z = __Pyx_c_prod_double(a, a);
   55999             :                         return __Pyx_c_prod_double(z, a);
   56000             :                     case 4:
   56001             :                         z = __Pyx_c_prod_double(a, a);
   56002             :                         return __Pyx_c_prod_double(z, z);
   56003             :                 }
   56004             :             }
   56005             :             if (a.imag == 0) {
   56006             :                 if (a.real == 0) {
   56007             :                     return a;
   56008             :                 } else if ((b.imag == 0) && (a.real >= 0)) {
   56009             :                     z.real = pow(a.real, b.real);
   56010             :                     z.imag = 0;
   56011             :                     return z;
   56012             :                 } else if (a.real > 0) {
   56013             :                     r = a.real;
   56014             :                     theta = 0;
   56015             :                 } else {
   56016             :                     r = -a.real;
   56017             :                     theta = atan2(0.0, -1.0);
   56018             :                 }
   56019             :             } else {
   56020             :                 r = __Pyx_c_abs_double(a);
   56021             :                 theta = atan2(a.imag, a.real);
   56022             :             }
   56023             :             lnr = log(r);
   56024             :             z_r = exp(lnr * b.real - theta * b.imag);
   56025             :             z_theta = theta * b.real + lnr * b.imag;
   56026             :             z.real = z_r * cos(z_theta);
   56027             :             z.imag = z_r * sin(z_theta);
   56028             :             return z;
   56029             :         }
   56030             :     #endif
   56031             : #endif
   56032             : 
   56033             : /* Declarations */
   56034             :   #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
   56035             :   #ifdef __cplusplus
   56036             :     static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
   56037             :       return ::std::complex< long double >(x, y);
   56038             :     }
   56039             :   #else
   56040             :     static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
   56041             :       return x + y*(__pyx_t_long_double_complex)_Complex_I;
   56042             :     }
   56043             :   #endif
   56044             : #else
   56045       16512 :     static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
   56046       16512 :       __pyx_t_long_double_complex z;
   56047       16512 :       z.real = x;
   56048       16512 :       z.imag = y;
   56049       16512 :       return z;
   56050             :     }
   56051             : #endif
   56052             : 
   56053             : /* Arithmetic */
   56054             :   #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
   56055             : #else
   56056             :     static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
   56057             :        return (a.real == b.real) && (a.imag == b.imag);
   56058             :     }
   56059             :     static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
   56060             :         __pyx_t_long_double_complex z;
   56061             :         z.real = a.real + b.real;
   56062             :         z.imag = a.imag + b.imag;
   56063             :         return z;
   56064             :     }
   56065             :     static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
   56066             :         __pyx_t_long_double_complex z;
   56067             :         z.real = a.real - b.real;
   56068             :         z.imag = a.imag - b.imag;
   56069             :         return z;
   56070             :     }
   56071             :     static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
   56072             :         __pyx_t_long_double_complex z;
   56073             :         z.real = a.real * b.real - a.imag * b.imag;
   56074             :         z.imag = a.real * b.imag + a.imag * b.real;
   56075             :         return z;
   56076             :     }
   56077             :     #if 1
   56078             :     static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
   56079             :         if (b.imag == 0) {
   56080             :             return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real);
   56081             :         } else if (fabsl(b.real) >= fabsl(b.imag)) {
   56082             :             if (b.real == 0 && b.imag == 0) {
   56083             :                 return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
   56084             :             } else {
   56085             :                 long double r = b.imag / b.real;
   56086             :                 long double s = (long double)(1.0) / (b.real + b.imag * r);
   56087             :                 return __pyx_t_long_double_complex_from_parts(
   56088             :                     (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
   56089             :             }
   56090             :         } else {
   56091             :             long double r = b.real / b.imag;
   56092             :             long double s = (long double)(1.0) / (b.imag + b.real * r);
   56093             :             return __pyx_t_long_double_complex_from_parts(
   56094             :                 (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
   56095             :         }
   56096             :     }
   56097             :     #else
   56098             :     static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
   56099             :         if (b.imag == 0) {
   56100             :             return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real);
   56101             :         } else {
   56102             :             long double denom = b.real * b.real + b.imag * b.imag;
   56103             :             return __pyx_t_long_double_complex_from_parts(
   56104             :                 (a.real * b.real + a.imag * b.imag) / denom,
   56105             :                 (a.imag * b.real - a.real * b.imag) / denom);
   56106             :         }
   56107             :     }
   56108             :     #endif
   56109             :     static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex a) {
   56110             :         __pyx_t_long_double_complex z;
   56111             :         z.real = -a.real;
   56112             :         z.imag = -a.imag;
   56113             :         return z;
   56114             :     }
   56115             :     static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex a) {
   56116             :        return (a.real == 0) && (a.imag == 0);
   56117             :     }
   56118             :     static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex a) {
   56119             :         __pyx_t_long_double_complex z;
   56120             :         z.real =  a.real;
   56121             :         z.imag = -a.imag;
   56122             :         return z;
   56123             :     }
   56124             :     #if 1
   56125             :         static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex z) {
   56126             :           #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
   56127             :             return sqrtl(z.real*z.real + z.imag*z.imag);
   56128             :           #else
   56129             :             return hypotl(z.real, z.imag);
   56130             :           #endif
   56131             :         }
   56132             :         static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
   56133             :             __pyx_t_long_double_complex z;
   56134             :             long double r, lnr, theta, z_r, z_theta;
   56135             :             if (b.imag == 0 && b.real == (int)b.real) {
   56136             :                 if (b.real < 0) {
   56137             :                     long double denom = a.real * a.real + a.imag * a.imag;
   56138             :                     a.real = a.real / denom;
   56139             :                     a.imag = -a.imag / denom;
   56140             :                     b.real = -b.real;
   56141             :                 }
   56142             :                 switch ((int)b.real) {
   56143             :                     case 0:
   56144             :                         z.real = 1;
   56145             :                         z.imag = 0;
   56146             :                         return z;
   56147             :                     case 1:
   56148             :                         return a;
   56149             :                     case 2:
   56150             :                         return __Pyx_c_prod_long__double(a, a);
   56151             :                     case 3:
   56152             :                         z = __Pyx_c_prod_long__double(a, a);
   56153             :                         return __Pyx_c_prod_long__double(z, a);
   56154             :                     case 4:
   56155             :                         z = __Pyx_c_prod_long__double(a, a);
   56156             :                         return __Pyx_c_prod_long__double(z, z);
   56157             :                 }
   56158             :             }
   56159             :             if (a.imag == 0) {
   56160             :                 if (a.real == 0) {
   56161             :                     return a;
   56162             :                 } else if ((b.imag == 0) && (a.real >= 0)) {
   56163             :                     z.real = powl(a.real, b.real);
   56164             :                     z.imag = 0;
   56165             :                     return z;
   56166             :                 } else if (a.real > 0) {
   56167             :                     r = a.real;
   56168             :                     theta = 0;
   56169             :                 } else {
   56170             :                     r = -a.real;
   56171             :                     theta = atan2l(0.0, -1.0);
   56172             :                 }
   56173             :             } else {
   56174             :                 r = __Pyx_c_abs_long__double(a);
   56175             :                 theta = atan2l(a.imag, a.real);
   56176             :             }
   56177             :             lnr = logl(r);
   56178             :             z_r = expl(lnr * b.real - theta * b.imag);
   56179             :             z_theta = theta * b.real + lnr * b.imag;
   56180             :             z.real = z_r * cosl(z_theta);
   56181             :             z.imag = z_r * sinl(z_theta);
   56182             :             return z;
   56183             :         }
   56184             :     #endif
   56185             : #endif
   56186             : 
   56187             : /* TypeInfoCompare */
   56188             :   static int
   56189      136725 : __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b)
   56190             : {
   56191      136725 :     int i;
   56192      136725 :     if (!a || !b)
   56193             :         return 0;
   56194      136725 :     if (a == b)
   56195             :         return 1;
   56196           0 :     if (a->size != b->size || a->typegroup != b->typegroup ||
   56197           0 :             a->is_unsigned != b->is_unsigned || a->ndim != b->ndim) {
   56198           0 :         if (a->typegroup == 'H' || b->typegroup == 'H') {
   56199           0 :             return a->size == b->size;
   56200             :         } else {
   56201             :             return 0;
   56202             :         }
   56203             :     }
   56204           0 :     if (a->ndim) {
   56205           0 :         for (i = 0; i < a->ndim; i++)
   56206           0 :             if (a->arraysize[i] != b->arraysize[i])
   56207             :                 return 0;
   56208             :     }
   56209           0 :     if (a->typegroup == 'S') {
   56210           0 :         if (a->flags != b->flags)
   56211             :             return 0;
   56212           0 :         if (a->fields || b->fields) {
   56213           0 :             if (!(a->fields && b->fields))
   56214             :                 return 0;
   56215           0 :             for (i = 0; a->fields[i].type && b->fields[i].type; i++) {
   56216           0 :                 __Pyx_StructField *field_a = a->fields + i;
   56217           0 :                 __Pyx_StructField *field_b = b->fields + i;
   56218           0 :                 if (field_a->offset != field_b->offset ||
   56219           0 :                     !__pyx_typeinfo_cmp(field_a->type, field_b->type))
   56220           0 :                     return 0;
   56221             :             }
   56222           0 :             return !a->fields[i].type && !b->fields[i].type;
   56223             :         }
   56224             :     }
   56225             :     return 1;
   56226             : }
   56227             : 
   56228             : /* MemviewSliceValidateAndInit */
   56229             :   static int
   56230      530963 : __pyx_check_strides(Py_buffer *buf, int dim, int ndim, int spec)
   56231             : {
   56232      530963 :     if (buf->shape[dim] <= 1)
   56233             :         return 1;
   56234      483904 :     if (buf->strides) {
   56235      483904 :         if (spec & __Pyx_MEMVIEW_CONTIG) {
   56236           0 :             if (spec & (__Pyx_MEMVIEW_PTR|__Pyx_MEMVIEW_FULL)) {
   56237           0 :                 if (unlikely(buf->strides[dim] != sizeof(void *))) {
   56238           0 :                     PyErr_Format(PyExc_ValueError,
   56239             :                                  "Buffer is not indirectly contiguous "
   56240             :                                  "in dimension %d.", dim);
   56241           0 :                     goto fail;
   56242             :                 }
   56243           0 :             } else if (unlikely(buf->strides[dim] != buf->itemsize)) {
   56244           0 :                 PyErr_SetString(PyExc_ValueError,
   56245             :                                 "Buffer and memoryview are not contiguous "
   56246             :                                 "in the same dimension.");
   56247           0 :                 goto fail;
   56248             :             }
   56249             :         }
   56250      483904 :         if (spec & __Pyx_MEMVIEW_FOLLOW) {
   56251           0 :             Py_ssize_t stride = buf->strides[dim];
   56252           0 :             if (stride < 0)
   56253             :                 stride = -stride;
   56254           0 :             if (unlikely(stride < buf->itemsize)) {
   56255           0 :                 PyErr_SetString(PyExc_ValueError,
   56256             :                                 "Buffer and memoryview are not contiguous "
   56257             :                                 "in the same dimension.");
   56258           0 :                 goto fail;
   56259             :             }
   56260             :         }
   56261             :     } else {
   56262           0 :         if (unlikely(spec & __Pyx_MEMVIEW_CONTIG && dim != ndim - 1)) {
   56263           0 :             PyErr_Format(PyExc_ValueError,
   56264             :                          "C-contiguous buffer is not contiguous in "
   56265             :                          "dimension %d", dim);
   56266           0 :             goto fail;
   56267           0 :         } else if (unlikely(spec & (__Pyx_MEMVIEW_PTR))) {
   56268           0 :             PyErr_Format(PyExc_ValueError,
   56269             :                          "C-contiguous buffer is not indirect in "
   56270             :                          "dimension %d", dim);
   56271           0 :             goto fail;
   56272           0 :         } else if (unlikely(buf->suboffsets)) {
   56273           0 :             PyErr_SetString(PyExc_ValueError,
   56274             :                             "Buffer exposes suboffsets but no strides");
   56275           0 :             goto fail;
   56276             :         }
   56277             :     }
   56278             :     return 1;
   56279             : fail:
   56280             :     return 0;
   56281             : }
   56282             : static int
   56283      530963 : __pyx_check_suboffsets(Py_buffer *buf, int dim, int ndim, int spec)
   56284             : {
   56285      530963 :     CYTHON_UNUSED_VAR(ndim);
   56286      530963 :     if (spec & __Pyx_MEMVIEW_DIRECT) {
   56287      530963 :         if (unlikely(buf->suboffsets && buf->suboffsets[dim] >= 0)) {
   56288           0 :             PyErr_Format(PyExc_ValueError,
   56289             :                          "Buffer not compatible with direct access "
   56290             :                          "in dimension %d.", dim);
   56291           0 :             goto fail;
   56292             :         }
   56293             :     }
   56294      530963 :     if (spec & __Pyx_MEMVIEW_PTR) {
   56295           0 :         if (unlikely(!buf->suboffsets || (buf->suboffsets[dim] < 0))) {
   56296           0 :             PyErr_Format(PyExc_ValueError,
   56297             :                          "Buffer is not indirectly accessible "
   56298             :                          "in dimension %d.", dim);
   56299           0 :             goto fail;
   56300             :         }
   56301             :     }
   56302             :     return 1;
   56303             : fail:
   56304             :     return 0;
   56305             : }
   56306             : static int
   56307      521733 : __pyx_verify_contig(Py_buffer *buf, int ndim, int c_or_f_flag)
   56308             : {
   56309      521733 :     int i;
   56310      521733 :     if (c_or_f_flag & __Pyx_IS_F_CONTIG) {
   56311             :         Py_ssize_t stride = 1;
   56312           0 :         for (i = 0; i < ndim; i++) {
   56313           0 :             if (unlikely(stride * buf->itemsize != buf->strides[i]  &&  buf->shape[i] > 1)) {
   56314           0 :                 PyErr_SetString(PyExc_ValueError,
   56315             :                     "Buffer not fortran contiguous.");
   56316           0 :                 goto fail;
   56317             :             }
   56318           0 :             stride = stride * buf->shape[i];
   56319             :         }
   56320      521733 :     } else if (c_or_f_flag & __Pyx_IS_C_CONTIG) {
   56321           0 :         Py_ssize_t stride = 1;
   56322           0 :         for (i = ndim - 1; i >- 1; i--) {
   56323           0 :             if (unlikely(stride * buf->itemsize != buf->strides[i]  &&  buf->shape[i] > 1)) {
   56324           0 :                 PyErr_SetString(PyExc_ValueError,
   56325             :                     "Buffer not C contiguous.");
   56326           0 :                 goto fail;
   56327             :             }
   56328           0 :             stride = stride * buf->shape[i];
   56329             :         }
   56330             :     }
   56331             :     return 1;
   56332             : fail:
   56333             :     return 0;
   56334             : }
   56335      536853 : static int __Pyx_ValidateAndInit_memviewslice(
   56336             :                 int *axes_specs,
   56337             :                 int c_or_f_flag,
   56338             :                 int buf_flags,
   56339             :                 int ndim,
   56340             :                 __Pyx_TypeInfo *dtype,
   56341             :                 __Pyx_BufFmt_StackElem stack[],
   56342             :                 __Pyx_memviewslice *memviewslice,
   56343             :                 PyObject *original_obj)
   56344             : {
   56345      536853 :     struct __pyx_memoryview_obj *memview, *new_memview;
   56346             :     __Pyx_RefNannyDeclarations
   56347      536853 :     Py_buffer *buf;
   56348      536853 :     int i, spec = 0, retval = -1;
   56349      536853 :     __Pyx_BufFmt_Context ctx;
   56350      536853 :     int from_memoryview = __pyx_memoryview_check(original_obj);
   56351      536853 :     __Pyx_RefNannySetupContext("ValidateAndInit_memviewslice", 0);
   56352      536853 :     if (from_memoryview && __pyx_typeinfo_cmp(dtype, ((struct __pyx_memoryview_obj *)
   56353             :                                                             original_obj)->typeinfo)) {
   56354             :         memview = (struct __pyx_memoryview_obj *) original_obj;
   56355             :         new_memview = NULL;
   56356             :     } else {
   56357      400128 :         memview = (struct __pyx_memoryview_obj *) __pyx_memoryview_new(
   56358             :                                             original_obj, buf_flags, 0, dtype);
   56359      400128 :         new_memview = memview;
   56360      400128 :         if (unlikely(!memview))
   56361           0 :             goto fail;
   56362             :     }
   56363      536853 :     buf = &memview->view;
   56364      536853 :     if (unlikely(buf->ndim != ndim)) {
   56365           0 :         PyErr_Format(PyExc_ValueError,
   56366             :                 "Buffer has wrong number of dimensions (expected %d, got %d)",
   56367             :                 ndim, buf->ndim);
   56368           0 :         goto fail;
   56369             :     }
   56370      536853 :     if (new_memview) {
   56371      400128 :         __Pyx_BufFmt_Init(&ctx, stack, dtype);
   56372      400128 :         if (unlikely(!__Pyx_BufFmt_CheckString(&ctx, buf->format))) goto fail;
   56373             :     }
   56374      536853 :     if (unlikely((unsigned) buf->itemsize != dtype->size)) {
   56375           0 :         PyErr_Format(PyExc_ValueError,
   56376             :                      "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "u byte%s) "
   56377             :                      "does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "u byte%s)",
   56378             :                      buf->itemsize,
   56379             :                      (buf->itemsize > 1) ? "s" : "",
   56380             :                      dtype->name,
   56381             :                      dtype->size,
   56382             :                      (dtype->size > 1) ? "s" : "");
   56383           0 :         goto fail;
   56384             :     }
   56385      536853 :     if (buf->len > 0) {
   56386     1052696 :         for (i = 0; i < ndim; i++) {
   56387      530963 :             spec = axes_specs[i];
   56388      530963 :             if (unlikely(!__pyx_check_strides(buf, i, ndim, spec)))
   56389           0 :                 goto fail;
   56390      530963 :             if (unlikely(!__pyx_check_suboffsets(buf, i, ndim, spec)))
   56391           0 :                 goto fail;
   56392             :         }
   56393      521733 :         if (unlikely(buf->strides && !__pyx_verify_contig(buf, ndim, c_or_f_flag)))
   56394           0 :             goto fail;
   56395             :     }
   56396      536853 :     if (unlikely(__Pyx_init_memviewslice(memview, ndim, memviewslice,
   56397             :                                          new_memview != NULL) == -1)) {
   56398           0 :         goto fail;
   56399             :     }
   56400      536853 :     retval = 0;
   56401      536853 :     goto no_fail;
   56402           0 : fail:
   56403           0 :     Py_XDECREF(new_memview);
   56404           0 :     retval = -1;
   56405      536853 : no_fail:
   56406      536853 :     __Pyx_RefNannyFinishContext();
   56407      536853 :     return retval;
   56408             : }
   56409             : 
   56410             : /* ObjectToMemviewSlice */
   56411      527497 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_object(PyObject *obj, int writable_flag) {
   56412      527497 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56413      527497 :     __Pyx_BufFmt_StackElem stack[1];
   56414      527497 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56415      527497 :     int retcode;
   56416      527497 :     if (obj == Py_None) {
   56417           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56418           0 :         return result;
   56419             :     }
   56420      527497 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56421             :                                                  PyBUF_RECORDS_RO | writable_flag, 1,
   56422             :                                                  &__Pyx_TypeInfo_object, stack,
   56423             :                                                  &result, obj);
   56424      527497 :     if (unlikely(retcode == -1))
   56425           0 :         goto __pyx_fail;
   56426      527497 :     return result;
   56427           0 : __pyx_fail:
   56428           0 :     result.memview = NULL;
   56429           0 :     result.data = NULL;
   56430           0 :     return result;
   56431             : }
   56432             : 
   56433             : /* ObjectToMemviewSlice */
   56434           0 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_double__const__(PyObject *obj, int writable_flag) {
   56435           0 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56436           0 :     __Pyx_BufFmt_StackElem stack[1];
   56437           0 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56438           0 :     int retcode;
   56439           0 :     if (obj == Py_None) {
   56440           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56441           0 :         return result;
   56442             :     }
   56443           0 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56444             :                                                  PyBUF_RECORDS_RO | writable_flag, 1,
   56445             :                                                  &__Pyx_TypeInfo_double__const__, stack,
   56446             :                                                  &result, obj);
   56447           0 :     if (unlikely(retcode == -1))
   56448           0 :         goto __pyx_fail;
   56449           0 :     return result;
   56450           0 : __pyx_fail:
   56451           0 :     result.memview = NULL;
   56452           0 :     result.data = NULL;
   56453           0 :     return result;
   56454             : }
   56455             : 
   56456             : /* CIntFromPyVerify */
   56457             :   #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
   56458             :     __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
   56459             : #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
   56460             :     __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
   56461             : #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
   56462             :     {\
   56463             :         func_type value = func_value;\
   56464             :         if (sizeof(target_type) < sizeof(func_type)) {\
   56465             :             if (unlikely(value != (func_type) (target_type) value)) {\
   56466             :                 func_type zero = 0;\
   56467             :                 if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
   56468             :                     return (target_type) -1;\
   56469             :                 if (is_unsigned && unlikely(value < zero))\
   56470             :                     goto raise_neg_overflow;\
   56471             :                 else\
   56472             :                     goto raise_overflow;\
   56473             :             }\
   56474             :         }\
   56475             :         return (target_type) value;\
   56476             :     }
   56477             : 
   56478             : /* ObjectToMemviewSlice */
   56479          34 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int32(PyObject *obj, int writable_flag) {
   56480          34 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56481          34 :     __Pyx_BufFmt_StackElem stack[1];
   56482          34 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56483          34 :     int retcode;
   56484          34 :     if (obj == Py_None) {
   56485           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56486           0 :         return result;
   56487             :     }
   56488          34 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56489             :                                                  PyBUF_RECORDS_RO | writable_flag, 2,
   56490             :                                                  &__Pyx_TypeInfo_nn_npy_int32, stack,
   56491             :                                                  &result, obj);
   56492          34 :     if (unlikely(retcode == -1))
   56493           0 :         goto __pyx_fail;
   56494          34 :     return result;
   56495           0 : __pyx_fail:
   56496           0 :     result.memview = NULL;
   56497           0 :     result.data = NULL;
   56498           0 :     return result;
   56499             : }
   56500             : 
   56501             : /* ObjectToMemviewSlice */
   56502        6669 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int64(PyObject *obj, int writable_flag) {
   56503        6669 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56504        6669 :     __Pyx_BufFmt_StackElem stack[1];
   56505        6669 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56506        6669 :     int retcode;
   56507        6669 :     if (obj == Py_None) {
   56508           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56509           0 :         return result;
   56510             :     }
   56511        6669 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56512             :                                                  PyBUF_RECORDS_RO | writable_flag, 2,
   56513             :                                                  &__Pyx_TypeInfo_nn_npy_int64, stack,
   56514             :                                                  &result, obj);
   56515        6669 :     if (unlikely(retcode == -1))
   56516           0 :         goto __pyx_fail;
   56517        6669 :     return result;
   56518           0 : __pyx_fail:
   56519           0 :     result.memview = NULL;
   56520           0 :     result.data = NULL;
   56521           0 :     return result;
   56522             : }
   56523             : 
   56524             : /* ObjectToMemviewSlice */
   56525           0 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_bool(PyObject *obj, int writable_flag) {
   56526           0 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56527           0 :     __Pyx_BufFmt_StackElem stack[1];
   56528           0 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56529           0 :     int retcode;
   56530           0 :     if (obj == Py_None) {
   56531           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56532           0 :         return result;
   56533             :     }
   56534           0 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56535             :                                                  PyBUF_RECORDS_RO | writable_flag, 2,
   56536             :                                                  &__Pyx_TypeInfo_nn_npy_bool, stack,
   56537             :                                                  &result, obj);
   56538           0 :     if (unlikely(retcode == -1))
   56539           0 :         goto __pyx_fail;
   56540           0 :     return result;
   56541           0 : __pyx_fail:
   56542           0 :     result.memview = NULL;
   56543           0 :     result.data = NULL;
   56544           0 :     return result;
   56545             : }
   56546             : 
   56547             : /* ObjectToMemviewSlice */
   56548          14 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int8(PyObject *obj, int writable_flag) {
   56549          14 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56550          14 :     __Pyx_BufFmt_StackElem stack[1];
   56551          14 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56552          14 :     int retcode;
   56553          14 :     if (obj == Py_None) {
   56554           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56555           0 :         return result;
   56556             :     }
   56557          14 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56558             :                                                  PyBUF_RECORDS_RO | writable_flag, 2,
   56559             :                                                  &__Pyx_TypeInfo_nn_npy_int8, stack,
   56560             :                                                  &result, obj);
   56561          14 :     if (unlikely(retcode == -1))
   56562           0 :         goto __pyx_fail;
   56563          14 :     return result;
   56564           0 : __pyx_fail:
   56565           0 :     result.memview = NULL;
   56566           0 :     result.data = NULL;
   56567           0 :     return result;
   56568             : }
   56569             : 
   56570             : /* ObjectToMemviewSlice */
   56571          28 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_uint8(PyObject *obj, int writable_flag) {
   56572          28 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56573          28 :     __Pyx_BufFmt_StackElem stack[1];
   56574          28 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56575          28 :     int retcode;
   56576          28 :     if (obj == Py_None) {
   56577           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56578           0 :         return result;
   56579             :     }
   56580          28 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56581             :                                                  PyBUF_RECORDS_RO | writable_flag, 2,
   56582             :                                                  &__Pyx_TypeInfo_nn_npy_uint8, stack,
   56583             :                                                  &result, obj);
   56584          28 :     if (unlikely(retcode == -1))
   56585           0 :         goto __pyx_fail;
   56586          28 :     return result;
   56587           0 : __pyx_fail:
   56588           0 :     result.memview = NULL;
   56589           0 :     result.data = NULL;
   56590           0 :     return result;
   56591             : }
   56592             : 
   56593             : /* ObjectToMemviewSlice */
   56594          14 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_int16(PyObject *obj, int writable_flag) {
   56595          14 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56596          14 :     __Pyx_BufFmt_StackElem stack[1];
   56597          14 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56598          14 :     int retcode;
   56599          14 :     if (obj == Py_None) {
   56600           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56601           0 :         return result;
   56602             :     }
   56603          14 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56604             :                                                  PyBUF_RECORDS_RO | writable_flag, 2,
   56605             :                                                  &__Pyx_TypeInfo_nn_npy_int16, stack,
   56606             :                                                  &result, obj);
   56607          14 :     if (unlikely(retcode == -1))
   56608           0 :         goto __pyx_fail;
   56609          14 :     return result;
   56610           0 : __pyx_fail:
   56611           0 :     result.memview = NULL;
   56612           0 :     result.data = NULL;
   56613           0 :     return result;
   56614             : }
   56615             : 
   56616             : /* ObjectToMemviewSlice */
   56617          14 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_uint16(PyObject *obj, int writable_flag) {
   56618          14 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56619          14 :     __Pyx_BufFmt_StackElem stack[1];
   56620          14 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56621          14 :     int retcode;
   56622          14 :     if (obj == Py_None) {
   56623           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56624           0 :         return result;
   56625             :     }
   56626          14 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56627             :                                                  PyBUF_RECORDS_RO | writable_flag, 2,
   56628             :                                                  &__Pyx_TypeInfo_nn_npy_uint16, stack,
   56629             :                                                  &result, obj);
   56630          14 :     if (unlikely(retcode == -1))
   56631           0 :         goto __pyx_fail;
   56632          14 :     return result;
   56633           0 : __pyx_fail:
   56634           0 :     result.memview = NULL;
   56635           0 :     result.data = NULL;
   56636           0 :     return result;
   56637             : }
   56638             : 
   56639             : /* ObjectToMemviewSlice */
   56640          14 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_uint32(PyObject *obj, int writable_flag) {
   56641          14 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56642          14 :     __Pyx_BufFmt_StackElem stack[1];
   56643          14 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56644          14 :     int retcode;
   56645          14 :     if (obj == Py_None) {
   56646           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56647           0 :         return result;
   56648             :     }
   56649          14 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56650             :                                                  PyBUF_RECORDS_RO | writable_flag, 2,
   56651             :                                                  &__Pyx_TypeInfo_nn_npy_uint32, stack,
   56652             :                                                  &result, obj);
   56653          14 :     if (unlikely(retcode == -1))
   56654           0 :         goto __pyx_fail;
   56655          14 :     return result;
   56656           0 : __pyx_fail:
   56657           0 :     result.memview = NULL;
   56658           0 :     result.data = NULL;
   56659           0 :     return result;
   56660             : }
   56661             : 
   56662             : /* ObjectToMemviewSlice */
   56663          28 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_uint64(PyObject *obj, int writable_flag) {
   56664          28 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56665          28 :     __Pyx_BufFmt_StackElem stack[1];
   56666          28 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56667          28 :     int retcode;
   56668          28 :     if (obj == Py_None) {
   56669           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56670           0 :         return result;
   56671             :     }
   56672          28 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56673             :                                                  PyBUF_RECORDS_RO | writable_flag, 2,
   56674             :                                                  &__Pyx_TypeInfo_nn_npy_uint64, stack,
   56675             :                                                  &result, obj);
   56676          28 :     if (unlikely(retcode == -1))
   56677           0 :         goto __pyx_fail;
   56678          28 :     return result;
   56679           0 : __pyx_fail:
   56680           0 :     result.memview = NULL;
   56681           0 :     result.data = NULL;
   56682           0 :     return result;
   56683             : }
   56684             : 
   56685             : /* ObjectToMemviewSlice */
   56686          14 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_float32(PyObject *obj, int writable_flag) {
   56687          14 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56688          14 :     __Pyx_BufFmt_StackElem stack[1];
   56689          14 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56690          14 :     int retcode;
   56691          14 :     if (obj == Py_None) {
   56692           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56693           0 :         return result;
   56694             :     }
   56695          14 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56696             :                                                  PyBUF_RECORDS_RO | writable_flag, 2,
   56697             :                                                  &__Pyx_TypeInfo_nn_npy_float32, stack,
   56698             :                                                  &result, obj);
   56699          14 :     if (unlikely(retcode == -1))
   56700           0 :         goto __pyx_fail;
   56701          14 :     return result;
   56702           0 : __pyx_fail:
   56703           0 :     result.memview = NULL;
   56704           0 :     result.data = NULL;
   56705           0 :     return result;
   56706             : }
   56707             : 
   56708             : /* ObjectToMemviewSlice */
   56709        2471 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_nn_npy_float64(PyObject *obj, int writable_flag) {
   56710        2471 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56711        2471 :     __Pyx_BufFmt_StackElem stack[1];
   56712        2471 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56713        2471 :     int retcode;
   56714        2471 :     if (obj == Py_None) {
   56715           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56716           0 :         return result;
   56717             :     }
   56718        2471 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56719             :                                                  PyBUF_RECORDS_RO | writable_flag, 2,
   56720             :                                                  &__Pyx_TypeInfo_nn_npy_float64, stack,
   56721             :                                                  &result, obj);
   56722        2471 :     if (unlikely(retcode == -1))
   56723           0 :         goto __pyx_fail;
   56724        2471 :     return result;
   56725           0 : __pyx_fail:
   56726           0 :     result.memview = NULL;
   56727           0 :     result.data = NULL;
   56728           0 :     return result;
   56729             : }
   56730             : 
   56731             : /* ObjectToMemviewSlice */
   56732          14 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds_long__double(PyObject *obj, int writable_flag) {
   56733          14 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56734          14 :     __Pyx_BufFmt_StackElem stack[1];
   56735          14 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56736          14 :     int retcode;
   56737          14 :     if (obj == Py_None) {
   56738           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56739           0 :         return result;
   56740             :     }
   56741          14 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56742             :                                                  PyBUF_RECORDS_RO | writable_flag, 2,
   56743             :                                                  &__Pyx_TypeInfo_long__double, stack,
   56744             :                                                  &result, obj);
   56745          14 :     if (unlikely(retcode == -1))
   56746           0 :         goto __pyx_fail;
   56747          14 :     return result;
   56748           0 : __pyx_fail:
   56749           0 :     result.memview = NULL;
   56750           0 :     result.data = NULL;
   56751           0 :     return result;
   56752             : }
   56753             : 
   56754             : /* ObjectToMemviewSlice */
   56755          14 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds___pyx_t_float_complex(PyObject *obj, int writable_flag) {
   56756          14 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56757          14 :     __Pyx_BufFmt_StackElem stack[1];
   56758          14 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56759          14 :     int retcode;
   56760          14 :     if (obj == Py_None) {
   56761           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56762           0 :         return result;
   56763             :     }
   56764          14 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56765             :                                                  PyBUF_RECORDS_RO | writable_flag, 2,
   56766             :                                                  &__Pyx_TypeInfo___pyx_t_float_complex, stack,
   56767             :                                                  &result, obj);
   56768          14 :     if (unlikely(retcode == -1))
   56769           0 :         goto __pyx_fail;
   56770          14 :     return result;
   56771           0 : __pyx_fail:
   56772           0 :     result.memview = NULL;
   56773           0 :     result.data = NULL;
   56774           0 :     return result;
   56775             : }
   56776             : 
   56777             : /* ObjectToMemviewSlice */
   56778          14 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds___pyx_t_double_complex(PyObject *obj, int writable_flag) {
   56779          14 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56780          14 :     __Pyx_BufFmt_StackElem stack[1];
   56781          14 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56782          14 :     int retcode;
   56783          14 :     if (obj == Py_None) {
   56784           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56785           0 :         return result;
   56786             :     }
   56787          14 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56788             :                                                  PyBUF_RECORDS_RO | writable_flag, 2,
   56789             :                                                  &__Pyx_TypeInfo___pyx_t_double_complex, stack,
   56790             :                                                  &result, obj);
   56791          14 :     if (unlikely(retcode == -1))
   56792           0 :         goto __pyx_fail;
   56793          14 :     return result;
   56794           0 : __pyx_fail:
   56795           0 :     result.memview = NULL;
   56796           0 :     result.data = NULL;
   56797           0 :     return result;
   56798             : }
   56799             : 
   56800             : /* ObjectToMemviewSlice */
   56801          14 :   static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dsds___pyx_t_long_double_complex(PyObject *obj, int writable_flag) {
   56802          14 :     __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
   56803          14 :     __Pyx_BufFmt_StackElem stack[1];
   56804          14 :     int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) };
   56805          14 :     int retcode;
   56806          14 :     if (obj == Py_None) {
   56807           0 :         result.memview = (struct __pyx_memoryview_obj *) Py_None;
   56808           0 :         return result;
   56809             :     }
   56810          14 :     retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0,
   56811             :                                                  PyBUF_RECORDS_RO | writable_flag, 2,
   56812             :                                                  &__Pyx_TypeInfo___pyx_t_long_double_complex, stack,
   56813             :                                                  &result, obj);
   56814          14 :     if (unlikely(retcode == -1))
   56815           0 :         goto __pyx_fail;
   56816          14 :     return result;
   56817           0 : __pyx_fail:
   56818           0 :     result.memview = NULL;
   56819           0 :     result.data = NULL;
   56820           0 :     return result;
   56821             : }
   56822             : 
   56823             : /* MemviewObjectToObject */
   56824           0 :   static PyObject *__pyx_memview_get_object(const char *itemp) {
   56825           0 :     PyObject *result = *(PyObject **) itemp;
   56826           0 :     Py_INCREF(result);
   56827           0 :     return result;
   56828             : }
   56829           0 : static int __pyx_memview_set_object(const char *itemp, PyObject *obj) {
   56830           0 :     Py_INCREF(obj);
   56831           0 :     Py_DECREF(*(PyObject **) itemp);
   56832           0 :     *(PyObject **) itemp = obj;
   56833           0 :     return 1;
   56834             : }
   56835             : 
   56836             : /* PyUCS4InUnicode */
   56837             :   #if PY_VERSION_HEX < 0x03090000 || (defined(PyUnicode_WCHAR_KIND) && defined(PyUnicode_AS_UNICODE))
   56838             : #if PY_VERSION_HEX < 0x03090000
   56839             : #define __Pyx_PyUnicode_AS_UNICODE(op) PyUnicode_AS_UNICODE(op)
   56840             : #define __Pyx_PyUnicode_GET_SIZE(op) PyUnicode_GET_SIZE(op)
   56841             : #else
   56842             : #define __Pyx_PyUnicode_AS_UNICODE(op) (((PyASCIIObject *)(op))->wstr)
   56843             : #define __Pyx_PyUnicode_GET_SIZE(op) ((PyCompactUnicodeObject *)(op))->wstr_length
   56844             : #endif
   56845             : #if !defined(Py_UNICODE_SIZE) || Py_UNICODE_SIZE == 2
   56846             : static int __Pyx_PyUnicodeBufferContainsUCS4_SP(Py_UNICODE* buffer, Py_ssize_t length, Py_UCS4 character) {
   56847             :     Py_UNICODE high_val, low_val;
   56848             :     Py_UNICODE* pos;
   56849             :     high_val = (Py_UNICODE) (0xD800 | (((character - 0x10000) >> 10) & ((1<<10)-1)));
   56850             :     low_val  = (Py_UNICODE) (0xDC00 | ( (character - 0x10000)        & ((1<<10)-1)));
   56851             :     for (pos=buffer; pos < buffer+length-1; pos++) {
   56852             :         if (unlikely((high_val == pos[0]) & (low_val == pos[1]))) return 1;
   56853             :     }
   56854             :     return 0;
   56855             : }
   56856             : #endif
   56857             : static int __Pyx_PyUnicodeBufferContainsUCS4_BMP(Py_UNICODE* buffer, Py_ssize_t length, Py_UCS4 character) {
   56858             :     Py_UNICODE uchar;
   56859             :     Py_UNICODE* pos;
   56860             :     uchar = (Py_UNICODE) character;
   56861             :     for (pos=buffer; pos < buffer+length; pos++) {
   56862             :         if (unlikely(uchar == pos[0])) return 1;
   56863             :     }
   56864             :     return 0;
   56865             : }
   56866             : #endif
   56867             : static CYTHON_INLINE int __Pyx_UnicodeContainsUCS4(PyObject* unicode, Py_UCS4 character) {
   56868             : #if CYTHON_PEP393_ENABLED
   56869             :     const int kind = PyUnicode_KIND(unicode);
   56870             :     #ifdef PyUnicode_WCHAR_KIND
   56871             :     if (likely(kind != PyUnicode_WCHAR_KIND))
   56872             :     #endif
   56873             :     {
   56874             :         Py_ssize_t i;
   56875             :         const void* udata = PyUnicode_DATA(unicode);
   56876             :         const Py_ssize_t length = PyUnicode_GET_LENGTH(unicode);
   56877             :         for (i=0; i < length; i++) {
   56878             :             if (unlikely(character == PyUnicode_READ(kind, udata, i))) return 1;
   56879             :         }
   56880             :         return 0;
   56881             :     }
   56882             : #elif PY_VERSION_HEX >= 0x03090000
   56883             :     #error Cannot use "UChar in Unicode" in Python 3.9 without PEP-393 unicode strings.
   56884             : #elif !defined(PyUnicode_AS_UNICODE)
   56885             :     #error Cannot use "UChar in Unicode" in Python < 3.9 without Py_UNICODE support.
   56886             : #endif
   56887             : #if PY_VERSION_HEX < 0x03090000 || (defined(PyUnicode_WCHAR_KIND) && defined(PyUnicode_AS_UNICODE))
   56888             : #if !defined(Py_UNICODE_SIZE) || Py_UNICODE_SIZE == 2
   56889             :     if ((sizeof(Py_UNICODE) == 2) && unlikely(character > 65535)) {
   56890             :         return __Pyx_PyUnicodeBufferContainsUCS4_SP(
   56891             :             __Pyx_PyUnicode_AS_UNICODE(unicode),
   56892             :             __Pyx_PyUnicode_GET_SIZE(unicode),
   56893             :             character);
   56894             :     } else
   56895             : #endif
   56896             :     {
   56897             :         return __Pyx_PyUnicodeBufferContainsUCS4_BMP(
   56898             :             __Pyx_PyUnicode_AS_UNICODE(unicode),
   56899             :             __Pyx_PyUnicode_GET_SIZE(unicode),
   56900             :             character);
   56901             :     }
   56902             : #endif
   56903             : }
   56904             : 
   56905             : /* MemviewDtypeToObject */
   56906           0 :   static CYTHON_INLINE PyObject *__pyx_memview_get_double__const__(const char *itemp) {
   56907           0 :     return (PyObject *) PyFloat_FromDouble(*(double const  *) itemp);
   56908             : }
   56909             : 
   56910             : /* FromPy */
   56911       16512 :   static __pyx_t_float_complex __Pyx_PyComplex_As___pyx_t_float_complex(PyObject* o) {
   56912       16512 :     Py_complex cval;
   56913             : #if !CYTHON_COMPILING_IN_PYPY
   56914       16512 :     if (PyComplex_CheckExact(o))
   56915       16505 :         cval = ((PyComplexObject *)o)->cval;
   56916             :     else
   56917             : #endif
   56918           7 :         cval = PyComplex_AsCComplex(o);
   56919       16512 :     return __pyx_t_float_complex_from_parts(
   56920             :                (float)cval.real,
   56921             :                (float)cval.imag);
   56922             : }
   56923             : 
   56924             : /* FromPy */
   56925       21940 :   static __pyx_t_double_complex __Pyx_PyComplex_As___pyx_t_double_complex(PyObject* o) {
   56926       21940 :     Py_complex cval;
   56927             : #if !CYTHON_COMPILING_IN_PYPY
   56928       21940 :     if (PyComplex_CheckExact(o))
   56929       21877 :         cval = ((PyComplexObject *)o)->cval;
   56930             :     else
   56931             : #endif
   56932          63 :         cval = PyComplex_AsCComplex(o);
   56933       21940 :     return __pyx_t_double_complex_from_parts(
   56934             :                (double)cval.real,
   56935             :                (double)cval.imag);
   56936             : }
   56937             : 
   56938             : /* FromPy */
   56939       16512 :   static __pyx_t_long_double_complex __Pyx_PyComplex_As___pyx_t_long_double_complex(PyObject* o) {
   56940       16512 :     Py_complex cval;
   56941             : #if !CYTHON_COMPILING_IN_PYPY
   56942       16512 :     if (PyComplex_CheckExact(o))
   56943          70 :         cval = ((PyComplexObject *)o)->cval;
   56944             :     else
   56945             : #endif
   56946       16442 :         cval = PyComplex_AsCComplex(o);
   56947       16512 :     return __pyx_t_long_double_complex_from_parts(
   56948             :                (long double)cval.real,
   56949             :                (long double)cval.imag);
   56950             : }
   56951             : 
   56952             : /* MemviewSliceCopyTemplate */
   56953             :   static __Pyx_memviewslice
   56954           0 : __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs,
   56955             :                                  const char *mode, int ndim,
   56956             :                                  size_t sizeof_dtype, int contig_flag,
   56957             :                                  int dtype_is_object)
   56958             : {
   56959             :     __Pyx_RefNannyDeclarations
   56960           0 :     int i;
   56961           0 :     __Pyx_memviewslice new_mvs = { 0, 0, { 0 }, { 0 }, { 0 } };
   56962           0 :     struct __pyx_memoryview_obj *from_memview = from_mvs->memview;
   56963           0 :     Py_buffer *buf = &from_memview->view;
   56964           0 :     PyObject *shape_tuple = NULL;
   56965           0 :     PyObject *temp_int = NULL;
   56966           0 :     struct __pyx_array_obj *array_obj = NULL;
   56967           0 :     struct __pyx_memoryview_obj *memview_obj = NULL;
   56968           0 :     __Pyx_RefNannySetupContext("__pyx_memoryview_copy_new_contig", 0);
   56969           0 :     for (i = 0; i < ndim; i++) {
   56970           0 :         if (unlikely(from_mvs->suboffsets[i] >= 0)) {
   56971           0 :             PyErr_Format(PyExc_ValueError, "Cannot copy memoryview slice with "
   56972             :                                            "indirect dimensions (axis %d)", i);
   56973           0 :             goto fail;
   56974             :         }
   56975             :     }
   56976           0 :     shape_tuple = PyTuple_New(ndim);
   56977           0 :     if (unlikely(!shape_tuple)) {
   56978           0 :         goto fail;
   56979             :     }
   56980             :     __Pyx_GOTREF(shape_tuple);
   56981           0 :     for(i = 0; i < ndim; i++) {
   56982           0 :         temp_int = PyInt_FromSsize_t(from_mvs->shape[i]);
   56983           0 :         if(unlikely(!temp_int)) {
   56984           0 :             goto fail;
   56985             :         } else {
   56986           0 :             PyTuple_SET_ITEM(shape_tuple, i, temp_int);
   56987           0 :             temp_int = NULL;
   56988             :         }
   56989             :     }
   56990           0 :     array_obj = __pyx_array_new(shape_tuple, sizeof_dtype, buf->format, (char *) mode, NULL);
   56991           0 :     if (unlikely(!array_obj)) {
   56992           0 :         goto fail;
   56993             :     }
   56994           0 :     __Pyx_GOTREF(array_obj);
   56995           0 :     memview_obj = (struct __pyx_memoryview_obj *) __pyx_memoryview_new(
   56996             :                                     (PyObject *) array_obj, contig_flag,
   56997             :                                     dtype_is_object,
   56998           0 :                                     from_mvs->memview->typeinfo);
   56999           0 :     if (unlikely(!memview_obj))
   57000           0 :         goto fail;
   57001           0 :     if (unlikely(__Pyx_init_memviewslice(memview_obj, ndim, &new_mvs, 1) < 0))
   57002           0 :         goto fail;
   57003           0 :     if (unlikely(__pyx_memoryview_copy_contents(*from_mvs, new_mvs, ndim, ndim,
   57004             :                                                 dtype_is_object) < 0))
   57005           0 :         goto fail;
   57006           0 :     goto no_fail;
   57007           0 : fail:
   57008           0 :     __Pyx_XDECREF(new_mvs.memview);
   57009           0 :     new_mvs.memview = NULL;
   57010           0 :     new_mvs.data = NULL;
   57011           0 : no_fail:
   57012           0 :     __Pyx_XDECREF(shape_tuple);
   57013           0 :     __Pyx_XDECREF(temp_int);
   57014           0 :     __Pyx_XDECREF(array_obj);
   57015           0 :     __Pyx_RefNannyFinishContext();
   57016           0 :     return new_mvs;
   57017             : }
   57018             : 
   57019             : /* MemviewSliceInit */
   57020             :   static int
   57021      536853 : __Pyx_init_memviewslice(struct __pyx_memoryview_obj *memview,
   57022             :                         int ndim,
   57023             :                         __Pyx_memviewslice *memviewslice,
   57024             :                         int memview_is_new_reference)
   57025             : {
   57026             :     __Pyx_RefNannyDeclarations
   57027      536853 :     int i, retval=-1;
   57028      536853 :     Py_buffer *buf = &memview->view;
   57029      536853 :     __Pyx_RefNannySetupContext("init_memviewslice", 0);
   57030      536853 :     if (unlikely(memviewslice->memview || memviewslice->data)) {
   57031           0 :         PyErr_SetString(PyExc_ValueError,
   57032             :             "memviewslice is already initialized!");
   57033           0 :         goto fail;
   57034             :     }
   57035      536853 :     if (buf->strides) {
   57036     1083062 :         for (i = 0; i < ndim; i++) {
   57037      546209 :             memviewslice->strides[i] = buf->strides[i];
   57038             :         }
   57039             :     } else {
   57040           0 :         Py_ssize_t stride = buf->itemsize;
   57041           0 :         for (i = ndim - 1; i >= 0; i--) {
   57042           0 :             memviewslice->strides[i] = stride;
   57043           0 :             stride *= buf->shape[i];
   57044             :         }
   57045             :     }
   57046     1083062 :     for (i = 0; i < ndim; i++) {
   57047      546209 :         memviewslice->shape[i]   = buf->shape[i];
   57048      546209 :         if (buf->suboffsets) {
   57049           0 :             memviewslice->suboffsets[i] = buf->suboffsets[i];
   57050             :         } else {
   57051      546209 :             memviewslice->suboffsets[i] = -1;
   57052             :         }
   57053             :     }
   57054      536853 :     memviewslice->memview = memview;
   57055      536853 :     memviewslice->data = (char *)buf->buf;
   57056      536853 :     if (__pyx_add_acquisition_count(memview) == 0 && !memview_is_new_reference) {
   57057      136725 :         Py_INCREF(memview);
   57058             :     }
   57059      536853 :     retval = 0;
   57060      536853 :     goto no_fail;
   57061           0 : fail:
   57062           0 :     memviewslice->memview = 0;
   57063           0 :     memviewslice->data = 0;
   57064           0 :     retval = -1;
   57065      536853 : no_fail:
   57066      536853 :     __Pyx_RefNannyFinishContext();
   57067      536853 :     return retval;
   57068             : }
   57069             : #ifndef Py_NO_RETURN
   57070             : #define Py_NO_RETURN
   57071             : #endif
   57072           0 : static void __pyx_fatalerror(const char *fmt, ...) Py_NO_RETURN {
   57073           0 :     va_list vargs;
   57074           0 :     char msg[200];
   57075             : #if PY_VERSION_HEX >= 0x030A0000 || defined(HAVE_STDARG_PROTOTYPES)
   57076           0 :     va_start(vargs, fmt);
   57077             : #else
   57078             :     va_start(vargs);
   57079             : #endif
   57080           0 :     vsnprintf(msg, 200, fmt, vargs);
   57081           0 :     va_end(vargs);
   57082           0 :     Py_FatalError(msg);
   57083             : }
   57084             : static CYTHON_INLINE int
   57085             : __pyx_add_acquisition_count_locked(__pyx_atomic_int_type *acquisition_count,
   57086             :                                    PyThread_type_lock lock)
   57087             : {
   57088             :     int result;
   57089             :     PyThread_acquire_lock(lock, 1);
   57090             :     result = (*acquisition_count)++;
   57091             :     PyThread_release_lock(lock);
   57092             :     return result;
   57093             : }
   57094             : static CYTHON_INLINE int
   57095             : __pyx_sub_acquisition_count_locked(__pyx_atomic_int_type *acquisition_count,
   57096             :                                    PyThread_type_lock lock)
   57097             : {
   57098             :     int result;
   57099             :     PyThread_acquire_lock(lock, 1);
   57100             :     result = (*acquisition_count)--;
   57101             :     PyThread_release_lock(lock);
   57102             :     return result;
   57103             : }
   57104             : static CYTHON_INLINE void
   57105      136725 : __Pyx_INC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno)
   57106             : {
   57107      136725 :     __pyx_nonatomic_int_type old_acquisition_count;
   57108      136725 :     struct __pyx_memoryview_obj *memview = memslice->memview;
   57109      136725 :     if (unlikely(!memview || (PyObject *) memview == Py_None)) {
   57110             :         return;
   57111             :     }
   57112      136725 :     old_acquisition_count = __pyx_add_acquisition_count(memview);
   57113      136725 :     if (unlikely(old_acquisition_count <= 0)) {
   57114           0 :         if (likely(old_acquisition_count == 0)) {
   57115           0 :             if (have_gil) {
   57116           0 :                 Py_INCREF((PyObject *) memview);
   57117             :             } else {
   57118           0 :                 PyGILState_STATE _gilstate = PyGILState_Ensure();
   57119           0 :                 Py_INCREF((PyObject *) memview);
   57120           0 :                 PyGILState_Release(_gilstate);
   57121             :             }
   57122             :         } else {
   57123           0 :             __pyx_fatalerror("Acquisition count is %d (line %d)",
   57124             :                              old_acquisition_count+1, lineno);
   57125             :         }
   57126             :     }
   57127             : }
   57128      673578 : static CYTHON_INLINE void __Pyx_XCLEAR_MEMVIEW(__Pyx_memviewslice *memslice,
   57129             :                                              int have_gil, int lineno) {
   57130      673578 :     __pyx_nonatomic_int_type old_acquisition_count;
   57131      673578 :     struct __pyx_memoryview_obj *memview = memslice->memview;
   57132      673578 :     if (unlikely(!memview || (PyObject *) memview == Py_None)) {
   57133           0 :         memslice->memview = NULL;
   57134           0 :         return;
   57135             :     }
   57136      673578 :     old_acquisition_count = __pyx_sub_acquisition_count(memview);
   57137      673578 :     memslice->data = NULL;
   57138      673578 :     if (likely(old_acquisition_count > 1)) {
   57139      136725 :         memslice->memview = NULL;
   57140      536853 :     } else if (likely(old_acquisition_count == 1)) {
   57141      536853 :         if (have_gil) {
   57142      536853 :             Py_CLEAR(memslice->memview);
   57143             :         } else {
   57144           0 :             PyGILState_STATE _gilstate = PyGILState_Ensure();
   57145           0 :             Py_CLEAR(memslice->memview);
   57146           0 :             PyGILState_Release(_gilstate);
   57147             :         }
   57148             :     } else {
   57149           0 :         __pyx_fatalerror("Acquisition count is %d (line %d)",
   57150             :                          old_acquisition_count-1, lineno);
   57151             :     }
   57152             : }
   57153             : 
   57154             : /* CIntFromPy */
   57155      381456 :   static CYTHON_INLINE npy_intp __Pyx_PyInt_As_npy_intp(PyObject *x) {
   57156             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   57157             : #pragma GCC diagnostic push
   57158             : #pragma GCC diagnostic ignored "-Wconversion"
   57159             : #endif
   57160      381456 :     const npy_intp neg_one = (npy_intp) -1, const_zero = (npy_intp) 0;
   57161             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   57162             : #pragma GCC diagnostic pop
   57163             : #endif
   57164      381456 :     const int is_unsigned = neg_one > const_zero;
   57165             : #if PY_MAJOR_VERSION < 3
   57166             :     if (likely(PyInt_Check(x))) {
   57167             :         if ((sizeof(npy_intp) < sizeof(long))) {
   57168             :             __PYX_VERIFY_RETURN_INT(npy_intp, long, PyInt_AS_LONG(x))
   57169             :         } else {
   57170             :             long val = PyInt_AS_LONG(x);
   57171             :             if (is_unsigned && unlikely(val < 0)) {
   57172             :                 goto raise_neg_overflow;
   57173             :             }
   57174             :             return (npy_intp) val;
   57175             :         }
   57176             :     }
   57177             : #endif
   57178      381456 :     if (unlikely(!PyLong_Check(x))) {
   57179        8059 :         npy_intp val;
   57180        8059 :         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
   57181        8059 :         if (!tmp) return (npy_intp) -1;
   57182        8059 :         val = __Pyx_PyInt_As_npy_intp(tmp);
   57183        8059 :         Py_DECREF(tmp);
   57184        8059 :         return val;
   57185             :     }
   57186      373397 :     if (is_unsigned) {
   57187             : #if CYTHON_USE_PYLONG_INTERNALS
   57188             :         if (unlikely(__Pyx_PyLong_IsNeg(x))) {
   57189             :             goto raise_neg_overflow;
   57190             :         } else if (__Pyx_PyLong_IsCompact(x)) {
   57191             :             __PYX_VERIFY_RETURN_INT(npy_intp, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
   57192             :         } else {
   57193             :             const digit* digits = __Pyx_PyLong_Digits(x);
   57194             :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   57195             :             switch (__Pyx_PyLong_DigitCount(x)) {
   57196             :                 case 2:
   57197             :                     if ((8 * sizeof(npy_intp) > 1 * PyLong_SHIFT)) {
   57198             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   57199             :                             __PYX_VERIFY_RETURN_INT(npy_intp, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57200             :                         } else if ((8 * sizeof(npy_intp) >= 2 * PyLong_SHIFT)) {
   57201             :                             return (npy_intp) (((((npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0]));
   57202             :                         }
   57203             :                     }
   57204             :                     break;
   57205             :                 case 3:
   57206             :                     if ((8 * sizeof(npy_intp) > 2 * PyLong_SHIFT)) {
   57207             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   57208             :                             __PYX_VERIFY_RETURN_INT(npy_intp, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57209             :                         } else if ((8 * sizeof(npy_intp) >= 3 * PyLong_SHIFT)) {
   57210             :                             return (npy_intp) (((((((npy_intp)digits[2]) << PyLong_SHIFT) | (npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0]));
   57211             :                         }
   57212             :                     }
   57213             :                     break;
   57214             :                 case 4:
   57215             :                     if ((8 * sizeof(npy_intp) > 3 * PyLong_SHIFT)) {
   57216             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   57217             :                             __PYX_VERIFY_RETURN_INT(npy_intp, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57218             :                         } else if ((8 * sizeof(npy_intp) >= 4 * PyLong_SHIFT)) {
   57219             :                             return (npy_intp) (((((((((npy_intp)digits[3]) << PyLong_SHIFT) | (npy_intp)digits[2]) << PyLong_SHIFT) | (npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0]));
   57220             :                         }
   57221             :                     }
   57222             :                     break;
   57223             :             }
   57224             :         }
   57225             : #endif
   57226             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
   57227             :         if (unlikely(Py_SIZE(x) < 0)) {
   57228             :             goto raise_neg_overflow;
   57229             :         }
   57230             : #else
   57231             :         {
   57232             :             int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
   57233             :             if (unlikely(result < 0))
   57234             :                 return (npy_intp) -1;
   57235             :             if (unlikely(result == 1))
   57236             :                 goto raise_neg_overflow;
   57237             :         }
   57238             : #endif
   57239             :         if ((sizeof(npy_intp) <= sizeof(unsigned long))) {
   57240             :             __PYX_VERIFY_RETURN_INT_EXC(npy_intp, unsigned long, PyLong_AsUnsignedLong(x))
   57241             : #ifdef HAVE_LONG_LONG
   57242             :         } else if ((sizeof(npy_intp) <= sizeof(unsigned PY_LONG_LONG))) {
   57243             :             __PYX_VERIFY_RETURN_INT_EXC(npy_intp, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
   57244             : #endif
   57245             :         }
   57246             :     } else {
   57247             : #if CYTHON_USE_PYLONG_INTERNALS
   57248      373397 :         if (__Pyx_PyLong_IsCompact(x)) {
   57249      373397 :             __PYX_VERIFY_RETURN_INT(npy_intp, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
   57250             :         } else {
   57251           0 :             const digit* digits = __Pyx_PyLong_Digits(x);
   57252           0 :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   57253           0 :             switch (__Pyx_PyLong_SignedDigitCount(x)) {
   57254             :                 case -2:
   57255           0 :                     if ((8 * sizeof(npy_intp) - 1 > 1 * PyLong_SHIFT)) {
   57256           0 :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   57257           0 :                             __PYX_VERIFY_RETURN_INT(npy_intp, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57258             :                         } else if ((8 * sizeof(npy_intp) - 1 > 2 * PyLong_SHIFT)) {
   57259             :                             return (npy_intp) (((npy_intp)-1)*(((((npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0])));
   57260             :                         }
   57261             :                     }
   57262             :                     break;
   57263             :                 case 2:
   57264           0 :                     if ((8 * sizeof(npy_intp) > 1 * PyLong_SHIFT)) {
   57265           0 :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   57266           0 :                             __PYX_VERIFY_RETURN_INT(npy_intp, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57267             :                         } else if ((8 * sizeof(npy_intp) - 1 > 2 * PyLong_SHIFT)) {
   57268             :                             return (npy_intp) ((((((npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0])));
   57269             :                         }
   57270             :                     }
   57271             :                     break;
   57272             :                 case -3:
   57273             :                     if ((8 * sizeof(npy_intp) - 1 > 2 * PyLong_SHIFT)) {
   57274             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   57275             :                             __PYX_VERIFY_RETURN_INT(npy_intp, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57276             :                         } else if ((8 * sizeof(npy_intp) - 1 > 3 * PyLong_SHIFT)) {
   57277             :                             return (npy_intp) (((npy_intp)-1)*(((((((npy_intp)digits[2]) << PyLong_SHIFT) | (npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0])));
   57278             :                         }
   57279             :                     }
   57280             :                     break;
   57281             :                 case 3:
   57282             :                     if ((8 * sizeof(npy_intp) > 2 * PyLong_SHIFT)) {
   57283             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   57284             :                             __PYX_VERIFY_RETURN_INT(npy_intp, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57285             :                         } else if ((8 * sizeof(npy_intp) - 1 > 3 * PyLong_SHIFT)) {
   57286             :                             return (npy_intp) ((((((((npy_intp)digits[2]) << PyLong_SHIFT) | (npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0])));
   57287             :                         }
   57288             :                     }
   57289             :                     break;
   57290             :                 case -4:
   57291             :                     if ((8 * sizeof(npy_intp) - 1 > 3 * PyLong_SHIFT)) {
   57292             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   57293             :                             __PYX_VERIFY_RETURN_INT(npy_intp, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57294             :                         } else if ((8 * sizeof(npy_intp) - 1 > 4 * PyLong_SHIFT)) {
   57295             :                             return (npy_intp) (((npy_intp)-1)*(((((((((npy_intp)digits[3]) << PyLong_SHIFT) | (npy_intp)digits[2]) << PyLong_SHIFT) | (npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0])));
   57296             :                         }
   57297             :                     }
   57298             :                     break;
   57299             :                 case 4:
   57300             :                     if ((8 * sizeof(npy_intp) > 3 * PyLong_SHIFT)) {
   57301             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   57302             :                             __PYX_VERIFY_RETURN_INT(npy_intp, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57303             :                         } else if ((8 * sizeof(npy_intp) - 1 > 4 * PyLong_SHIFT)) {
   57304             :                             return (npy_intp) ((((((((((npy_intp)digits[3]) << PyLong_SHIFT) | (npy_intp)digits[2]) << PyLong_SHIFT) | (npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0])));
   57305             :                         }
   57306             :                     }
   57307             :                     break;
   57308             :             }
   57309             :         }
   57310             : #endif
   57311           0 :         if ((sizeof(npy_intp) <= sizeof(long))) {
   57312           0 :             __PYX_VERIFY_RETURN_INT_EXC(npy_intp, long, PyLong_AsLong(x))
   57313             : #ifdef HAVE_LONG_LONG
   57314             :         } else if ((sizeof(npy_intp) <= sizeof(PY_LONG_LONG))) {
   57315             :             __PYX_VERIFY_RETURN_INT_EXC(npy_intp, PY_LONG_LONG, PyLong_AsLongLong(x))
   57316             : #endif
   57317             :         }
   57318             :     }
   57319             :     {
   57320             :         npy_intp val;
   57321             :         int ret = -1;
   57322             : #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
   57323             :         Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
   57324             :             x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
   57325             :         if (unlikely(bytes_copied == -1)) {
   57326             :         } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
   57327             :             goto raise_overflow;
   57328             :         } else {
   57329             :             ret = 0;
   57330             :         }
   57331             : #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
   57332             :         int one = 1; int is_little = (int)*(unsigned char *)&one;
   57333             :         unsigned char *bytes = (unsigned char *)&val;
   57334             :         ret = _PyLong_AsByteArray((PyLongObject *)x,
   57335             :                                     bytes, sizeof(val),
   57336             :                                     is_little, !is_unsigned);
   57337             : #else
   57338             :         PyObject *v;
   57339             :         PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
   57340             :         int bits, remaining_bits, is_negative = 0;
   57341             :         int chunk_size = (sizeof(long) < 8) ? 30 : 62;
   57342             :         if (likely(PyLong_CheckExact(x))) {
   57343             :             v = __Pyx_NewRef(x);
   57344             :         } else {
   57345             :             v = PyNumber_Long(x);
   57346             :             if (unlikely(!v)) return (npy_intp) -1;
   57347             :             assert(PyLong_CheckExact(v));
   57348             :         }
   57349             :         {
   57350             :             int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
   57351             :             if (unlikely(result < 0)) {
   57352             :                 Py_DECREF(v);
   57353             :                 return (npy_intp) -1;
   57354             :             }
   57355             :             is_negative = result == 1;
   57356             :         }
   57357             :         if (is_unsigned && unlikely(is_negative)) {
   57358             :             Py_DECREF(v);
   57359             :             goto raise_neg_overflow;
   57360             :         } else if (is_negative) {
   57361             :             stepval = PyNumber_Invert(v);
   57362             :             Py_DECREF(v);
   57363             :             if (unlikely(!stepval))
   57364             :                 return (npy_intp) -1;
   57365             :         } else {
   57366             :             stepval = v;
   57367             :         }
   57368             :         v = NULL;
   57369             :         val = (npy_intp) 0;
   57370             :         mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
   57371             :         shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
   57372             :         for (bits = 0; bits < (int) sizeof(npy_intp) * 8 - chunk_size; bits += chunk_size) {
   57373             :             PyObject *tmp, *digit;
   57374             :             long idigit;
   57375             :             digit = PyNumber_And(stepval, mask);
   57376             :             if (unlikely(!digit)) goto done;
   57377             :             idigit = PyLong_AsLong(digit);
   57378             :             Py_DECREF(digit);
   57379             :             if (unlikely(idigit < 0)) goto done;
   57380             :             val |= ((npy_intp) idigit) << bits;
   57381             :             tmp = PyNumber_Rshift(stepval, shift);
   57382             :             if (unlikely(!tmp)) goto done;
   57383             :             Py_DECREF(stepval); stepval = tmp;
   57384             :         }
   57385             :         Py_DECREF(shift); shift = NULL;
   57386             :         Py_DECREF(mask); mask = NULL;
   57387             :         {
   57388             :             long idigit = PyLong_AsLong(stepval);
   57389             :             if (unlikely(idigit < 0)) goto done;
   57390             :             remaining_bits = ((int) sizeof(npy_intp) * 8) - bits - (is_unsigned ? 0 : 1);
   57391             :             if (unlikely(idigit >= (1L << remaining_bits)))
   57392             :                 goto raise_overflow;
   57393             :             val |= ((npy_intp) idigit) << bits;
   57394             :         }
   57395             :         if (!is_unsigned) {
   57396             :             if (unlikely(val & (((npy_intp) 1) << (sizeof(npy_intp) * 8 - 1))))
   57397             :                 goto raise_overflow;
   57398             :             if (is_negative)
   57399             :                 val = ~val;
   57400             :         }
   57401             :         ret = 0;
   57402             :     done:
   57403             :         Py_XDECREF(shift);
   57404             :         Py_XDECREF(mask);
   57405             :         Py_XDECREF(stepval);
   57406             : #endif
   57407             :         if (unlikely(ret))
   57408             :             return (npy_intp) -1;
   57409             :         return val;
   57410             :     }
   57411             : raise_overflow:
   57412             :     PyErr_SetString(PyExc_OverflowError,
   57413             :         "value too large to convert to npy_intp");
   57414             :     return (npy_intp) -1;
   57415             : raise_neg_overflow:
   57416             :     PyErr_SetString(PyExc_OverflowError,
   57417             :         "can't convert negative value to npy_intp");
   57418             :     return (npy_intp) -1;
   57419             : }
   57420             : 
   57421             : /* CIntToPy */
   57422      154969 :   static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_intp(npy_intp value) {
   57423             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   57424             : #pragma GCC diagnostic push
   57425             : #pragma GCC diagnostic ignored "-Wconversion"
   57426             : #endif
   57427      154969 :     const npy_intp neg_one = (npy_intp) -1, const_zero = (npy_intp) 0;
   57428             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   57429             : #pragma GCC diagnostic pop
   57430             : #endif
   57431      154969 :     const int is_unsigned = neg_one > const_zero;
   57432      154969 :     if (is_unsigned) {
   57433             :         if (sizeof(npy_intp) < sizeof(long)) {
   57434             :             return PyInt_FromLong((long) value);
   57435             :         } else if (sizeof(npy_intp) <= sizeof(unsigned long)) {
   57436             :             return PyLong_FromUnsignedLong((unsigned long) value);
   57437             : #ifdef HAVE_LONG_LONG
   57438             :         } else if (sizeof(npy_intp) <= sizeof(unsigned PY_LONG_LONG)) {
   57439             :             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
   57440             : #endif
   57441             :         }
   57442             :     } else {
   57443      154969 :         if (sizeof(npy_intp) <= sizeof(long)) {
   57444      154969 :             return PyInt_FromLong((long) value);
   57445             : #ifdef HAVE_LONG_LONG
   57446             :         } else if (sizeof(npy_intp) <= sizeof(PY_LONG_LONG)) {
   57447             :             return PyLong_FromLongLong((PY_LONG_LONG) value);
   57448             : #endif
   57449             :         }
   57450             :     }
   57451             :     {
   57452             :         unsigned char *bytes = (unsigned char *)&value;
   57453             : #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
   57454             :         if (is_unsigned) {
   57455             :             return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
   57456             :         } else {
   57457             :             return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
   57458             :         }
   57459             : #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
   57460             :         int one = 1; int little = (int)*(unsigned char *)&one;
   57461             :         return _PyLong_FromByteArray(bytes, sizeof(npy_intp),
   57462             :                                      little, !is_unsigned);
   57463             : #else
   57464             :         int one = 1; int little = (int)*(unsigned char *)&one;
   57465             :         PyObject *from_bytes, *result = NULL;
   57466             :         PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
   57467             :         from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
   57468             :         if (!from_bytes) return NULL;
   57469             :         py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(npy_intp));
   57470             :         if (!py_bytes) goto limited_bad;
   57471             :         order_str = PyUnicode_FromString(little ? "little" : "big");
   57472             :         if (!order_str) goto limited_bad;
   57473             :         arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
   57474             :         if (!arg_tuple) goto limited_bad;
   57475             :         if (!is_unsigned) {
   57476             :             kwds = PyDict_New();
   57477             :             if (!kwds) goto limited_bad;
   57478             :             if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
   57479             :         }
   57480             :         result = PyObject_Call(from_bytes, arg_tuple, kwds);
   57481             :         limited_bad:
   57482             :         Py_XDECREF(kwds);
   57483             :         Py_XDECREF(arg_tuple);
   57484             :         Py_XDECREF(order_str);
   57485             :         Py_XDECREF(py_bytes);
   57486             :         Py_XDECREF(from_bytes);
   57487             :         return result;
   57488             : #endif
   57489             :     }
   57490             : }
   57491             : 
   57492             : /* CIntToPy */
   57493      410233 :   static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
   57494             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   57495             : #pragma GCC diagnostic push
   57496             : #pragma GCC diagnostic ignored "-Wconversion"
   57497             : #endif
   57498      410233 :     const int neg_one = (int) -1, const_zero = (int) 0;
   57499             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   57500             : #pragma GCC diagnostic pop
   57501             : #endif
   57502      410233 :     const int is_unsigned = neg_one > const_zero;
   57503      410233 :     if (is_unsigned) {
   57504             :         if (sizeof(int) < sizeof(long)) {
   57505             :             return PyInt_FromLong((long) value);
   57506             :         } else if (sizeof(int) <= sizeof(unsigned long)) {
   57507             :             return PyLong_FromUnsignedLong((unsigned long) value);
   57508             : #ifdef HAVE_LONG_LONG
   57509             :         } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
   57510             :             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
   57511             : #endif
   57512             :         }
   57513             :     } else {
   57514      410233 :         if (sizeof(int) <= sizeof(long)) {
   57515      410233 :             return PyInt_FromLong((long) value);
   57516             : #ifdef HAVE_LONG_LONG
   57517             :         } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
   57518             :             return PyLong_FromLongLong((PY_LONG_LONG) value);
   57519             : #endif
   57520             :         }
   57521             :     }
   57522             :     {
   57523             :         unsigned char *bytes = (unsigned char *)&value;
   57524             : #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
   57525             :         if (is_unsigned) {
   57526             :             return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
   57527             :         } else {
   57528             :             return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
   57529             :         }
   57530             : #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
   57531             :         int one = 1; int little = (int)*(unsigned char *)&one;
   57532             :         return _PyLong_FromByteArray(bytes, sizeof(int),
   57533             :                                      little, !is_unsigned);
   57534             : #else
   57535             :         int one = 1; int little = (int)*(unsigned char *)&one;
   57536             :         PyObject *from_bytes, *result = NULL;
   57537             :         PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
   57538             :         from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
   57539             :         if (!from_bytes) return NULL;
   57540             :         py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int));
   57541             :         if (!py_bytes) goto limited_bad;
   57542             :         order_str = PyUnicode_FromString(little ? "little" : "big");
   57543             :         if (!order_str) goto limited_bad;
   57544             :         arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
   57545             :         if (!arg_tuple) goto limited_bad;
   57546             :         if (!is_unsigned) {
   57547             :             kwds = PyDict_New();
   57548             :             if (!kwds) goto limited_bad;
   57549             :             if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
   57550             :         }
   57551             :         result = PyObject_Call(from_bytes, arg_tuple, kwds);
   57552             :         limited_bad:
   57553             :         Py_XDECREF(kwds);
   57554             :         Py_XDECREF(arg_tuple);
   57555             :         Py_XDECREF(order_str);
   57556             :         Py_XDECREF(py_bytes);
   57557             :         Py_XDECREF(from_bytes);
   57558             :         return result;
   57559             : #endif
   57560             :     }
   57561             : }
   57562             : 
   57563             : /* CIntToPy */
   57564           0 :   static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
   57565             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   57566             : #pragma GCC diagnostic push
   57567             : #pragma GCC diagnostic ignored "-Wconversion"
   57568             : #endif
   57569           0 :     const long neg_one = (long) -1, const_zero = (long) 0;
   57570             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   57571             : #pragma GCC diagnostic pop
   57572             : #endif
   57573           0 :     const int is_unsigned = neg_one > const_zero;
   57574           0 :     if (is_unsigned) {
   57575             :         if (sizeof(long) < sizeof(long)) {
   57576             :             return PyInt_FromLong((long) value);
   57577             :         } else if (sizeof(long) <= sizeof(unsigned long)) {
   57578             :             return PyLong_FromUnsignedLong((unsigned long) value);
   57579             : #ifdef HAVE_LONG_LONG
   57580             :         } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
   57581             :             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
   57582             : #endif
   57583             :         }
   57584             :     } else {
   57585           0 :         if (sizeof(long) <= sizeof(long)) {
   57586           0 :             return PyInt_FromLong((long) value);
   57587             : #ifdef HAVE_LONG_LONG
   57588             :         } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
   57589             :             return PyLong_FromLongLong((PY_LONG_LONG) value);
   57590             : #endif
   57591             :         }
   57592             :     }
   57593             :     {
   57594             :         unsigned char *bytes = (unsigned char *)&value;
   57595             : #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
   57596             :         if (is_unsigned) {
   57597             :             return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
   57598             :         } else {
   57599             :             return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
   57600             :         }
   57601             : #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
   57602             :         int one = 1; int little = (int)*(unsigned char *)&one;
   57603             :         return _PyLong_FromByteArray(bytes, sizeof(long),
   57604             :                                      little, !is_unsigned);
   57605             : #else
   57606             :         int one = 1; int little = (int)*(unsigned char *)&one;
   57607             :         PyObject *from_bytes, *result = NULL;
   57608             :         PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
   57609             :         from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
   57610             :         if (!from_bytes) return NULL;
   57611             :         py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long));
   57612             :         if (!py_bytes) goto limited_bad;
   57613             :         order_str = PyUnicode_FromString(little ? "little" : "big");
   57614             :         if (!order_str) goto limited_bad;
   57615             :         arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
   57616             :         if (!arg_tuple) goto limited_bad;
   57617             :         if (!is_unsigned) {
   57618             :             kwds = PyDict_New();
   57619             :             if (!kwds) goto limited_bad;
   57620             :             if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
   57621             :         }
   57622             :         result = PyObject_Call(from_bytes, arg_tuple, kwds);
   57623             :         limited_bad:
   57624             :         Py_XDECREF(kwds);
   57625             :         Py_XDECREF(arg_tuple);
   57626             :         Py_XDECREF(order_str);
   57627             :         Py_XDECREF(py_bytes);
   57628             :         Py_XDECREF(from_bytes);
   57629             :         return result;
   57630             : #endif
   57631             :     }
   57632             : }
   57633             : 
   57634             : /* CIntFromPy */
   57635       13719 :   static CYTHON_INLINE npy_bool __Pyx_PyInt_As_npy_bool(PyObject *x) {
   57636             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   57637             : #pragma GCC diagnostic push
   57638             : #pragma GCC diagnostic ignored "-Wconversion"
   57639             : #endif
   57640       13719 :     const npy_bool neg_one = (npy_bool) -1, const_zero = (npy_bool) 0;
   57641             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   57642             : #pragma GCC diagnostic pop
   57643             : #endif
   57644       13719 :     const int is_unsigned = neg_one > const_zero;
   57645             : #if PY_MAJOR_VERSION < 3
   57646             :     if (likely(PyInt_Check(x))) {
   57647             :         if ((sizeof(npy_bool) < sizeof(long))) {
   57648             :             __PYX_VERIFY_RETURN_INT(npy_bool, long, PyInt_AS_LONG(x))
   57649             :         } else {
   57650             :             long val = PyInt_AS_LONG(x);
   57651             :             if (is_unsigned && unlikely(val < 0)) {
   57652             :                 goto raise_neg_overflow;
   57653             :             }
   57654             :             return (npy_bool) val;
   57655             :         }
   57656             :     }
   57657             : #endif
   57658       13719 :     if (unlikely(!PyLong_Check(x))) {
   57659           7 :         npy_bool val;
   57660           7 :         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
   57661           7 :         if (!tmp) return (npy_bool) -1;
   57662           7 :         val = __Pyx_PyInt_As_npy_bool(tmp);
   57663           7 :         Py_DECREF(tmp);
   57664           7 :         return val;
   57665             :     }
   57666       13712 :     if (is_unsigned) {
   57667             : #if CYTHON_USE_PYLONG_INTERNALS
   57668       13712 :         if (unlikely(__Pyx_PyLong_IsNeg(x))) {
   57669           0 :             goto raise_neg_overflow;
   57670       13712 :         } else if (__Pyx_PyLong_IsCompact(x)) {
   57671       13712 :             __PYX_VERIFY_RETURN_INT(npy_bool, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
   57672             :         } else {
   57673           0 :             const digit* digits = __Pyx_PyLong_Digits(x);
   57674           0 :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   57675           0 :             switch (__Pyx_PyLong_DigitCount(x)) {
   57676             :                 case 2:
   57677             :                     if ((8 * sizeof(npy_bool) > 1 * PyLong_SHIFT)) {
   57678             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   57679             :                             __PYX_VERIFY_RETURN_INT(npy_bool, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57680             :                         } else if ((8 * sizeof(npy_bool) >= 2 * PyLong_SHIFT)) {
   57681             :                             return (npy_bool) (((((npy_bool)digits[1]) << PyLong_SHIFT) | (npy_bool)digits[0]));
   57682             :                         }
   57683             :                     }
   57684             :                     break;
   57685             :                 case 3:
   57686             :                     if ((8 * sizeof(npy_bool) > 2 * PyLong_SHIFT)) {
   57687             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   57688             :                             __PYX_VERIFY_RETURN_INT(npy_bool, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57689             :                         } else if ((8 * sizeof(npy_bool) >= 3 * PyLong_SHIFT)) {
   57690             :                             return (npy_bool) (((((((npy_bool)digits[2]) << PyLong_SHIFT) | (npy_bool)digits[1]) << PyLong_SHIFT) | (npy_bool)digits[0]));
   57691             :                         }
   57692             :                     }
   57693             :                     break;
   57694             :                 case 4:
   57695           0 :                     if ((8 * sizeof(npy_bool) > 3 * PyLong_SHIFT)) {
   57696             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   57697             :                             __PYX_VERIFY_RETURN_INT(npy_bool, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57698             :                         } else if ((8 * sizeof(npy_bool) >= 4 * PyLong_SHIFT)) {
   57699             :                             return (npy_bool) (((((((((npy_bool)digits[3]) << PyLong_SHIFT) | (npy_bool)digits[2]) << PyLong_SHIFT) | (npy_bool)digits[1]) << PyLong_SHIFT) | (npy_bool)digits[0]));
   57700             :                         }
   57701             :                     }
   57702           0 :                     break;
   57703             :             }
   57704             :         }
   57705             : #endif
   57706             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
   57707             :         if (unlikely(Py_SIZE(x) < 0)) {
   57708             :             goto raise_neg_overflow;
   57709             :         }
   57710             : #else
   57711             :         {
   57712           0 :             int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
   57713           0 :             if (unlikely(result < 0))
   57714             :                 return (npy_bool) -1;
   57715           0 :             if (unlikely(result == 1))
   57716           0 :                 goto raise_neg_overflow;
   57717             :         }
   57718             : #endif
   57719           0 :         if ((sizeof(npy_bool) <= sizeof(unsigned long))) {
   57720           0 :             __PYX_VERIFY_RETURN_INT_EXC(npy_bool, unsigned long, PyLong_AsUnsignedLong(x))
   57721             : #ifdef HAVE_LONG_LONG
   57722             :         } else if ((sizeof(npy_bool) <= sizeof(unsigned PY_LONG_LONG))) {
   57723             :             __PYX_VERIFY_RETURN_INT_EXC(npy_bool, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
   57724             : #endif
   57725             :         }
   57726             :     } else {
   57727             : #if CYTHON_USE_PYLONG_INTERNALS
   57728             :         if (__Pyx_PyLong_IsCompact(x)) {
   57729             :             __PYX_VERIFY_RETURN_INT(npy_bool, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
   57730             :         } else {
   57731             :             const digit* digits = __Pyx_PyLong_Digits(x);
   57732             :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   57733             :             switch (__Pyx_PyLong_SignedDigitCount(x)) {
   57734             :                 case -2:
   57735             :                     if ((8 * sizeof(npy_bool) - 1 > 1 * PyLong_SHIFT)) {
   57736             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   57737             :                             __PYX_VERIFY_RETURN_INT(npy_bool, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57738             :                         } else if ((8 * sizeof(npy_bool) - 1 > 2 * PyLong_SHIFT)) {
   57739             :                             return (npy_bool) (((npy_bool)-1)*(((((npy_bool)digits[1]) << PyLong_SHIFT) | (npy_bool)digits[0])));
   57740             :                         }
   57741             :                     }
   57742             :                     break;
   57743             :                 case 2:
   57744             :                     if ((8 * sizeof(npy_bool) > 1 * PyLong_SHIFT)) {
   57745             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   57746             :                             __PYX_VERIFY_RETURN_INT(npy_bool, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57747             :                         } else if ((8 * sizeof(npy_bool) - 1 > 2 * PyLong_SHIFT)) {
   57748             :                             return (npy_bool) ((((((npy_bool)digits[1]) << PyLong_SHIFT) | (npy_bool)digits[0])));
   57749             :                         }
   57750             :                     }
   57751             :                     break;
   57752             :                 case -3:
   57753             :                     if ((8 * sizeof(npy_bool) - 1 > 2 * PyLong_SHIFT)) {
   57754             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   57755             :                             __PYX_VERIFY_RETURN_INT(npy_bool, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57756             :                         } else if ((8 * sizeof(npy_bool) - 1 > 3 * PyLong_SHIFT)) {
   57757             :                             return (npy_bool) (((npy_bool)-1)*(((((((npy_bool)digits[2]) << PyLong_SHIFT) | (npy_bool)digits[1]) << PyLong_SHIFT) | (npy_bool)digits[0])));
   57758             :                         }
   57759             :                     }
   57760             :                     break;
   57761             :                 case 3:
   57762             :                     if ((8 * sizeof(npy_bool) > 2 * PyLong_SHIFT)) {
   57763             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   57764             :                             __PYX_VERIFY_RETURN_INT(npy_bool, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57765             :                         } else if ((8 * sizeof(npy_bool) - 1 > 3 * PyLong_SHIFT)) {
   57766             :                             return (npy_bool) ((((((((npy_bool)digits[2]) << PyLong_SHIFT) | (npy_bool)digits[1]) << PyLong_SHIFT) | (npy_bool)digits[0])));
   57767             :                         }
   57768             :                     }
   57769             :                     break;
   57770             :                 case -4:
   57771             :                     if ((8 * sizeof(npy_bool) - 1 > 3 * PyLong_SHIFT)) {
   57772             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   57773             :                             __PYX_VERIFY_RETURN_INT(npy_bool, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57774             :                         } else if ((8 * sizeof(npy_bool) - 1 > 4 * PyLong_SHIFT)) {
   57775             :                             return (npy_bool) (((npy_bool)-1)*(((((((((npy_bool)digits[3]) << PyLong_SHIFT) | (npy_bool)digits[2]) << PyLong_SHIFT) | (npy_bool)digits[1]) << PyLong_SHIFT) | (npy_bool)digits[0])));
   57776             :                         }
   57777             :                     }
   57778             :                     break;
   57779             :                 case 4:
   57780             :                     if ((8 * sizeof(npy_bool) > 3 * PyLong_SHIFT)) {
   57781             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   57782             :                             __PYX_VERIFY_RETURN_INT(npy_bool, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57783             :                         } else if ((8 * sizeof(npy_bool) - 1 > 4 * PyLong_SHIFT)) {
   57784             :                             return (npy_bool) ((((((((((npy_bool)digits[3]) << PyLong_SHIFT) | (npy_bool)digits[2]) << PyLong_SHIFT) | (npy_bool)digits[1]) << PyLong_SHIFT) | (npy_bool)digits[0])));
   57785             :                         }
   57786             :                     }
   57787             :                     break;
   57788             :             }
   57789             :         }
   57790             : #endif
   57791             :         if ((sizeof(npy_bool) <= sizeof(long))) {
   57792             :             __PYX_VERIFY_RETURN_INT_EXC(npy_bool, long, PyLong_AsLong(x))
   57793             : #ifdef HAVE_LONG_LONG
   57794             :         } else if ((sizeof(npy_bool) <= sizeof(PY_LONG_LONG))) {
   57795             :             __PYX_VERIFY_RETURN_INT_EXC(npy_bool, PY_LONG_LONG, PyLong_AsLongLong(x))
   57796             : #endif
   57797             :         }
   57798             :     }
   57799             :     {
   57800             :         npy_bool val;
   57801             :         int ret = -1;
   57802             : #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
   57803             :         Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
   57804             :             x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
   57805             :         if (unlikely(bytes_copied == -1)) {
   57806             :         } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
   57807             :             goto raise_overflow;
   57808             :         } else {
   57809             :             ret = 0;
   57810             :         }
   57811             : #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
   57812             :         int one = 1; int is_little = (int)*(unsigned char *)&one;
   57813             :         unsigned char *bytes = (unsigned char *)&val;
   57814             :         ret = _PyLong_AsByteArray((PyLongObject *)x,
   57815             :                                     bytes, sizeof(val),
   57816             :                                     is_little, !is_unsigned);
   57817             : #else
   57818             :         PyObject *v;
   57819             :         PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
   57820             :         int bits, remaining_bits, is_negative = 0;
   57821             :         int chunk_size = (sizeof(long) < 8) ? 30 : 62;
   57822             :         if (likely(PyLong_CheckExact(x))) {
   57823             :             v = __Pyx_NewRef(x);
   57824             :         } else {
   57825             :             v = PyNumber_Long(x);
   57826             :             if (unlikely(!v)) return (npy_bool) -1;
   57827             :             assert(PyLong_CheckExact(v));
   57828             :         }
   57829             :         {
   57830             :             int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
   57831             :             if (unlikely(result < 0)) {
   57832             :                 Py_DECREF(v);
   57833             :                 return (npy_bool) -1;
   57834             :             }
   57835             :             is_negative = result == 1;
   57836             :         }
   57837             :         if (is_unsigned && unlikely(is_negative)) {
   57838             :             Py_DECREF(v);
   57839             :             goto raise_neg_overflow;
   57840             :         } else if (is_negative) {
   57841             :             stepval = PyNumber_Invert(v);
   57842             :             Py_DECREF(v);
   57843             :             if (unlikely(!stepval))
   57844             :                 return (npy_bool) -1;
   57845             :         } else {
   57846             :             stepval = v;
   57847             :         }
   57848             :         v = NULL;
   57849             :         val = (npy_bool) 0;
   57850             :         mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
   57851             :         shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
   57852             :         for (bits = 0; bits < (int) sizeof(npy_bool) * 8 - chunk_size; bits += chunk_size) {
   57853             :             PyObject *tmp, *digit;
   57854             :             long idigit;
   57855             :             digit = PyNumber_And(stepval, mask);
   57856             :             if (unlikely(!digit)) goto done;
   57857             :             idigit = PyLong_AsLong(digit);
   57858             :             Py_DECREF(digit);
   57859             :             if (unlikely(idigit < 0)) goto done;
   57860             :             val |= ((npy_bool) idigit) << bits;
   57861             :             tmp = PyNumber_Rshift(stepval, shift);
   57862             :             if (unlikely(!tmp)) goto done;
   57863             :             Py_DECREF(stepval); stepval = tmp;
   57864             :         }
   57865             :         Py_DECREF(shift); shift = NULL;
   57866             :         Py_DECREF(mask); mask = NULL;
   57867             :         {
   57868             :             long idigit = PyLong_AsLong(stepval);
   57869             :             if (unlikely(idigit < 0)) goto done;
   57870             :             remaining_bits = ((int) sizeof(npy_bool) * 8) - bits - (is_unsigned ? 0 : 1);
   57871             :             if (unlikely(idigit >= (1L << remaining_bits)))
   57872             :                 goto raise_overflow;
   57873             :             val |= ((npy_bool) idigit) << bits;
   57874             :         }
   57875             :         if (!is_unsigned) {
   57876             :             if (unlikely(val & (((npy_bool) 1) << (sizeof(npy_bool) * 8 - 1))))
   57877             :                 goto raise_overflow;
   57878             :             if (is_negative)
   57879             :                 val = ~val;
   57880             :         }
   57881             :         ret = 0;
   57882             :     done:
   57883             :         Py_XDECREF(shift);
   57884             :         Py_XDECREF(mask);
   57885             :         Py_XDECREF(stepval);
   57886             : #endif
   57887             :         if (unlikely(ret))
   57888             :             return (npy_bool) -1;
   57889             :         return val;
   57890             :     }
   57891           0 : raise_overflow:
   57892           0 :     PyErr_SetString(PyExc_OverflowError,
   57893             :         "value too large to convert to npy_bool");
   57894           0 :     return (npy_bool) -1;
   57895           0 : raise_neg_overflow:
   57896           0 :     PyErr_SetString(PyExc_OverflowError,
   57897             :         "can't convert negative value to npy_bool");
   57898           0 :     return (npy_bool) -1;
   57899             : }
   57900             : 
   57901             : /* CIntFromPy */
   57902       10324 :   static CYTHON_INLINE npy_int8 __Pyx_PyInt_As_npy_int8(PyObject *x) {
   57903             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   57904             : #pragma GCC diagnostic push
   57905             : #pragma GCC diagnostic ignored "-Wconversion"
   57906             : #endif
   57907       10324 :     const npy_int8 neg_one = (npy_int8) -1, const_zero = (npy_int8) 0;
   57908             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   57909             : #pragma GCC diagnostic pop
   57910             : #endif
   57911       10324 :     const int is_unsigned = neg_one > const_zero;
   57912             : #if PY_MAJOR_VERSION < 3
   57913             :     if (likely(PyInt_Check(x))) {
   57914             :         if ((sizeof(npy_int8) < sizeof(long))) {
   57915             :             __PYX_VERIFY_RETURN_INT(npy_int8, long, PyInt_AS_LONG(x))
   57916             :         } else {
   57917             :             long val = PyInt_AS_LONG(x);
   57918             :             if (is_unsigned && unlikely(val < 0)) {
   57919             :                 goto raise_neg_overflow;
   57920             :             }
   57921             :             return (npy_int8) val;
   57922             :         }
   57923             :     }
   57924             : #endif
   57925       10324 :     if (unlikely(!PyLong_Check(x))) {
   57926           7 :         npy_int8 val;
   57927           7 :         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
   57928           7 :         if (!tmp) return (npy_int8) -1;
   57929           7 :         val = __Pyx_PyInt_As_npy_int8(tmp);
   57930           7 :         Py_DECREF(tmp);
   57931           7 :         return val;
   57932             :     }
   57933       10317 :     if (is_unsigned) {
   57934             : #if CYTHON_USE_PYLONG_INTERNALS
   57935             :         if (unlikely(__Pyx_PyLong_IsNeg(x))) {
   57936             :             goto raise_neg_overflow;
   57937             :         } else if (__Pyx_PyLong_IsCompact(x)) {
   57938             :             __PYX_VERIFY_RETURN_INT(npy_int8, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
   57939             :         } else {
   57940             :             const digit* digits = __Pyx_PyLong_Digits(x);
   57941             :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   57942             :             switch (__Pyx_PyLong_DigitCount(x)) {
   57943             :                 case 2:
   57944             :                     if ((8 * sizeof(npy_int8) > 1 * PyLong_SHIFT)) {
   57945             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   57946             :                             __PYX_VERIFY_RETURN_INT(npy_int8, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57947             :                         } else if ((8 * sizeof(npy_int8) >= 2 * PyLong_SHIFT)) {
   57948             :                             return (npy_int8) (((((npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0]));
   57949             :                         }
   57950             :                     }
   57951             :                     break;
   57952             :                 case 3:
   57953             :                     if ((8 * sizeof(npy_int8) > 2 * PyLong_SHIFT)) {
   57954             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   57955             :                             __PYX_VERIFY_RETURN_INT(npy_int8, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57956             :                         } else if ((8 * sizeof(npy_int8) >= 3 * PyLong_SHIFT)) {
   57957             :                             return (npy_int8) (((((((npy_int8)digits[2]) << PyLong_SHIFT) | (npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0]));
   57958             :                         }
   57959             :                     }
   57960             :                     break;
   57961             :                 case 4:
   57962             :                     if ((8 * sizeof(npy_int8) > 3 * PyLong_SHIFT)) {
   57963             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   57964             :                             __PYX_VERIFY_RETURN_INT(npy_int8, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   57965             :                         } else if ((8 * sizeof(npy_int8) >= 4 * PyLong_SHIFT)) {
   57966             :                             return (npy_int8) (((((((((npy_int8)digits[3]) << PyLong_SHIFT) | (npy_int8)digits[2]) << PyLong_SHIFT) | (npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0]));
   57967             :                         }
   57968             :                     }
   57969             :                     break;
   57970             :             }
   57971             :         }
   57972             : #endif
   57973             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
   57974             :         if (unlikely(Py_SIZE(x) < 0)) {
   57975             :             goto raise_neg_overflow;
   57976             :         }
   57977             : #else
   57978             :         {
   57979             :             int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
   57980             :             if (unlikely(result < 0))
   57981             :                 return (npy_int8) -1;
   57982             :             if (unlikely(result == 1))
   57983             :                 goto raise_neg_overflow;
   57984             :         }
   57985             : #endif
   57986             :         if ((sizeof(npy_int8) <= sizeof(unsigned long))) {
   57987             :             __PYX_VERIFY_RETURN_INT_EXC(npy_int8, unsigned long, PyLong_AsUnsignedLong(x))
   57988             : #ifdef HAVE_LONG_LONG
   57989             :         } else if ((sizeof(npy_int8) <= sizeof(unsigned PY_LONG_LONG))) {
   57990             :             __PYX_VERIFY_RETURN_INT_EXC(npy_int8, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
   57991             : #endif
   57992             :         }
   57993             :     } else {
   57994             : #if CYTHON_USE_PYLONG_INTERNALS
   57995       10317 :         if (__Pyx_PyLong_IsCompact(x)) {
   57996       10317 :             __PYX_VERIFY_RETURN_INT(npy_int8, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
   57997             :         } else {
   57998           0 :             const digit* digits = __Pyx_PyLong_Digits(x);
   57999           0 :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   58000           0 :             switch (__Pyx_PyLong_SignedDigitCount(x)) {
   58001             :                 case -2:
   58002             :                     if ((8 * sizeof(npy_int8) - 1 > 1 * PyLong_SHIFT)) {
   58003             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   58004             :                             __PYX_VERIFY_RETURN_INT(npy_int8, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58005             :                         } else if ((8 * sizeof(npy_int8) - 1 > 2 * PyLong_SHIFT)) {
   58006             :                             return (npy_int8) (((npy_int8)-1)*(((((npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0])));
   58007             :                         }
   58008             :                     }
   58009             :                     break;
   58010             :                 case 2:
   58011             :                     if ((8 * sizeof(npy_int8) > 1 * PyLong_SHIFT)) {
   58012             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   58013             :                             __PYX_VERIFY_RETURN_INT(npy_int8, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58014             :                         } else if ((8 * sizeof(npy_int8) - 1 > 2 * PyLong_SHIFT)) {
   58015             :                             return (npy_int8) ((((((npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0])));
   58016             :                         }
   58017             :                     }
   58018             :                     break;
   58019             :                 case -3:
   58020             :                     if ((8 * sizeof(npy_int8) - 1 > 2 * PyLong_SHIFT)) {
   58021             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   58022             :                             __PYX_VERIFY_RETURN_INT(npy_int8, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58023             :                         } else if ((8 * sizeof(npy_int8) - 1 > 3 * PyLong_SHIFT)) {
   58024             :                             return (npy_int8) (((npy_int8)-1)*(((((((npy_int8)digits[2]) << PyLong_SHIFT) | (npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0])));
   58025             :                         }
   58026             :                     }
   58027             :                     break;
   58028             :                 case 3:
   58029             :                     if ((8 * sizeof(npy_int8) > 2 * PyLong_SHIFT)) {
   58030             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   58031             :                             __PYX_VERIFY_RETURN_INT(npy_int8, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58032             :                         } else if ((8 * sizeof(npy_int8) - 1 > 3 * PyLong_SHIFT)) {
   58033             :                             return (npy_int8) ((((((((npy_int8)digits[2]) << PyLong_SHIFT) | (npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0])));
   58034             :                         }
   58035             :                     }
   58036             :                     break;
   58037             :                 case -4:
   58038             :                     if ((8 * sizeof(npy_int8) - 1 > 3 * PyLong_SHIFT)) {
   58039             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   58040             :                             __PYX_VERIFY_RETURN_INT(npy_int8, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58041             :                         } else if ((8 * sizeof(npy_int8) - 1 > 4 * PyLong_SHIFT)) {
   58042             :                             return (npy_int8) (((npy_int8)-1)*(((((((((npy_int8)digits[3]) << PyLong_SHIFT) | (npy_int8)digits[2]) << PyLong_SHIFT) | (npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0])));
   58043             :                         }
   58044             :                     }
   58045             :                     break;
   58046             :                 case 4:
   58047           0 :                     if ((8 * sizeof(npy_int8) > 3 * PyLong_SHIFT)) {
   58048             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   58049             :                             __PYX_VERIFY_RETURN_INT(npy_int8, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58050             :                         } else if ((8 * sizeof(npy_int8) - 1 > 4 * PyLong_SHIFT)) {
   58051             :                             return (npy_int8) ((((((((((npy_int8)digits[3]) << PyLong_SHIFT) | (npy_int8)digits[2]) << PyLong_SHIFT) | (npy_int8)digits[1]) << PyLong_SHIFT) | (npy_int8)digits[0])));
   58052             :                         }
   58053             :                     }
   58054           0 :                     break;
   58055             :             }
   58056             :         }
   58057             : #endif
   58058           0 :         if ((sizeof(npy_int8) <= sizeof(long))) {
   58059           0 :             __PYX_VERIFY_RETURN_INT_EXC(npy_int8, long, PyLong_AsLong(x))
   58060             : #ifdef HAVE_LONG_LONG
   58061             :         } else if ((sizeof(npy_int8) <= sizeof(PY_LONG_LONG))) {
   58062             :             __PYX_VERIFY_RETURN_INT_EXC(npy_int8, PY_LONG_LONG, PyLong_AsLongLong(x))
   58063             : #endif
   58064             :         }
   58065             :     }
   58066             :     {
   58067             :         npy_int8 val;
   58068             :         int ret = -1;
   58069             : #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
   58070             :         Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
   58071             :             x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
   58072             :         if (unlikely(bytes_copied == -1)) {
   58073             :         } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
   58074             :             goto raise_overflow;
   58075             :         } else {
   58076             :             ret = 0;
   58077             :         }
   58078             : #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
   58079             :         int one = 1; int is_little = (int)*(unsigned char *)&one;
   58080             :         unsigned char *bytes = (unsigned char *)&val;
   58081             :         ret = _PyLong_AsByteArray((PyLongObject *)x,
   58082             :                                     bytes, sizeof(val),
   58083             :                                     is_little, !is_unsigned);
   58084             : #else
   58085             :         PyObject *v;
   58086             :         PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
   58087             :         int bits, remaining_bits, is_negative = 0;
   58088             :         int chunk_size = (sizeof(long) < 8) ? 30 : 62;
   58089             :         if (likely(PyLong_CheckExact(x))) {
   58090             :             v = __Pyx_NewRef(x);
   58091             :         } else {
   58092             :             v = PyNumber_Long(x);
   58093             :             if (unlikely(!v)) return (npy_int8) -1;
   58094             :             assert(PyLong_CheckExact(v));
   58095             :         }
   58096             :         {
   58097             :             int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
   58098             :             if (unlikely(result < 0)) {
   58099             :                 Py_DECREF(v);
   58100             :                 return (npy_int8) -1;
   58101             :             }
   58102             :             is_negative = result == 1;
   58103             :         }
   58104             :         if (is_unsigned && unlikely(is_negative)) {
   58105             :             Py_DECREF(v);
   58106             :             goto raise_neg_overflow;
   58107             :         } else if (is_negative) {
   58108             :             stepval = PyNumber_Invert(v);
   58109             :             Py_DECREF(v);
   58110             :             if (unlikely(!stepval))
   58111             :                 return (npy_int8) -1;
   58112             :         } else {
   58113             :             stepval = v;
   58114             :         }
   58115             :         v = NULL;
   58116             :         val = (npy_int8) 0;
   58117             :         mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
   58118             :         shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
   58119             :         for (bits = 0; bits < (int) sizeof(npy_int8) * 8 - chunk_size; bits += chunk_size) {
   58120             :             PyObject *tmp, *digit;
   58121             :             long idigit;
   58122             :             digit = PyNumber_And(stepval, mask);
   58123             :             if (unlikely(!digit)) goto done;
   58124             :             idigit = PyLong_AsLong(digit);
   58125             :             Py_DECREF(digit);
   58126             :             if (unlikely(idigit < 0)) goto done;
   58127             :             val |= ((npy_int8) idigit) << bits;
   58128             :             tmp = PyNumber_Rshift(stepval, shift);
   58129             :             if (unlikely(!tmp)) goto done;
   58130             :             Py_DECREF(stepval); stepval = tmp;
   58131             :         }
   58132             :         Py_DECREF(shift); shift = NULL;
   58133             :         Py_DECREF(mask); mask = NULL;
   58134             :         {
   58135             :             long idigit = PyLong_AsLong(stepval);
   58136             :             if (unlikely(idigit < 0)) goto done;
   58137             :             remaining_bits = ((int) sizeof(npy_int8) * 8) - bits - (is_unsigned ? 0 : 1);
   58138             :             if (unlikely(idigit >= (1L << remaining_bits)))
   58139             :                 goto raise_overflow;
   58140             :             val |= ((npy_int8) idigit) << bits;
   58141             :         }
   58142             :         if (!is_unsigned) {
   58143             :             if (unlikely(val & (((npy_int8) 1) << (sizeof(npy_int8) * 8 - 1))))
   58144             :                 goto raise_overflow;
   58145             :             if (is_negative)
   58146             :                 val = ~val;
   58147             :         }
   58148             :         ret = 0;
   58149             :     done:
   58150             :         Py_XDECREF(shift);
   58151             :         Py_XDECREF(mask);
   58152             :         Py_XDECREF(stepval);
   58153             : #endif
   58154             :         if (unlikely(ret))
   58155             :             return (npy_int8) -1;
   58156             :         return val;
   58157             :     }
   58158           0 : raise_overflow:
   58159           0 :     PyErr_SetString(PyExc_OverflowError,
   58160             :         "value too large to convert to npy_int8");
   58161           0 :     return (npy_int8) -1;
   58162             : raise_neg_overflow:
   58163             :     PyErr_SetString(PyExc_OverflowError,
   58164             :         "can't convert negative value to npy_int8");
   58165             :     return (npy_int8) -1;
   58166             : }
   58167             : 
   58168             : /* CIntFromPy */
   58169       10030 :   static CYTHON_INLINE npy_uint8 __Pyx_PyInt_As_npy_uint8(PyObject *x) {
   58170             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   58171             : #pragma GCC diagnostic push
   58172             : #pragma GCC diagnostic ignored "-Wconversion"
   58173             : #endif
   58174       10030 :     const npy_uint8 neg_one = (npy_uint8) -1, const_zero = (npy_uint8) 0;
   58175             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   58176             : #pragma GCC diagnostic pop
   58177             : #endif
   58178       10030 :     const int is_unsigned = neg_one > const_zero;
   58179             : #if PY_MAJOR_VERSION < 3
   58180             :     if (likely(PyInt_Check(x))) {
   58181             :         if ((sizeof(npy_uint8) < sizeof(long))) {
   58182             :             __PYX_VERIFY_RETURN_INT(npy_uint8, long, PyInt_AS_LONG(x))
   58183             :         } else {
   58184             :             long val = PyInt_AS_LONG(x);
   58185             :             if (is_unsigned && unlikely(val < 0)) {
   58186             :                 goto raise_neg_overflow;
   58187             :             }
   58188             :             return (npy_uint8) val;
   58189             :         }
   58190             :     }
   58191             : #endif
   58192       10030 :     if (unlikely(!PyLong_Check(x))) {
   58193           7 :         npy_uint8 val;
   58194           7 :         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
   58195           7 :         if (!tmp) return (npy_uint8) -1;
   58196           7 :         val = __Pyx_PyInt_As_npy_uint8(tmp);
   58197           7 :         Py_DECREF(tmp);
   58198           7 :         return val;
   58199             :     }
   58200       10023 :     if (is_unsigned) {
   58201             : #if CYTHON_USE_PYLONG_INTERNALS
   58202       10023 :         if (unlikely(__Pyx_PyLong_IsNeg(x))) {
   58203           0 :             goto raise_neg_overflow;
   58204       10023 :         } else if (__Pyx_PyLong_IsCompact(x)) {
   58205       10023 :             __PYX_VERIFY_RETURN_INT(npy_uint8, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
   58206             :         } else {
   58207           0 :             const digit* digits = __Pyx_PyLong_Digits(x);
   58208           0 :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   58209           0 :             switch (__Pyx_PyLong_DigitCount(x)) {
   58210             :                 case 2:
   58211             :                     if ((8 * sizeof(npy_uint8) > 1 * PyLong_SHIFT)) {
   58212             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   58213             :                             __PYX_VERIFY_RETURN_INT(npy_uint8, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58214             :                         } else if ((8 * sizeof(npy_uint8) >= 2 * PyLong_SHIFT)) {
   58215             :                             return (npy_uint8) (((((npy_uint8)digits[1]) << PyLong_SHIFT) | (npy_uint8)digits[0]));
   58216             :                         }
   58217             :                     }
   58218             :                     break;
   58219             :                 case 3:
   58220             :                     if ((8 * sizeof(npy_uint8) > 2 * PyLong_SHIFT)) {
   58221             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   58222             :                             __PYX_VERIFY_RETURN_INT(npy_uint8, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58223             :                         } else if ((8 * sizeof(npy_uint8) >= 3 * PyLong_SHIFT)) {
   58224             :                             return (npy_uint8) (((((((npy_uint8)digits[2]) << PyLong_SHIFT) | (npy_uint8)digits[1]) << PyLong_SHIFT) | (npy_uint8)digits[0]));
   58225             :                         }
   58226             :                     }
   58227             :                     break;
   58228             :                 case 4:
   58229           0 :                     if ((8 * sizeof(npy_uint8) > 3 * PyLong_SHIFT)) {
   58230             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   58231             :                             __PYX_VERIFY_RETURN_INT(npy_uint8, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58232             :                         } else if ((8 * sizeof(npy_uint8) >= 4 * PyLong_SHIFT)) {
   58233             :                             return (npy_uint8) (((((((((npy_uint8)digits[3]) << PyLong_SHIFT) | (npy_uint8)digits[2]) << PyLong_SHIFT) | (npy_uint8)digits[1]) << PyLong_SHIFT) | (npy_uint8)digits[0]));
   58234             :                         }
   58235             :                     }
   58236           0 :                     break;
   58237             :             }
   58238             :         }
   58239             : #endif
   58240             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
   58241             :         if (unlikely(Py_SIZE(x) < 0)) {
   58242             :             goto raise_neg_overflow;
   58243             :         }
   58244             : #else
   58245             :         {
   58246           0 :             int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
   58247           0 :             if (unlikely(result < 0))
   58248             :                 return (npy_uint8) -1;
   58249           0 :             if (unlikely(result == 1))
   58250           0 :                 goto raise_neg_overflow;
   58251             :         }
   58252             : #endif
   58253           0 :         if ((sizeof(npy_uint8) <= sizeof(unsigned long))) {
   58254           0 :             __PYX_VERIFY_RETURN_INT_EXC(npy_uint8, unsigned long, PyLong_AsUnsignedLong(x))
   58255             : #ifdef HAVE_LONG_LONG
   58256             :         } else if ((sizeof(npy_uint8) <= sizeof(unsigned PY_LONG_LONG))) {
   58257             :             __PYX_VERIFY_RETURN_INT_EXC(npy_uint8, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
   58258             : #endif
   58259             :         }
   58260             :     } else {
   58261             : #if CYTHON_USE_PYLONG_INTERNALS
   58262             :         if (__Pyx_PyLong_IsCompact(x)) {
   58263             :             __PYX_VERIFY_RETURN_INT(npy_uint8, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
   58264             :         } else {
   58265             :             const digit* digits = __Pyx_PyLong_Digits(x);
   58266             :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   58267             :             switch (__Pyx_PyLong_SignedDigitCount(x)) {
   58268             :                 case -2:
   58269             :                     if ((8 * sizeof(npy_uint8) - 1 > 1 * PyLong_SHIFT)) {
   58270             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   58271             :                             __PYX_VERIFY_RETURN_INT(npy_uint8, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58272             :                         } else if ((8 * sizeof(npy_uint8) - 1 > 2 * PyLong_SHIFT)) {
   58273             :                             return (npy_uint8) (((npy_uint8)-1)*(((((npy_uint8)digits[1]) << PyLong_SHIFT) | (npy_uint8)digits[0])));
   58274             :                         }
   58275             :                     }
   58276             :                     break;
   58277             :                 case 2:
   58278             :                     if ((8 * sizeof(npy_uint8) > 1 * PyLong_SHIFT)) {
   58279             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   58280             :                             __PYX_VERIFY_RETURN_INT(npy_uint8, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58281             :                         } else if ((8 * sizeof(npy_uint8) - 1 > 2 * PyLong_SHIFT)) {
   58282             :                             return (npy_uint8) ((((((npy_uint8)digits[1]) << PyLong_SHIFT) | (npy_uint8)digits[0])));
   58283             :                         }
   58284             :                     }
   58285             :                     break;
   58286             :                 case -3:
   58287             :                     if ((8 * sizeof(npy_uint8) - 1 > 2 * PyLong_SHIFT)) {
   58288             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   58289             :                             __PYX_VERIFY_RETURN_INT(npy_uint8, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58290             :                         } else if ((8 * sizeof(npy_uint8) - 1 > 3 * PyLong_SHIFT)) {
   58291             :                             return (npy_uint8) (((npy_uint8)-1)*(((((((npy_uint8)digits[2]) << PyLong_SHIFT) | (npy_uint8)digits[1]) << PyLong_SHIFT) | (npy_uint8)digits[0])));
   58292             :                         }
   58293             :                     }
   58294             :                     break;
   58295             :                 case 3:
   58296             :                     if ((8 * sizeof(npy_uint8) > 2 * PyLong_SHIFT)) {
   58297             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   58298             :                             __PYX_VERIFY_RETURN_INT(npy_uint8, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58299             :                         } else if ((8 * sizeof(npy_uint8) - 1 > 3 * PyLong_SHIFT)) {
   58300             :                             return (npy_uint8) ((((((((npy_uint8)digits[2]) << PyLong_SHIFT) | (npy_uint8)digits[1]) << PyLong_SHIFT) | (npy_uint8)digits[0])));
   58301             :                         }
   58302             :                     }
   58303             :                     break;
   58304             :                 case -4:
   58305             :                     if ((8 * sizeof(npy_uint8) - 1 > 3 * PyLong_SHIFT)) {
   58306             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   58307             :                             __PYX_VERIFY_RETURN_INT(npy_uint8, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58308             :                         } else if ((8 * sizeof(npy_uint8) - 1 > 4 * PyLong_SHIFT)) {
   58309             :                             return (npy_uint8) (((npy_uint8)-1)*(((((((((npy_uint8)digits[3]) << PyLong_SHIFT) | (npy_uint8)digits[2]) << PyLong_SHIFT) | (npy_uint8)digits[1]) << PyLong_SHIFT) | (npy_uint8)digits[0])));
   58310             :                         }
   58311             :                     }
   58312             :                     break;
   58313             :                 case 4:
   58314             :                     if ((8 * sizeof(npy_uint8) > 3 * PyLong_SHIFT)) {
   58315             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   58316             :                             __PYX_VERIFY_RETURN_INT(npy_uint8, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58317             :                         } else if ((8 * sizeof(npy_uint8) - 1 > 4 * PyLong_SHIFT)) {
   58318             :                             return (npy_uint8) ((((((((((npy_uint8)digits[3]) << PyLong_SHIFT) | (npy_uint8)digits[2]) << PyLong_SHIFT) | (npy_uint8)digits[1]) << PyLong_SHIFT) | (npy_uint8)digits[0])));
   58319             :                         }
   58320             :                     }
   58321             :                     break;
   58322             :             }
   58323             :         }
   58324             : #endif
   58325             :         if ((sizeof(npy_uint8) <= sizeof(long))) {
   58326             :             __PYX_VERIFY_RETURN_INT_EXC(npy_uint8, long, PyLong_AsLong(x))
   58327             : #ifdef HAVE_LONG_LONG
   58328             :         } else if ((sizeof(npy_uint8) <= sizeof(PY_LONG_LONG))) {
   58329             :             __PYX_VERIFY_RETURN_INT_EXC(npy_uint8, PY_LONG_LONG, PyLong_AsLongLong(x))
   58330             : #endif
   58331             :         }
   58332             :     }
   58333             :     {
   58334             :         npy_uint8 val;
   58335             :         int ret = -1;
   58336             : #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
   58337             :         Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
   58338             :             x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
   58339             :         if (unlikely(bytes_copied == -1)) {
   58340             :         } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
   58341             :             goto raise_overflow;
   58342             :         } else {
   58343             :             ret = 0;
   58344             :         }
   58345             : #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
   58346             :         int one = 1; int is_little = (int)*(unsigned char *)&one;
   58347             :         unsigned char *bytes = (unsigned char *)&val;
   58348             :         ret = _PyLong_AsByteArray((PyLongObject *)x,
   58349             :                                     bytes, sizeof(val),
   58350             :                                     is_little, !is_unsigned);
   58351             : #else
   58352             :         PyObject *v;
   58353             :         PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
   58354             :         int bits, remaining_bits, is_negative = 0;
   58355             :         int chunk_size = (sizeof(long) < 8) ? 30 : 62;
   58356             :         if (likely(PyLong_CheckExact(x))) {
   58357             :             v = __Pyx_NewRef(x);
   58358             :         } else {
   58359             :             v = PyNumber_Long(x);
   58360             :             if (unlikely(!v)) return (npy_uint8) -1;
   58361             :             assert(PyLong_CheckExact(v));
   58362             :         }
   58363             :         {
   58364             :             int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
   58365             :             if (unlikely(result < 0)) {
   58366             :                 Py_DECREF(v);
   58367             :                 return (npy_uint8) -1;
   58368             :             }
   58369             :             is_negative = result == 1;
   58370             :         }
   58371             :         if (is_unsigned && unlikely(is_negative)) {
   58372             :             Py_DECREF(v);
   58373             :             goto raise_neg_overflow;
   58374             :         } else if (is_negative) {
   58375             :             stepval = PyNumber_Invert(v);
   58376             :             Py_DECREF(v);
   58377             :             if (unlikely(!stepval))
   58378             :                 return (npy_uint8) -1;
   58379             :         } else {
   58380             :             stepval = v;
   58381             :         }
   58382             :         v = NULL;
   58383             :         val = (npy_uint8) 0;
   58384             :         mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
   58385             :         shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
   58386             :         for (bits = 0; bits < (int) sizeof(npy_uint8) * 8 - chunk_size; bits += chunk_size) {
   58387             :             PyObject *tmp, *digit;
   58388             :             long idigit;
   58389             :             digit = PyNumber_And(stepval, mask);
   58390             :             if (unlikely(!digit)) goto done;
   58391             :             idigit = PyLong_AsLong(digit);
   58392             :             Py_DECREF(digit);
   58393             :             if (unlikely(idigit < 0)) goto done;
   58394             :             val |= ((npy_uint8) idigit) << bits;
   58395             :             tmp = PyNumber_Rshift(stepval, shift);
   58396             :             if (unlikely(!tmp)) goto done;
   58397             :             Py_DECREF(stepval); stepval = tmp;
   58398             :         }
   58399             :         Py_DECREF(shift); shift = NULL;
   58400             :         Py_DECREF(mask); mask = NULL;
   58401             :         {
   58402             :             long idigit = PyLong_AsLong(stepval);
   58403             :             if (unlikely(idigit < 0)) goto done;
   58404             :             remaining_bits = ((int) sizeof(npy_uint8) * 8) - bits - (is_unsigned ? 0 : 1);
   58405             :             if (unlikely(idigit >= (1L << remaining_bits)))
   58406             :                 goto raise_overflow;
   58407             :             val |= ((npy_uint8) idigit) << bits;
   58408             :         }
   58409             :         if (!is_unsigned) {
   58410             :             if (unlikely(val & (((npy_uint8) 1) << (sizeof(npy_uint8) * 8 - 1))))
   58411             :                 goto raise_overflow;
   58412             :             if (is_negative)
   58413             :                 val = ~val;
   58414             :         }
   58415             :         ret = 0;
   58416             :     done:
   58417             :         Py_XDECREF(shift);
   58418             :         Py_XDECREF(mask);
   58419             :         Py_XDECREF(stepval);
   58420             : #endif
   58421             :         if (unlikely(ret))
   58422             :             return (npy_uint8) -1;
   58423             :         return val;
   58424             :     }
   58425           0 : raise_overflow:
   58426           0 :     PyErr_SetString(PyExc_OverflowError,
   58427             :         "value too large to convert to npy_uint8");
   58428           0 :     return (npy_uint8) -1;
   58429           0 : raise_neg_overflow:
   58430           0 :     PyErr_SetString(PyExc_OverflowError,
   58431             :         "can't convert negative value to npy_uint8");
   58432           0 :     return (npy_uint8) -1;
   58433             : }
   58434             : 
   58435             : /* CIntFromPy */
   58436       10060 :   static CYTHON_INLINE npy_int16 __Pyx_PyInt_As_npy_int16(PyObject *x) {
   58437             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   58438             : #pragma GCC diagnostic push
   58439             : #pragma GCC diagnostic ignored "-Wconversion"
   58440             : #endif
   58441       10060 :     const npy_int16 neg_one = (npy_int16) -1, const_zero = (npy_int16) 0;
   58442             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   58443             : #pragma GCC diagnostic pop
   58444             : #endif
   58445       10060 :     const int is_unsigned = neg_one > const_zero;
   58446             : #if PY_MAJOR_VERSION < 3
   58447             :     if (likely(PyInt_Check(x))) {
   58448             :         if ((sizeof(npy_int16) < sizeof(long))) {
   58449             :             __PYX_VERIFY_RETURN_INT(npy_int16, long, PyInt_AS_LONG(x))
   58450             :         } else {
   58451             :             long val = PyInt_AS_LONG(x);
   58452             :             if (is_unsigned && unlikely(val < 0)) {
   58453             :                 goto raise_neg_overflow;
   58454             :             }
   58455             :             return (npy_int16) val;
   58456             :         }
   58457             :     }
   58458             : #endif
   58459       10060 :     if (unlikely(!PyLong_Check(x))) {
   58460           7 :         npy_int16 val;
   58461           7 :         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
   58462           7 :         if (!tmp) return (npy_int16) -1;
   58463           7 :         val = __Pyx_PyInt_As_npy_int16(tmp);
   58464           7 :         Py_DECREF(tmp);
   58465           7 :         return val;
   58466             :     }
   58467       10053 :     if (is_unsigned) {
   58468             : #if CYTHON_USE_PYLONG_INTERNALS
   58469             :         if (unlikely(__Pyx_PyLong_IsNeg(x))) {
   58470             :             goto raise_neg_overflow;
   58471             :         } else if (__Pyx_PyLong_IsCompact(x)) {
   58472             :             __PYX_VERIFY_RETURN_INT(npy_int16, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
   58473             :         } else {
   58474             :             const digit* digits = __Pyx_PyLong_Digits(x);
   58475             :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   58476             :             switch (__Pyx_PyLong_DigitCount(x)) {
   58477             :                 case 2:
   58478             :                     if ((8 * sizeof(npy_int16) > 1 * PyLong_SHIFT)) {
   58479             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   58480             :                             __PYX_VERIFY_RETURN_INT(npy_int16, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58481             :                         } else if ((8 * sizeof(npy_int16) >= 2 * PyLong_SHIFT)) {
   58482             :                             return (npy_int16) (((((npy_int16)digits[1]) << PyLong_SHIFT) | (npy_int16)digits[0]));
   58483             :                         }
   58484             :                     }
   58485             :                     break;
   58486             :                 case 3:
   58487             :                     if ((8 * sizeof(npy_int16) > 2 * PyLong_SHIFT)) {
   58488             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   58489             :                             __PYX_VERIFY_RETURN_INT(npy_int16, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58490             :                         } else if ((8 * sizeof(npy_int16) >= 3 * PyLong_SHIFT)) {
   58491             :                             return (npy_int16) (((((((npy_int16)digits[2]) << PyLong_SHIFT) | (npy_int16)digits[1]) << PyLong_SHIFT) | (npy_int16)digits[0]));
   58492             :                         }
   58493             :                     }
   58494             :                     break;
   58495             :                 case 4:
   58496             :                     if ((8 * sizeof(npy_int16) > 3 * PyLong_SHIFT)) {
   58497             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   58498             :                             __PYX_VERIFY_RETURN_INT(npy_int16, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58499             :                         } else if ((8 * sizeof(npy_int16) >= 4 * PyLong_SHIFT)) {
   58500             :                             return (npy_int16) (((((((((npy_int16)digits[3]) << PyLong_SHIFT) | (npy_int16)digits[2]) << PyLong_SHIFT) | (npy_int16)digits[1]) << PyLong_SHIFT) | (npy_int16)digits[0]));
   58501             :                         }
   58502             :                     }
   58503             :                     break;
   58504             :             }
   58505             :         }
   58506             : #endif
   58507             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
   58508             :         if (unlikely(Py_SIZE(x) < 0)) {
   58509             :             goto raise_neg_overflow;
   58510             :         }
   58511             : #else
   58512             :         {
   58513             :             int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
   58514             :             if (unlikely(result < 0))
   58515             :                 return (npy_int16) -1;
   58516             :             if (unlikely(result == 1))
   58517             :                 goto raise_neg_overflow;
   58518             :         }
   58519             : #endif
   58520             :         if ((sizeof(npy_int16) <= sizeof(unsigned long))) {
   58521             :             __PYX_VERIFY_RETURN_INT_EXC(npy_int16, unsigned long, PyLong_AsUnsignedLong(x))
   58522             : #ifdef HAVE_LONG_LONG
   58523             :         } else if ((sizeof(npy_int16) <= sizeof(unsigned PY_LONG_LONG))) {
   58524             :             __PYX_VERIFY_RETURN_INT_EXC(npy_int16, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
   58525             : #endif
   58526             :         }
   58527             :     } else {
   58528             : #if CYTHON_USE_PYLONG_INTERNALS
   58529       10053 :         if (__Pyx_PyLong_IsCompact(x)) {
   58530       10053 :             __PYX_VERIFY_RETURN_INT(npy_int16, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
   58531             :         } else {
   58532           0 :             const digit* digits = __Pyx_PyLong_Digits(x);
   58533           0 :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   58534           0 :             switch (__Pyx_PyLong_SignedDigitCount(x)) {
   58535             :                 case -2:
   58536             :                     if ((8 * sizeof(npy_int16) - 1 > 1 * PyLong_SHIFT)) {
   58537             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   58538             :                             __PYX_VERIFY_RETURN_INT(npy_int16, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58539             :                         } else if ((8 * sizeof(npy_int16) - 1 > 2 * PyLong_SHIFT)) {
   58540             :                             return (npy_int16) (((npy_int16)-1)*(((((npy_int16)digits[1]) << PyLong_SHIFT) | (npy_int16)digits[0])));
   58541             :                         }
   58542             :                     }
   58543             :                     break;
   58544             :                 case 2:
   58545             :                     if ((8 * sizeof(npy_int16) > 1 * PyLong_SHIFT)) {
   58546             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   58547             :                             __PYX_VERIFY_RETURN_INT(npy_int16, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58548             :                         } else if ((8 * sizeof(npy_int16) - 1 > 2 * PyLong_SHIFT)) {
   58549             :                             return (npy_int16) ((((((npy_int16)digits[1]) << PyLong_SHIFT) | (npy_int16)digits[0])));
   58550             :                         }
   58551             :                     }
   58552             :                     break;
   58553             :                 case -3:
   58554             :                     if ((8 * sizeof(npy_int16) - 1 > 2 * PyLong_SHIFT)) {
   58555             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   58556             :                             __PYX_VERIFY_RETURN_INT(npy_int16, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58557             :                         } else if ((8 * sizeof(npy_int16) - 1 > 3 * PyLong_SHIFT)) {
   58558             :                             return (npy_int16) (((npy_int16)-1)*(((((((npy_int16)digits[2]) << PyLong_SHIFT) | (npy_int16)digits[1]) << PyLong_SHIFT) | (npy_int16)digits[0])));
   58559             :                         }
   58560             :                     }
   58561             :                     break;
   58562             :                 case 3:
   58563             :                     if ((8 * sizeof(npy_int16) > 2 * PyLong_SHIFT)) {
   58564             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   58565             :                             __PYX_VERIFY_RETURN_INT(npy_int16, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58566             :                         } else if ((8 * sizeof(npy_int16) - 1 > 3 * PyLong_SHIFT)) {
   58567             :                             return (npy_int16) ((((((((npy_int16)digits[2]) << PyLong_SHIFT) | (npy_int16)digits[1]) << PyLong_SHIFT) | (npy_int16)digits[0])));
   58568             :                         }
   58569             :                     }
   58570             :                     break;
   58571             :                 case -4:
   58572             :                     if ((8 * sizeof(npy_int16) - 1 > 3 * PyLong_SHIFT)) {
   58573             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   58574             :                             __PYX_VERIFY_RETURN_INT(npy_int16, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58575             :                         } else if ((8 * sizeof(npy_int16) - 1 > 4 * PyLong_SHIFT)) {
   58576             :                             return (npy_int16) (((npy_int16)-1)*(((((((((npy_int16)digits[3]) << PyLong_SHIFT) | (npy_int16)digits[2]) << PyLong_SHIFT) | (npy_int16)digits[1]) << PyLong_SHIFT) | (npy_int16)digits[0])));
   58577             :                         }
   58578             :                     }
   58579             :                     break;
   58580             :                 case 4:
   58581           0 :                     if ((8 * sizeof(npy_int16) > 3 * PyLong_SHIFT)) {
   58582             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   58583             :                             __PYX_VERIFY_RETURN_INT(npy_int16, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58584             :                         } else if ((8 * sizeof(npy_int16) - 1 > 4 * PyLong_SHIFT)) {
   58585             :                             return (npy_int16) ((((((((((npy_int16)digits[3]) << PyLong_SHIFT) | (npy_int16)digits[2]) << PyLong_SHIFT) | (npy_int16)digits[1]) << PyLong_SHIFT) | (npy_int16)digits[0])));
   58586             :                         }
   58587             :                     }
   58588           0 :                     break;
   58589             :             }
   58590             :         }
   58591             : #endif
   58592           0 :         if ((sizeof(npy_int16) <= sizeof(long))) {
   58593           0 :             __PYX_VERIFY_RETURN_INT_EXC(npy_int16, long, PyLong_AsLong(x))
   58594             : #ifdef HAVE_LONG_LONG
   58595             :         } else if ((sizeof(npy_int16) <= sizeof(PY_LONG_LONG))) {
   58596             :             __PYX_VERIFY_RETURN_INT_EXC(npy_int16, PY_LONG_LONG, PyLong_AsLongLong(x))
   58597             : #endif
   58598             :         }
   58599             :     }
   58600             :     {
   58601             :         npy_int16 val;
   58602             :         int ret = -1;
   58603             : #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
   58604             :         Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
   58605             :             x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
   58606             :         if (unlikely(bytes_copied == -1)) {
   58607             :         } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
   58608             :             goto raise_overflow;
   58609             :         } else {
   58610             :             ret = 0;
   58611             :         }
   58612             : #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
   58613             :         int one = 1; int is_little = (int)*(unsigned char *)&one;
   58614             :         unsigned char *bytes = (unsigned char *)&val;
   58615             :         ret = _PyLong_AsByteArray((PyLongObject *)x,
   58616             :                                     bytes, sizeof(val),
   58617             :                                     is_little, !is_unsigned);
   58618             : #else
   58619             :         PyObject *v;
   58620             :         PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
   58621             :         int bits, remaining_bits, is_negative = 0;
   58622             :         int chunk_size = (sizeof(long) < 8) ? 30 : 62;
   58623             :         if (likely(PyLong_CheckExact(x))) {
   58624             :             v = __Pyx_NewRef(x);
   58625             :         } else {
   58626             :             v = PyNumber_Long(x);
   58627             :             if (unlikely(!v)) return (npy_int16) -1;
   58628             :             assert(PyLong_CheckExact(v));
   58629             :         }
   58630             :         {
   58631             :             int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
   58632             :             if (unlikely(result < 0)) {
   58633             :                 Py_DECREF(v);
   58634             :                 return (npy_int16) -1;
   58635             :             }
   58636             :             is_negative = result == 1;
   58637             :         }
   58638             :         if (is_unsigned && unlikely(is_negative)) {
   58639             :             Py_DECREF(v);
   58640             :             goto raise_neg_overflow;
   58641             :         } else if (is_negative) {
   58642             :             stepval = PyNumber_Invert(v);
   58643             :             Py_DECREF(v);
   58644             :             if (unlikely(!stepval))
   58645             :                 return (npy_int16) -1;
   58646             :         } else {
   58647             :             stepval = v;
   58648             :         }
   58649             :         v = NULL;
   58650             :         val = (npy_int16) 0;
   58651             :         mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
   58652             :         shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
   58653             :         for (bits = 0; bits < (int) sizeof(npy_int16) * 8 - chunk_size; bits += chunk_size) {
   58654             :             PyObject *tmp, *digit;
   58655             :             long idigit;
   58656             :             digit = PyNumber_And(stepval, mask);
   58657             :             if (unlikely(!digit)) goto done;
   58658             :             idigit = PyLong_AsLong(digit);
   58659             :             Py_DECREF(digit);
   58660             :             if (unlikely(idigit < 0)) goto done;
   58661             :             val |= ((npy_int16) idigit) << bits;
   58662             :             tmp = PyNumber_Rshift(stepval, shift);
   58663             :             if (unlikely(!tmp)) goto done;
   58664             :             Py_DECREF(stepval); stepval = tmp;
   58665             :         }
   58666             :         Py_DECREF(shift); shift = NULL;
   58667             :         Py_DECREF(mask); mask = NULL;
   58668             :         {
   58669             :             long idigit = PyLong_AsLong(stepval);
   58670             :             if (unlikely(idigit < 0)) goto done;
   58671             :             remaining_bits = ((int) sizeof(npy_int16) * 8) - bits - (is_unsigned ? 0 : 1);
   58672             :             if (unlikely(idigit >= (1L << remaining_bits)))
   58673             :                 goto raise_overflow;
   58674             :             val |= ((npy_int16) idigit) << bits;
   58675             :         }
   58676             :         if (!is_unsigned) {
   58677             :             if (unlikely(val & (((npy_int16) 1) << (sizeof(npy_int16) * 8 - 1))))
   58678             :                 goto raise_overflow;
   58679             :             if (is_negative)
   58680             :                 val = ~val;
   58681             :         }
   58682             :         ret = 0;
   58683             :     done:
   58684             :         Py_XDECREF(shift);
   58685             :         Py_XDECREF(mask);
   58686             :         Py_XDECREF(stepval);
   58687             : #endif
   58688             :         if (unlikely(ret))
   58689             :             return (npy_int16) -1;
   58690             :         return val;
   58691             :     }
   58692           0 : raise_overflow:
   58693           0 :     PyErr_SetString(PyExc_OverflowError,
   58694             :         "value too large to convert to npy_int16");
   58695           0 :     return (npy_int16) -1;
   58696             : raise_neg_overflow:
   58697             :     PyErr_SetString(PyExc_OverflowError,
   58698             :         "can't convert negative value to npy_int16");
   58699             :     return (npy_int16) -1;
   58700             : }
   58701             : 
   58702             : /* CIntFromPy */
   58703       10030 :   static CYTHON_INLINE npy_uint16 __Pyx_PyInt_As_npy_uint16(PyObject *x) {
   58704             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   58705             : #pragma GCC diagnostic push
   58706             : #pragma GCC diagnostic ignored "-Wconversion"
   58707             : #endif
   58708       10030 :     const npy_uint16 neg_one = (npy_uint16) -1, const_zero = (npy_uint16) 0;
   58709             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   58710             : #pragma GCC diagnostic pop
   58711             : #endif
   58712       10030 :     const int is_unsigned = neg_one > const_zero;
   58713             : #if PY_MAJOR_VERSION < 3
   58714             :     if (likely(PyInt_Check(x))) {
   58715             :         if ((sizeof(npy_uint16) < sizeof(long))) {
   58716             :             __PYX_VERIFY_RETURN_INT(npy_uint16, long, PyInt_AS_LONG(x))
   58717             :         } else {
   58718             :             long val = PyInt_AS_LONG(x);
   58719             :             if (is_unsigned && unlikely(val < 0)) {
   58720             :                 goto raise_neg_overflow;
   58721             :             }
   58722             :             return (npy_uint16) val;
   58723             :         }
   58724             :     }
   58725             : #endif
   58726       10030 :     if (unlikely(!PyLong_Check(x))) {
   58727           7 :         npy_uint16 val;
   58728           7 :         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
   58729           7 :         if (!tmp) return (npy_uint16) -1;
   58730           7 :         val = __Pyx_PyInt_As_npy_uint16(tmp);
   58731           7 :         Py_DECREF(tmp);
   58732           7 :         return val;
   58733             :     }
   58734       10023 :     if (is_unsigned) {
   58735             : #if CYTHON_USE_PYLONG_INTERNALS
   58736       10023 :         if (unlikely(__Pyx_PyLong_IsNeg(x))) {
   58737           0 :             goto raise_neg_overflow;
   58738       10023 :         } else if (__Pyx_PyLong_IsCompact(x)) {
   58739       10023 :             __PYX_VERIFY_RETURN_INT(npy_uint16, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
   58740             :         } else {
   58741           0 :             const digit* digits = __Pyx_PyLong_Digits(x);
   58742           0 :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   58743           0 :             switch (__Pyx_PyLong_DigitCount(x)) {
   58744             :                 case 2:
   58745             :                     if ((8 * sizeof(npy_uint16) > 1 * PyLong_SHIFT)) {
   58746             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   58747             :                             __PYX_VERIFY_RETURN_INT(npy_uint16, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58748             :                         } else if ((8 * sizeof(npy_uint16) >= 2 * PyLong_SHIFT)) {
   58749             :                             return (npy_uint16) (((((npy_uint16)digits[1]) << PyLong_SHIFT) | (npy_uint16)digits[0]));
   58750             :                         }
   58751             :                     }
   58752             :                     break;
   58753             :                 case 3:
   58754             :                     if ((8 * sizeof(npy_uint16) > 2 * PyLong_SHIFT)) {
   58755             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   58756             :                             __PYX_VERIFY_RETURN_INT(npy_uint16, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58757             :                         } else if ((8 * sizeof(npy_uint16) >= 3 * PyLong_SHIFT)) {
   58758             :                             return (npy_uint16) (((((((npy_uint16)digits[2]) << PyLong_SHIFT) | (npy_uint16)digits[1]) << PyLong_SHIFT) | (npy_uint16)digits[0]));
   58759             :                         }
   58760             :                     }
   58761             :                     break;
   58762             :                 case 4:
   58763           0 :                     if ((8 * sizeof(npy_uint16) > 3 * PyLong_SHIFT)) {
   58764             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   58765             :                             __PYX_VERIFY_RETURN_INT(npy_uint16, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58766             :                         } else if ((8 * sizeof(npy_uint16) >= 4 * PyLong_SHIFT)) {
   58767             :                             return (npy_uint16) (((((((((npy_uint16)digits[3]) << PyLong_SHIFT) | (npy_uint16)digits[2]) << PyLong_SHIFT) | (npy_uint16)digits[1]) << PyLong_SHIFT) | (npy_uint16)digits[0]));
   58768             :                         }
   58769             :                     }
   58770           0 :                     break;
   58771             :             }
   58772             :         }
   58773             : #endif
   58774             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
   58775             :         if (unlikely(Py_SIZE(x) < 0)) {
   58776             :             goto raise_neg_overflow;
   58777             :         }
   58778             : #else
   58779             :         {
   58780           0 :             int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
   58781           0 :             if (unlikely(result < 0))
   58782             :                 return (npy_uint16) -1;
   58783           0 :             if (unlikely(result == 1))
   58784           0 :                 goto raise_neg_overflow;
   58785             :         }
   58786             : #endif
   58787           0 :         if ((sizeof(npy_uint16) <= sizeof(unsigned long))) {
   58788           0 :             __PYX_VERIFY_RETURN_INT_EXC(npy_uint16, unsigned long, PyLong_AsUnsignedLong(x))
   58789             : #ifdef HAVE_LONG_LONG
   58790             :         } else if ((sizeof(npy_uint16) <= sizeof(unsigned PY_LONG_LONG))) {
   58791             :             __PYX_VERIFY_RETURN_INT_EXC(npy_uint16, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
   58792             : #endif
   58793             :         }
   58794             :     } else {
   58795             : #if CYTHON_USE_PYLONG_INTERNALS
   58796             :         if (__Pyx_PyLong_IsCompact(x)) {
   58797             :             __PYX_VERIFY_RETURN_INT(npy_uint16, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
   58798             :         } else {
   58799             :             const digit* digits = __Pyx_PyLong_Digits(x);
   58800             :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   58801             :             switch (__Pyx_PyLong_SignedDigitCount(x)) {
   58802             :                 case -2:
   58803             :                     if ((8 * sizeof(npy_uint16) - 1 > 1 * PyLong_SHIFT)) {
   58804             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   58805             :                             __PYX_VERIFY_RETURN_INT(npy_uint16, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58806             :                         } else if ((8 * sizeof(npy_uint16) - 1 > 2 * PyLong_SHIFT)) {
   58807             :                             return (npy_uint16) (((npy_uint16)-1)*(((((npy_uint16)digits[1]) << PyLong_SHIFT) | (npy_uint16)digits[0])));
   58808             :                         }
   58809             :                     }
   58810             :                     break;
   58811             :                 case 2:
   58812             :                     if ((8 * sizeof(npy_uint16) > 1 * PyLong_SHIFT)) {
   58813             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   58814             :                             __PYX_VERIFY_RETURN_INT(npy_uint16, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58815             :                         } else if ((8 * sizeof(npy_uint16) - 1 > 2 * PyLong_SHIFT)) {
   58816             :                             return (npy_uint16) ((((((npy_uint16)digits[1]) << PyLong_SHIFT) | (npy_uint16)digits[0])));
   58817             :                         }
   58818             :                     }
   58819             :                     break;
   58820             :                 case -3:
   58821             :                     if ((8 * sizeof(npy_uint16) - 1 > 2 * PyLong_SHIFT)) {
   58822             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   58823             :                             __PYX_VERIFY_RETURN_INT(npy_uint16, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58824             :                         } else if ((8 * sizeof(npy_uint16) - 1 > 3 * PyLong_SHIFT)) {
   58825             :                             return (npy_uint16) (((npy_uint16)-1)*(((((((npy_uint16)digits[2]) << PyLong_SHIFT) | (npy_uint16)digits[1]) << PyLong_SHIFT) | (npy_uint16)digits[0])));
   58826             :                         }
   58827             :                     }
   58828             :                     break;
   58829             :                 case 3:
   58830             :                     if ((8 * sizeof(npy_uint16) > 2 * PyLong_SHIFT)) {
   58831             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   58832             :                             __PYX_VERIFY_RETURN_INT(npy_uint16, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58833             :                         } else if ((8 * sizeof(npy_uint16) - 1 > 3 * PyLong_SHIFT)) {
   58834             :                             return (npy_uint16) ((((((((npy_uint16)digits[2]) << PyLong_SHIFT) | (npy_uint16)digits[1]) << PyLong_SHIFT) | (npy_uint16)digits[0])));
   58835             :                         }
   58836             :                     }
   58837             :                     break;
   58838             :                 case -4:
   58839             :                     if ((8 * sizeof(npy_uint16) - 1 > 3 * PyLong_SHIFT)) {
   58840             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   58841             :                             __PYX_VERIFY_RETURN_INT(npy_uint16, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58842             :                         } else if ((8 * sizeof(npy_uint16) - 1 > 4 * PyLong_SHIFT)) {
   58843             :                             return (npy_uint16) (((npy_uint16)-1)*(((((((((npy_uint16)digits[3]) << PyLong_SHIFT) | (npy_uint16)digits[2]) << PyLong_SHIFT) | (npy_uint16)digits[1]) << PyLong_SHIFT) | (npy_uint16)digits[0])));
   58844             :                         }
   58845             :                     }
   58846             :                     break;
   58847             :                 case 4:
   58848             :                     if ((8 * sizeof(npy_uint16) > 3 * PyLong_SHIFT)) {
   58849             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   58850             :                             __PYX_VERIFY_RETURN_INT(npy_uint16, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   58851             :                         } else if ((8 * sizeof(npy_uint16) - 1 > 4 * PyLong_SHIFT)) {
   58852             :                             return (npy_uint16) ((((((((((npy_uint16)digits[3]) << PyLong_SHIFT) | (npy_uint16)digits[2]) << PyLong_SHIFT) | (npy_uint16)digits[1]) << PyLong_SHIFT) | (npy_uint16)digits[0])));
   58853             :                         }
   58854             :                     }
   58855             :                     break;
   58856             :             }
   58857             :         }
   58858             : #endif
   58859             :         if ((sizeof(npy_uint16) <= sizeof(long))) {
   58860             :             __PYX_VERIFY_RETURN_INT_EXC(npy_uint16, long, PyLong_AsLong(x))
   58861             : #ifdef HAVE_LONG_LONG
   58862             :         } else if ((sizeof(npy_uint16) <= sizeof(PY_LONG_LONG))) {
   58863             :             __PYX_VERIFY_RETURN_INT_EXC(npy_uint16, PY_LONG_LONG, PyLong_AsLongLong(x))
   58864             : #endif
   58865             :         }
   58866             :     }
   58867             :     {
   58868             :         npy_uint16 val;
   58869             :         int ret = -1;
   58870             : #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
   58871             :         Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
   58872             :             x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
   58873             :         if (unlikely(bytes_copied == -1)) {
   58874             :         } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
   58875             :             goto raise_overflow;
   58876             :         } else {
   58877             :             ret = 0;
   58878             :         }
   58879             : #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
   58880             :         int one = 1; int is_little = (int)*(unsigned char *)&one;
   58881             :         unsigned char *bytes = (unsigned char *)&val;
   58882             :         ret = _PyLong_AsByteArray((PyLongObject *)x,
   58883             :                                     bytes, sizeof(val),
   58884             :                                     is_little, !is_unsigned);
   58885             : #else
   58886             :         PyObject *v;
   58887             :         PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
   58888             :         int bits, remaining_bits, is_negative = 0;
   58889             :         int chunk_size = (sizeof(long) < 8) ? 30 : 62;
   58890             :         if (likely(PyLong_CheckExact(x))) {
   58891             :             v = __Pyx_NewRef(x);
   58892             :         } else {
   58893             :             v = PyNumber_Long(x);
   58894             :             if (unlikely(!v)) return (npy_uint16) -1;
   58895             :             assert(PyLong_CheckExact(v));
   58896             :         }
   58897             :         {
   58898             :             int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
   58899             :             if (unlikely(result < 0)) {
   58900             :                 Py_DECREF(v);
   58901             :                 return (npy_uint16) -1;
   58902             :             }
   58903             :             is_negative = result == 1;
   58904             :         }
   58905             :         if (is_unsigned && unlikely(is_negative)) {
   58906             :             Py_DECREF(v);
   58907             :             goto raise_neg_overflow;
   58908             :         } else if (is_negative) {
   58909             :             stepval = PyNumber_Invert(v);
   58910             :             Py_DECREF(v);
   58911             :             if (unlikely(!stepval))
   58912             :                 return (npy_uint16) -1;
   58913             :         } else {
   58914             :             stepval = v;
   58915             :         }
   58916             :         v = NULL;
   58917             :         val = (npy_uint16) 0;
   58918             :         mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
   58919             :         shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
   58920             :         for (bits = 0; bits < (int) sizeof(npy_uint16) * 8 - chunk_size; bits += chunk_size) {
   58921             :             PyObject *tmp, *digit;
   58922             :             long idigit;
   58923             :             digit = PyNumber_And(stepval, mask);
   58924             :             if (unlikely(!digit)) goto done;
   58925             :             idigit = PyLong_AsLong(digit);
   58926             :             Py_DECREF(digit);
   58927             :             if (unlikely(idigit < 0)) goto done;
   58928             :             val |= ((npy_uint16) idigit) << bits;
   58929             :             tmp = PyNumber_Rshift(stepval, shift);
   58930             :             if (unlikely(!tmp)) goto done;
   58931             :             Py_DECREF(stepval); stepval = tmp;
   58932             :         }
   58933             :         Py_DECREF(shift); shift = NULL;
   58934             :         Py_DECREF(mask); mask = NULL;
   58935             :         {
   58936             :             long idigit = PyLong_AsLong(stepval);
   58937             :             if (unlikely(idigit < 0)) goto done;
   58938             :             remaining_bits = ((int) sizeof(npy_uint16) * 8) - bits - (is_unsigned ? 0 : 1);
   58939             :             if (unlikely(idigit >= (1L << remaining_bits)))
   58940             :                 goto raise_overflow;
   58941             :             val |= ((npy_uint16) idigit) << bits;
   58942             :         }
   58943             :         if (!is_unsigned) {
   58944             :             if (unlikely(val & (((npy_uint16) 1) << (sizeof(npy_uint16) * 8 - 1))))
   58945             :                 goto raise_overflow;
   58946             :             if (is_negative)
   58947             :                 val = ~val;
   58948             :         }
   58949             :         ret = 0;
   58950             :     done:
   58951             :         Py_XDECREF(shift);
   58952             :         Py_XDECREF(mask);
   58953             :         Py_XDECREF(stepval);
   58954             : #endif
   58955             :         if (unlikely(ret))
   58956             :             return (npy_uint16) -1;
   58957             :         return val;
   58958             :     }
   58959           0 : raise_overflow:
   58960           0 :     PyErr_SetString(PyExc_OverflowError,
   58961             :         "value too large to convert to npy_uint16");
   58962           0 :     return (npy_uint16) -1;
   58963           0 : raise_neg_overflow:
   58964           0 :     PyErr_SetString(PyExc_OverflowError,
   58965             :         "can't convert negative value to npy_uint16");
   58966           0 :     return (npy_uint16) -1;
   58967             : }
   58968             : 
   58969             : /* CIntFromPy */
   58970     1120195 :   static CYTHON_INLINE npy_int32 __Pyx_PyInt_As_npy_int32(PyObject *x) {
   58971             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   58972             : #pragma GCC diagnostic push
   58973             : #pragma GCC diagnostic ignored "-Wconversion"
   58974             : #endif
   58975     1120195 :     const npy_int32 neg_one = (npy_int32) -1, const_zero = (npy_int32) 0;
   58976             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   58977             : #pragma GCC diagnostic pop
   58978             : #endif
   58979     1120195 :     const int is_unsigned = neg_one > const_zero;
   58980             : #if PY_MAJOR_VERSION < 3
   58981             :     if (likely(PyInt_Check(x))) {
   58982             :         if ((sizeof(npy_int32) < sizeof(long))) {
   58983             :             __PYX_VERIFY_RETURN_INT(npy_int32, long, PyInt_AS_LONG(x))
   58984             :         } else {
   58985             :             long val = PyInt_AS_LONG(x);
   58986             :             if (is_unsigned && unlikely(val < 0)) {
   58987             :                 goto raise_neg_overflow;
   58988             :             }
   58989             :             return (npy_int32) val;
   58990             :         }
   58991             :     }
   58992             : #endif
   58993     1120195 :     if (unlikely(!PyLong_Check(x))) {
   58994           7 :         npy_int32 val;
   58995           7 :         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
   58996           7 :         if (!tmp) return (npy_int32) -1;
   58997           7 :         val = __Pyx_PyInt_As_npy_int32(tmp);
   58998           7 :         Py_DECREF(tmp);
   58999           7 :         return val;
   59000             :     }
   59001     1120188 :     if (is_unsigned) {
   59002             : #if CYTHON_USE_PYLONG_INTERNALS
   59003             :         if (unlikely(__Pyx_PyLong_IsNeg(x))) {
   59004             :             goto raise_neg_overflow;
   59005             :         } else if (__Pyx_PyLong_IsCompact(x)) {
   59006             :             __PYX_VERIFY_RETURN_INT(npy_int32, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
   59007             :         } else {
   59008             :             const digit* digits = __Pyx_PyLong_Digits(x);
   59009             :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   59010             :             switch (__Pyx_PyLong_DigitCount(x)) {
   59011             :                 case 2:
   59012             :                     if ((8 * sizeof(npy_int32) > 1 * PyLong_SHIFT)) {
   59013             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   59014             :                             __PYX_VERIFY_RETURN_INT(npy_int32, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59015             :                         } else if ((8 * sizeof(npy_int32) >= 2 * PyLong_SHIFT)) {
   59016             :                             return (npy_int32) (((((npy_int32)digits[1]) << PyLong_SHIFT) | (npy_int32)digits[0]));
   59017             :                         }
   59018             :                     }
   59019             :                     break;
   59020             :                 case 3:
   59021             :                     if ((8 * sizeof(npy_int32) > 2 * PyLong_SHIFT)) {
   59022             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   59023             :                             __PYX_VERIFY_RETURN_INT(npy_int32, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59024             :                         } else if ((8 * sizeof(npy_int32) >= 3 * PyLong_SHIFT)) {
   59025             :                             return (npy_int32) (((((((npy_int32)digits[2]) << PyLong_SHIFT) | (npy_int32)digits[1]) << PyLong_SHIFT) | (npy_int32)digits[0]));
   59026             :                         }
   59027             :                     }
   59028             :                     break;
   59029             :                 case 4:
   59030             :                     if ((8 * sizeof(npy_int32) > 3 * PyLong_SHIFT)) {
   59031             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   59032             :                             __PYX_VERIFY_RETURN_INT(npy_int32, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59033             :                         } else if ((8 * sizeof(npy_int32) >= 4 * PyLong_SHIFT)) {
   59034             :                             return (npy_int32) (((((((((npy_int32)digits[3]) << PyLong_SHIFT) | (npy_int32)digits[2]) << PyLong_SHIFT) | (npy_int32)digits[1]) << PyLong_SHIFT) | (npy_int32)digits[0]));
   59035             :                         }
   59036             :                     }
   59037             :                     break;
   59038             :             }
   59039             :         }
   59040             : #endif
   59041             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
   59042             :         if (unlikely(Py_SIZE(x) < 0)) {
   59043             :             goto raise_neg_overflow;
   59044             :         }
   59045             : #else
   59046             :         {
   59047             :             int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
   59048             :             if (unlikely(result < 0))
   59049             :                 return (npy_int32) -1;
   59050             :             if (unlikely(result == 1))
   59051             :                 goto raise_neg_overflow;
   59052             :         }
   59053             : #endif
   59054             :         if ((sizeof(npy_int32) <= sizeof(unsigned long))) {
   59055             :             __PYX_VERIFY_RETURN_INT_EXC(npy_int32, unsigned long, PyLong_AsUnsignedLong(x))
   59056             : #ifdef HAVE_LONG_LONG
   59057             :         } else if ((sizeof(npy_int32) <= sizeof(unsigned PY_LONG_LONG))) {
   59058             :             __PYX_VERIFY_RETURN_INT_EXC(npy_int32, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
   59059             : #endif
   59060             :         }
   59061             :     } else {
   59062             : #if CYTHON_USE_PYLONG_INTERNALS
   59063     1120188 :         if (__Pyx_PyLong_IsCompact(x)) {
   59064     1120188 :             __PYX_VERIFY_RETURN_INT(npy_int32, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
   59065             :         } else {
   59066           0 :             const digit* digits = __Pyx_PyLong_Digits(x);
   59067           0 :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   59068           0 :             switch (__Pyx_PyLong_SignedDigitCount(x)) {
   59069             :                 case -2:
   59070           0 :                     if ((8 * sizeof(npy_int32) - 1 > 1 * PyLong_SHIFT)) {
   59071           0 :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   59072           0 :                             __PYX_VERIFY_RETURN_INT(npy_int32, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59073             :                         } else if ((8 * sizeof(npy_int32) - 1 > 2 * PyLong_SHIFT)) {
   59074             :                             return (npy_int32) (((npy_int32)-1)*(((((npy_int32)digits[1]) << PyLong_SHIFT) | (npy_int32)digits[0])));
   59075             :                         }
   59076             :                     }
   59077             :                     break;
   59078             :                 case 2:
   59079           0 :                     if ((8 * sizeof(npy_int32) > 1 * PyLong_SHIFT)) {
   59080           0 :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   59081           0 :                             __PYX_VERIFY_RETURN_INT(npy_int32, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59082             :                         } else if ((8 * sizeof(npy_int32) - 1 > 2 * PyLong_SHIFT)) {
   59083             :                             return (npy_int32) ((((((npy_int32)digits[1]) << PyLong_SHIFT) | (npy_int32)digits[0])));
   59084             :                         }
   59085             :                     }
   59086             :                     break;
   59087             :                 case -3:
   59088             :                     if ((8 * sizeof(npy_int32) - 1 > 2 * PyLong_SHIFT)) {
   59089             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   59090             :                             __PYX_VERIFY_RETURN_INT(npy_int32, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59091             :                         } else if ((8 * sizeof(npy_int32) - 1 > 3 * PyLong_SHIFT)) {
   59092             :                             return (npy_int32) (((npy_int32)-1)*(((((((npy_int32)digits[2]) << PyLong_SHIFT) | (npy_int32)digits[1]) << PyLong_SHIFT) | (npy_int32)digits[0])));
   59093             :                         }
   59094             :                     }
   59095             :                     break;
   59096             :                 case 3:
   59097             :                     if ((8 * sizeof(npy_int32) > 2 * PyLong_SHIFT)) {
   59098             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   59099             :                             __PYX_VERIFY_RETURN_INT(npy_int32, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59100             :                         } else if ((8 * sizeof(npy_int32) - 1 > 3 * PyLong_SHIFT)) {
   59101             :                             return (npy_int32) ((((((((npy_int32)digits[2]) << PyLong_SHIFT) | (npy_int32)digits[1]) << PyLong_SHIFT) | (npy_int32)digits[0])));
   59102             :                         }
   59103             :                     }
   59104             :                     break;
   59105             :                 case -4:
   59106             :                     if ((8 * sizeof(npy_int32) - 1 > 3 * PyLong_SHIFT)) {
   59107             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   59108             :                             __PYX_VERIFY_RETURN_INT(npy_int32, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59109             :                         } else if ((8 * sizeof(npy_int32) - 1 > 4 * PyLong_SHIFT)) {
   59110             :                             return (npy_int32) (((npy_int32)-1)*(((((((((npy_int32)digits[3]) << PyLong_SHIFT) | (npy_int32)digits[2]) << PyLong_SHIFT) | (npy_int32)digits[1]) << PyLong_SHIFT) | (npy_int32)digits[0])));
   59111             :                         }
   59112             :                     }
   59113             :                     break;
   59114             :                 case 4:
   59115             :                     if ((8 * sizeof(npy_int32) > 3 * PyLong_SHIFT)) {
   59116             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   59117             :                             __PYX_VERIFY_RETURN_INT(npy_int32, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59118             :                         } else if ((8 * sizeof(npy_int32) - 1 > 4 * PyLong_SHIFT)) {
   59119             :                             return (npy_int32) ((((((((((npy_int32)digits[3]) << PyLong_SHIFT) | (npy_int32)digits[2]) << PyLong_SHIFT) | (npy_int32)digits[1]) << PyLong_SHIFT) | (npy_int32)digits[0])));
   59120             :                         }
   59121             :                     }
   59122             :                     break;
   59123             :             }
   59124             :         }
   59125             : #endif
   59126           0 :         if ((sizeof(npy_int32) <= sizeof(long))) {
   59127           0 :             __PYX_VERIFY_RETURN_INT_EXC(npy_int32, long, PyLong_AsLong(x))
   59128             : #ifdef HAVE_LONG_LONG
   59129             :         } else if ((sizeof(npy_int32) <= sizeof(PY_LONG_LONG))) {
   59130             :             __PYX_VERIFY_RETURN_INT_EXC(npy_int32, PY_LONG_LONG, PyLong_AsLongLong(x))
   59131             : #endif
   59132             :         }
   59133             :     }
   59134             :     {
   59135             :         npy_int32 val;
   59136             :         int ret = -1;
   59137             : #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
   59138             :         Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
   59139             :             x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
   59140             :         if (unlikely(bytes_copied == -1)) {
   59141             :         } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
   59142             :             goto raise_overflow;
   59143             :         } else {
   59144             :             ret = 0;
   59145             :         }
   59146             : #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
   59147             :         int one = 1; int is_little = (int)*(unsigned char *)&one;
   59148             :         unsigned char *bytes = (unsigned char *)&val;
   59149             :         ret = _PyLong_AsByteArray((PyLongObject *)x,
   59150             :                                     bytes, sizeof(val),
   59151             :                                     is_little, !is_unsigned);
   59152             : #else
   59153             :         PyObject *v;
   59154             :         PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
   59155             :         int bits, remaining_bits, is_negative = 0;
   59156             :         int chunk_size = (sizeof(long) < 8) ? 30 : 62;
   59157             :         if (likely(PyLong_CheckExact(x))) {
   59158             :             v = __Pyx_NewRef(x);
   59159             :         } else {
   59160             :             v = PyNumber_Long(x);
   59161             :             if (unlikely(!v)) return (npy_int32) -1;
   59162             :             assert(PyLong_CheckExact(v));
   59163             :         }
   59164             :         {
   59165             :             int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
   59166             :             if (unlikely(result < 0)) {
   59167             :                 Py_DECREF(v);
   59168             :                 return (npy_int32) -1;
   59169             :             }
   59170             :             is_negative = result == 1;
   59171             :         }
   59172             :         if (is_unsigned && unlikely(is_negative)) {
   59173             :             Py_DECREF(v);
   59174             :             goto raise_neg_overflow;
   59175             :         } else if (is_negative) {
   59176             :             stepval = PyNumber_Invert(v);
   59177             :             Py_DECREF(v);
   59178             :             if (unlikely(!stepval))
   59179             :                 return (npy_int32) -1;
   59180             :         } else {
   59181             :             stepval = v;
   59182             :         }
   59183             :         v = NULL;
   59184             :         val = (npy_int32) 0;
   59185             :         mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
   59186             :         shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
   59187             :         for (bits = 0; bits < (int) sizeof(npy_int32) * 8 - chunk_size; bits += chunk_size) {
   59188             :             PyObject *tmp, *digit;
   59189             :             long idigit;
   59190             :             digit = PyNumber_And(stepval, mask);
   59191             :             if (unlikely(!digit)) goto done;
   59192             :             idigit = PyLong_AsLong(digit);
   59193             :             Py_DECREF(digit);
   59194             :             if (unlikely(idigit < 0)) goto done;
   59195             :             val |= ((npy_int32) idigit) << bits;
   59196             :             tmp = PyNumber_Rshift(stepval, shift);
   59197             :             if (unlikely(!tmp)) goto done;
   59198             :             Py_DECREF(stepval); stepval = tmp;
   59199             :         }
   59200             :         Py_DECREF(shift); shift = NULL;
   59201             :         Py_DECREF(mask); mask = NULL;
   59202             :         {
   59203             :             long idigit = PyLong_AsLong(stepval);
   59204             :             if (unlikely(idigit < 0)) goto done;
   59205             :             remaining_bits = ((int) sizeof(npy_int32) * 8) - bits - (is_unsigned ? 0 : 1);
   59206             :             if (unlikely(idigit >= (1L << remaining_bits)))
   59207             :                 goto raise_overflow;
   59208             :             val |= ((npy_int32) idigit) << bits;
   59209             :         }
   59210             :         if (!is_unsigned) {
   59211             :             if (unlikely(val & (((npy_int32) 1) << (sizeof(npy_int32) * 8 - 1))))
   59212             :                 goto raise_overflow;
   59213             :             if (is_negative)
   59214             :                 val = ~val;
   59215             :         }
   59216             :         ret = 0;
   59217             :     done:
   59218             :         Py_XDECREF(shift);
   59219             :         Py_XDECREF(mask);
   59220             :         Py_XDECREF(stepval);
   59221             : #endif
   59222             :         if (unlikely(ret))
   59223             :             return (npy_int32) -1;
   59224             :         return val;
   59225             :     }
   59226           0 : raise_overflow:
   59227           0 :     PyErr_SetString(PyExc_OverflowError,
   59228             :         "value too large to convert to npy_int32");
   59229           0 :     return (npy_int32) -1;
   59230             : raise_neg_overflow:
   59231             :     PyErr_SetString(PyExc_OverflowError,
   59232             :         "can't convert negative value to npy_int32");
   59233             :     return (npy_int32) -1;
   59234             : }
   59235             : 
   59236             : /* CIntFromPy */
   59237       10030 :   static CYTHON_INLINE npy_uint32 __Pyx_PyInt_As_npy_uint32(PyObject *x) {
   59238             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   59239             : #pragma GCC diagnostic push
   59240             : #pragma GCC diagnostic ignored "-Wconversion"
   59241             : #endif
   59242       10030 :     const npy_uint32 neg_one = (npy_uint32) -1, const_zero = (npy_uint32) 0;
   59243             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   59244             : #pragma GCC diagnostic pop
   59245             : #endif
   59246       10030 :     const int is_unsigned = neg_one > const_zero;
   59247             : #if PY_MAJOR_VERSION < 3
   59248             :     if (likely(PyInt_Check(x))) {
   59249             :         if ((sizeof(npy_uint32) < sizeof(long))) {
   59250             :             __PYX_VERIFY_RETURN_INT(npy_uint32, long, PyInt_AS_LONG(x))
   59251             :         } else {
   59252             :             long val = PyInt_AS_LONG(x);
   59253             :             if (is_unsigned && unlikely(val < 0)) {
   59254             :                 goto raise_neg_overflow;
   59255             :             }
   59256             :             return (npy_uint32) val;
   59257             :         }
   59258             :     }
   59259             : #endif
   59260       10030 :     if (unlikely(!PyLong_Check(x))) {
   59261           7 :         npy_uint32 val;
   59262           7 :         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
   59263           7 :         if (!tmp) return (npy_uint32) -1;
   59264           7 :         val = __Pyx_PyInt_As_npy_uint32(tmp);
   59265           7 :         Py_DECREF(tmp);
   59266           7 :         return val;
   59267             :     }
   59268       10023 :     if (is_unsigned) {
   59269             : #if CYTHON_USE_PYLONG_INTERNALS
   59270       10023 :         if (unlikely(__Pyx_PyLong_IsNeg(x))) {
   59271           0 :             goto raise_neg_overflow;
   59272       10023 :         } else if (__Pyx_PyLong_IsCompact(x)) {
   59273        7671 :             __PYX_VERIFY_RETURN_INT(npy_uint32, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
   59274             :         } else {
   59275        2352 :             const digit* digits = __Pyx_PyLong_Digits(x);
   59276        2352 :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   59277        2352 :             switch (__Pyx_PyLong_DigitCount(x)) {
   59278             :                 case 2:
   59279        2352 :                     if ((8 * sizeof(npy_uint32) > 1 * PyLong_SHIFT)) {
   59280        2352 :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   59281        2352 :                             __PYX_VERIFY_RETURN_INT(npy_uint32, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59282             :                         } else if ((8 * sizeof(npy_uint32) >= 2 * PyLong_SHIFT)) {
   59283             :                             return (npy_uint32) (((((npy_uint32)digits[1]) << PyLong_SHIFT) | (npy_uint32)digits[0]));
   59284             :                         }
   59285             :                     }
   59286             :                     break;
   59287             :                 case 3:
   59288             :                     if ((8 * sizeof(npy_uint32) > 2 * PyLong_SHIFT)) {
   59289             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   59290             :                             __PYX_VERIFY_RETURN_INT(npy_uint32, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59291             :                         } else if ((8 * sizeof(npy_uint32) >= 3 * PyLong_SHIFT)) {
   59292             :                             return (npy_uint32) (((((((npy_uint32)digits[2]) << PyLong_SHIFT) | (npy_uint32)digits[1]) << PyLong_SHIFT) | (npy_uint32)digits[0]));
   59293             :                         }
   59294             :                     }
   59295             :                     break;
   59296             :                 case 4:
   59297             :                     if ((8 * sizeof(npy_uint32) > 3 * PyLong_SHIFT)) {
   59298             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   59299             :                             __PYX_VERIFY_RETURN_INT(npy_uint32, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59300             :                         } else if ((8 * sizeof(npy_uint32) >= 4 * PyLong_SHIFT)) {
   59301             :                             return (npy_uint32) (((((((((npy_uint32)digits[3]) << PyLong_SHIFT) | (npy_uint32)digits[2]) << PyLong_SHIFT) | (npy_uint32)digits[1]) << PyLong_SHIFT) | (npy_uint32)digits[0]));
   59302             :                         }
   59303             :                     }
   59304             :                     break;
   59305             :             }
   59306             :         }
   59307             : #endif
   59308             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
   59309             :         if (unlikely(Py_SIZE(x) < 0)) {
   59310             :             goto raise_neg_overflow;
   59311             :         }
   59312             : #else
   59313             :         {
   59314           0 :             int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
   59315           0 :             if (unlikely(result < 0))
   59316             :                 return (npy_uint32) -1;
   59317           0 :             if (unlikely(result == 1))
   59318           0 :                 goto raise_neg_overflow;
   59319             :         }
   59320             : #endif
   59321           0 :         if ((sizeof(npy_uint32) <= sizeof(unsigned long))) {
   59322           0 :             __PYX_VERIFY_RETURN_INT_EXC(npy_uint32, unsigned long, PyLong_AsUnsignedLong(x))
   59323             : #ifdef HAVE_LONG_LONG
   59324             :         } else if ((sizeof(npy_uint32) <= sizeof(unsigned PY_LONG_LONG))) {
   59325             :             __PYX_VERIFY_RETURN_INT_EXC(npy_uint32, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
   59326             : #endif
   59327             :         }
   59328             :     } else {
   59329             : #if CYTHON_USE_PYLONG_INTERNALS
   59330             :         if (__Pyx_PyLong_IsCompact(x)) {
   59331             :             __PYX_VERIFY_RETURN_INT(npy_uint32, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
   59332             :         } else {
   59333             :             const digit* digits = __Pyx_PyLong_Digits(x);
   59334             :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   59335             :             switch (__Pyx_PyLong_SignedDigitCount(x)) {
   59336             :                 case -2:
   59337             :                     if ((8 * sizeof(npy_uint32) - 1 > 1 * PyLong_SHIFT)) {
   59338             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   59339             :                             __PYX_VERIFY_RETURN_INT(npy_uint32, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59340             :                         } else if ((8 * sizeof(npy_uint32) - 1 > 2 * PyLong_SHIFT)) {
   59341             :                             return (npy_uint32) (((npy_uint32)-1)*(((((npy_uint32)digits[1]) << PyLong_SHIFT) | (npy_uint32)digits[0])));
   59342             :                         }
   59343             :                     }
   59344             :                     break;
   59345             :                 case 2:
   59346             :                     if ((8 * sizeof(npy_uint32) > 1 * PyLong_SHIFT)) {
   59347             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   59348             :                             __PYX_VERIFY_RETURN_INT(npy_uint32, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59349             :                         } else if ((8 * sizeof(npy_uint32) - 1 > 2 * PyLong_SHIFT)) {
   59350             :                             return (npy_uint32) ((((((npy_uint32)digits[1]) << PyLong_SHIFT) | (npy_uint32)digits[0])));
   59351             :                         }
   59352             :                     }
   59353             :                     break;
   59354             :                 case -3:
   59355             :                     if ((8 * sizeof(npy_uint32) - 1 > 2 * PyLong_SHIFT)) {
   59356             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   59357             :                             __PYX_VERIFY_RETURN_INT(npy_uint32, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59358             :                         } else if ((8 * sizeof(npy_uint32) - 1 > 3 * PyLong_SHIFT)) {
   59359             :                             return (npy_uint32) (((npy_uint32)-1)*(((((((npy_uint32)digits[2]) << PyLong_SHIFT) | (npy_uint32)digits[1]) << PyLong_SHIFT) | (npy_uint32)digits[0])));
   59360             :                         }
   59361             :                     }
   59362             :                     break;
   59363             :                 case 3:
   59364             :                     if ((8 * sizeof(npy_uint32) > 2 * PyLong_SHIFT)) {
   59365             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   59366             :                             __PYX_VERIFY_RETURN_INT(npy_uint32, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59367             :                         } else if ((8 * sizeof(npy_uint32) - 1 > 3 * PyLong_SHIFT)) {
   59368             :                             return (npy_uint32) ((((((((npy_uint32)digits[2]) << PyLong_SHIFT) | (npy_uint32)digits[1]) << PyLong_SHIFT) | (npy_uint32)digits[0])));
   59369             :                         }
   59370             :                     }
   59371             :                     break;
   59372             :                 case -4:
   59373             :                     if ((8 * sizeof(npy_uint32) - 1 > 3 * PyLong_SHIFT)) {
   59374             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   59375             :                             __PYX_VERIFY_RETURN_INT(npy_uint32, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59376             :                         } else if ((8 * sizeof(npy_uint32) - 1 > 4 * PyLong_SHIFT)) {
   59377             :                             return (npy_uint32) (((npy_uint32)-1)*(((((((((npy_uint32)digits[3]) << PyLong_SHIFT) | (npy_uint32)digits[2]) << PyLong_SHIFT) | (npy_uint32)digits[1]) << PyLong_SHIFT) | (npy_uint32)digits[0])));
   59378             :                         }
   59379             :                     }
   59380             :                     break;
   59381             :                 case 4:
   59382             :                     if ((8 * sizeof(npy_uint32) > 3 * PyLong_SHIFT)) {
   59383             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   59384             :                             __PYX_VERIFY_RETURN_INT(npy_uint32, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59385             :                         } else if ((8 * sizeof(npy_uint32) - 1 > 4 * PyLong_SHIFT)) {
   59386             :                             return (npy_uint32) ((((((((((npy_uint32)digits[3]) << PyLong_SHIFT) | (npy_uint32)digits[2]) << PyLong_SHIFT) | (npy_uint32)digits[1]) << PyLong_SHIFT) | (npy_uint32)digits[0])));
   59387             :                         }
   59388             :                     }
   59389             :                     break;
   59390             :             }
   59391             :         }
   59392             : #endif
   59393             :         if ((sizeof(npy_uint32) <= sizeof(long))) {
   59394             :             __PYX_VERIFY_RETURN_INT_EXC(npy_uint32, long, PyLong_AsLong(x))
   59395             : #ifdef HAVE_LONG_LONG
   59396             :         } else if ((sizeof(npy_uint32) <= sizeof(PY_LONG_LONG))) {
   59397             :             __PYX_VERIFY_RETURN_INT_EXC(npy_uint32, PY_LONG_LONG, PyLong_AsLongLong(x))
   59398             : #endif
   59399             :         }
   59400             :     }
   59401             :     {
   59402             :         npy_uint32 val;
   59403             :         int ret = -1;
   59404             : #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
   59405             :         Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
   59406             :             x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
   59407             :         if (unlikely(bytes_copied == -1)) {
   59408             :         } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
   59409             :             goto raise_overflow;
   59410             :         } else {
   59411             :             ret = 0;
   59412             :         }
   59413             : #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
   59414             :         int one = 1; int is_little = (int)*(unsigned char *)&one;
   59415             :         unsigned char *bytes = (unsigned char *)&val;
   59416             :         ret = _PyLong_AsByteArray((PyLongObject *)x,
   59417             :                                     bytes, sizeof(val),
   59418             :                                     is_little, !is_unsigned);
   59419             : #else
   59420             :         PyObject *v;
   59421             :         PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
   59422             :         int bits, remaining_bits, is_negative = 0;
   59423             :         int chunk_size = (sizeof(long) < 8) ? 30 : 62;
   59424             :         if (likely(PyLong_CheckExact(x))) {
   59425             :             v = __Pyx_NewRef(x);
   59426             :         } else {
   59427             :             v = PyNumber_Long(x);
   59428             :             if (unlikely(!v)) return (npy_uint32) -1;
   59429             :             assert(PyLong_CheckExact(v));
   59430             :         }
   59431             :         {
   59432             :             int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
   59433             :             if (unlikely(result < 0)) {
   59434             :                 Py_DECREF(v);
   59435             :                 return (npy_uint32) -1;
   59436             :             }
   59437             :             is_negative = result == 1;
   59438             :         }
   59439             :         if (is_unsigned && unlikely(is_negative)) {
   59440             :             Py_DECREF(v);
   59441             :             goto raise_neg_overflow;
   59442             :         } else if (is_negative) {
   59443             :             stepval = PyNumber_Invert(v);
   59444             :             Py_DECREF(v);
   59445             :             if (unlikely(!stepval))
   59446             :                 return (npy_uint32) -1;
   59447             :         } else {
   59448             :             stepval = v;
   59449             :         }
   59450             :         v = NULL;
   59451             :         val = (npy_uint32) 0;
   59452             :         mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
   59453             :         shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
   59454             :         for (bits = 0; bits < (int) sizeof(npy_uint32) * 8 - chunk_size; bits += chunk_size) {
   59455             :             PyObject *tmp, *digit;
   59456             :             long idigit;
   59457             :             digit = PyNumber_And(stepval, mask);
   59458             :             if (unlikely(!digit)) goto done;
   59459             :             idigit = PyLong_AsLong(digit);
   59460             :             Py_DECREF(digit);
   59461             :             if (unlikely(idigit < 0)) goto done;
   59462             :             val |= ((npy_uint32) idigit) << bits;
   59463             :             tmp = PyNumber_Rshift(stepval, shift);
   59464             :             if (unlikely(!tmp)) goto done;
   59465             :             Py_DECREF(stepval); stepval = tmp;
   59466             :         }
   59467             :         Py_DECREF(shift); shift = NULL;
   59468             :         Py_DECREF(mask); mask = NULL;
   59469             :         {
   59470             :             long idigit = PyLong_AsLong(stepval);
   59471             :             if (unlikely(idigit < 0)) goto done;
   59472             :             remaining_bits = ((int) sizeof(npy_uint32) * 8) - bits - (is_unsigned ? 0 : 1);
   59473             :             if (unlikely(idigit >= (1L << remaining_bits)))
   59474             :                 goto raise_overflow;
   59475             :             val |= ((npy_uint32) idigit) << bits;
   59476             :         }
   59477             :         if (!is_unsigned) {
   59478             :             if (unlikely(val & (((npy_uint32) 1) << (sizeof(npy_uint32) * 8 - 1))))
   59479             :                 goto raise_overflow;
   59480             :             if (is_negative)
   59481             :                 val = ~val;
   59482             :         }
   59483             :         ret = 0;
   59484             :     done:
   59485             :         Py_XDECREF(shift);
   59486             :         Py_XDECREF(mask);
   59487             :         Py_XDECREF(stepval);
   59488             : #endif
   59489             :         if (unlikely(ret))
   59490             :             return (npy_uint32) -1;
   59491             :         return val;
   59492             :     }
   59493           0 : raise_overflow:
   59494           0 :     PyErr_SetString(PyExc_OverflowError,
   59495             :         "value too large to convert to npy_uint32");
   59496           0 :     return (npy_uint32) -1;
   59497           0 : raise_neg_overflow:
   59498           0 :     PyErr_SetString(PyExc_OverflowError,
   59499             :         "can't convert negative value to npy_uint32");
   59500           0 :     return (npy_uint32) -1;
   59501             : }
   59502             : 
   59503             : /* CIntFromPy */
   59504       92206 :   static CYTHON_INLINE npy_int64 __Pyx_PyInt_As_npy_int64(PyObject *x) {
   59505             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   59506             : #pragma GCC diagnostic push
   59507             : #pragma GCC diagnostic ignored "-Wconversion"
   59508             : #endif
   59509       92206 :     const npy_int64 neg_one = (npy_int64) -1, const_zero = (npy_int64) 0;
   59510             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   59511             : #pragma GCC diagnostic pop
   59512             : #endif
   59513       92206 :     const int is_unsigned = neg_one > const_zero;
   59514             : #if PY_MAJOR_VERSION < 3
   59515             :     if (likely(PyInt_Check(x))) {
   59516             :         if ((sizeof(npy_int64) < sizeof(long))) {
   59517             :             __PYX_VERIFY_RETURN_INT(npy_int64, long, PyInt_AS_LONG(x))
   59518             :         } else {
   59519             :             long val = PyInt_AS_LONG(x);
   59520             :             if (is_unsigned && unlikely(val < 0)) {
   59521             :                 goto raise_neg_overflow;
   59522             :             }
   59523             :             return (npy_int64) val;
   59524             :         }
   59525             :     }
   59526             : #endif
   59527       92206 :     if (unlikely(!PyLong_Check(x))) {
   59528          14 :         npy_int64 val;
   59529          14 :         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
   59530          14 :         if (!tmp) return (npy_int64) -1;
   59531          14 :         val = __Pyx_PyInt_As_npy_int64(tmp);
   59532          14 :         Py_DECREF(tmp);
   59533          14 :         return val;
   59534             :     }
   59535       92192 :     if (is_unsigned) {
   59536             : #if CYTHON_USE_PYLONG_INTERNALS
   59537             :         if (unlikely(__Pyx_PyLong_IsNeg(x))) {
   59538             :             goto raise_neg_overflow;
   59539             :         } else if (__Pyx_PyLong_IsCompact(x)) {
   59540             :             __PYX_VERIFY_RETURN_INT(npy_int64, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
   59541             :         } else {
   59542             :             const digit* digits = __Pyx_PyLong_Digits(x);
   59543             :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   59544             :             switch (__Pyx_PyLong_DigitCount(x)) {
   59545             :                 case 2:
   59546             :                     if ((8 * sizeof(npy_int64) > 1 * PyLong_SHIFT)) {
   59547             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   59548             :                             __PYX_VERIFY_RETURN_INT(npy_int64, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59549             :                         } else if ((8 * sizeof(npy_int64) >= 2 * PyLong_SHIFT)) {
   59550             :                             return (npy_int64) (((((npy_int64)digits[1]) << PyLong_SHIFT) | (npy_int64)digits[0]));
   59551             :                         }
   59552             :                     }
   59553             :                     break;
   59554             :                 case 3:
   59555             :                     if ((8 * sizeof(npy_int64) > 2 * PyLong_SHIFT)) {
   59556             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   59557             :                             __PYX_VERIFY_RETURN_INT(npy_int64, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59558             :                         } else if ((8 * sizeof(npy_int64) >= 3 * PyLong_SHIFT)) {
   59559             :                             return (npy_int64) (((((((npy_int64)digits[2]) << PyLong_SHIFT) | (npy_int64)digits[1]) << PyLong_SHIFT) | (npy_int64)digits[0]));
   59560             :                         }
   59561             :                     }
   59562             :                     break;
   59563             :                 case 4:
   59564             :                     if ((8 * sizeof(npy_int64) > 3 * PyLong_SHIFT)) {
   59565             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   59566             :                             __PYX_VERIFY_RETURN_INT(npy_int64, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59567             :                         } else if ((8 * sizeof(npy_int64) >= 4 * PyLong_SHIFT)) {
   59568             :                             return (npy_int64) (((((((((npy_int64)digits[3]) << PyLong_SHIFT) | (npy_int64)digits[2]) << PyLong_SHIFT) | (npy_int64)digits[1]) << PyLong_SHIFT) | (npy_int64)digits[0]));
   59569             :                         }
   59570             :                     }
   59571             :                     break;
   59572             :             }
   59573             :         }
   59574             : #endif
   59575             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
   59576             :         if (unlikely(Py_SIZE(x) < 0)) {
   59577             :             goto raise_neg_overflow;
   59578             :         }
   59579             : #else
   59580             :         {
   59581             :             int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
   59582             :             if (unlikely(result < 0))
   59583             :                 return (npy_int64) -1;
   59584             :             if (unlikely(result == 1))
   59585             :                 goto raise_neg_overflow;
   59586             :         }
   59587             : #endif
   59588             :         if ((sizeof(npy_int64) <= sizeof(unsigned long))) {
   59589             :             __PYX_VERIFY_RETURN_INT_EXC(npy_int64, unsigned long, PyLong_AsUnsignedLong(x))
   59590             : #ifdef HAVE_LONG_LONG
   59591             :         } else if ((sizeof(npy_int64) <= sizeof(unsigned PY_LONG_LONG))) {
   59592             :             __PYX_VERIFY_RETURN_INT_EXC(npy_int64, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
   59593             : #endif
   59594             :         }
   59595             :     } else {
   59596             : #if CYTHON_USE_PYLONG_INTERNALS
   59597       92192 :         if (__Pyx_PyLong_IsCompact(x)) {
   59598       92192 :             __PYX_VERIFY_RETURN_INT(npy_int64, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
   59599             :         } else {
   59600           0 :             const digit* digits = __Pyx_PyLong_Digits(x);
   59601           0 :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   59602           0 :             switch (__Pyx_PyLong_SignedDigitCount(x)) {
   59603             :                 case -2:
   59604           0 :                     if ((8 * sizeof(npy_int64) - 1 > 1 * PyLong_SHIFT)) {
   59605           0 :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   59606           0 :                             __PYX_VERIFY_RETURN_INT(npy_int64, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59607             :                         } else if ((8 * sizeof(npy_int64) - 1 > 2 * PyLong_SHIFT)) {
   59608             :                             return (npy_int64) (((npy_int64)-1)*(((((npy_int64)digits[1]) << PyLong_SHIFT) | (npy_int64)digits[0])));
   59609             :                         }
   59610             :                     }
   59611             :                     break;
   59612             :                 case 2:
   59613           0 :                     if ((8 * sizeof(npy_int64) > 1 * PyLong_SHIFT)) {
   59614           0 :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   59615           0 :                             __PYX_VERIFY_RETURN_INT(npy_int64, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59616             :                         } else if ((8 * sizeof(npy_int64) - 1 > 2 * PyLong_SHIFT)) {
   59617             :                             return (npy_int64) ((((((npy_int64)digits[1]) << PyLong_SHIFT) | (npy_int64)digits[0])));
   59618             :                         }
   59619             :                     }
   59620             :                     break;
   59621             :                 case -3:
   59622             :                     if ((8 * sizeof(npy_int64) - 1 > 2 * PyLong_SHIFT)) {
   59623             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   59624             :                             __PYX_VERIFY_RETURN_INT(npy_int64, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59625             :                         } else if ((8 * sizeof(npy_int64) - 1 > 3 * PyLong_SHIFT)) {
   59626             :                             return (npy_int64) (((npy_int64)-1)*(((((((npy_int64)digits[2]) << PyLong_SHIFT) | (npy_int64)digits[1]) << PyLong_SHIFT) | (npy_int64)digits[0])));
   59627             :                         }
   59628             :                     }
   59629             :                     break;
   59630             :                 case 3:
   59631             :                     if ((8 * sizeof(npy_int64) > 2 * PyLong_SHIFT)) {
   59632             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   59633             :                             __PYX_VERIFY_RETURN_INT(npy_int64, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59634             :                         } else if ((8 * sizeof(npy_int64) - 1 > 3 * PyLong_SHIFT)) {
   59635             :                             return (npy_int64) ((((((((npy_int64)digits[2]) << PyLong_SHIFT) | (npy_int64)digits[1]) << PyLong_SHIFT) | (npy_int64)digits[0])));
   59636             :                         }
   59637             :                     }
   59638             :                     break;
   59639             :                 case -4:
   59640             :                     if ((8 * sizeof(npy_int64) - 1 > 3 * PyLong_SHIFT)) {
   59641             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   59642             :                             __PYX_VERIFY_RETURN_INT(npy_int64, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59643             :                         } else if ((8 * sizeof(npy_int64) - 1 > 4 * PyLong_SHIFT)) {
   59644             :                             return (npy_int64) (((npy_int64)-1)*(((((((((npy_int64)digits[3]) << PyLong_SHIFT) | (npy_int64)digits[2]) << PyLong_SHIFT) | (npy_int64)digits[1]) << PyLong_SHIFT) | (npy_int64)digits[0])));
   59645             :                         }
   59646             :                     }
   59647             :                     break;
   59648             :                 case 4:
   59649             :                     if ((8 * sizeof(npy_int64) > 3 * PyLong_SHIFT)) {
   59650             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   59651             :                             __PYX_VERIFY_RETURN_INT(npy_int64, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59652             :                         } else if ((8 * sizeof(npy_int64) - 1 > 4 * PyLong_SHIFT)) {
   59653             :                             return (npy_int64) ((((((((((npy_int64)digits[3]) << PyLong_SHIFT) | (npy_int64)digits[2]) << PyLong_SHIFT) | (npy_int64)digits[1]) << PyLong_SHIFT) | (npy_int64)digits[0])));
   59654             :                         }
   59655             :                     }
   59656             :                     break;
   59657             :             }
   59658             :         }
   59659             : #endif
   59660           0 :         if ((sizeof(npy_int64) <= sizeof(long))) {
   59661           0 :             __PYX_VERIFY_RETURN_INT_EXC(npy_int64, long, PyLong_AsLong(x))
   59662             : #ifdef HAVE_LONG_LONG
   59663             :         } else if ((sizeof(npy_int64) <= sizeof(PY_LONG_LONG))) {
   59664             :             __PYX_VERIFY_RETURN_INT_EXC(npy_int64, PY_LONG_LONG, PyLong_AsLongLong(x))
   59665             : #endif
   59666             :         }
   59667             :     }
   59668             :     {
   59669             :         npy_int64 val;
   59670             :         int ret = -1;
   59671             : #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
   59672             :         Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
   59673             :             x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
   59674             :         if (unlikely(bytes_copied == -1)) {
   59675             :         } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
   59676             :             goto raise_overflow;
   59677             :         } else {
   59678             :             ret = 0;
   59679             :         }
   59680             : #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
   59681             :         int one = 1; int is_little = (int)*(unsigned char *)&one;
   59682             :         unsigned char *bytes = (unsigned char *)&val;
   59683             :         ret = _PyLong_AsByteArray((PyLongObject *)x,
   59684             :                                     bytes, sizeof(val),
   59685             :                                     is_little, !is_unsigned);
   59686             : #else
   59687             :         PyObject *v;
   59688             :         PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
   59689             :         int bits, remaining_bits, is_negative = 0;
   59690             :         int chunk_size = (sizeof(long) < 8) ? 30 : 62;
   59691             :         if (likely(PyLong_CheckExact(x))) {
   59692             :             v = __Pyx_NewRef(x);
   59693             :         } else {
   59694             :             v = PyNumber_Long(x);
   59695             :             if (unlikely(!v)) return (npy_int64) -1;
   59696             :             assert(PyLong_CheckExact(v));
   59697             :         }
   59698             :         {
   59699             :             int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
   59700             :             if (unlikely(result < 0)) {
   59701             :                 Py_DECREF(v);
   59702             :                 return (npy_int64) -1;
   59703             :             }
   59704             :             is_negative = result == 1;
   59705             :         }
   59706             :         if (is_unsigned && unlikely(is_negative)) {
   59707             :             Py_DECREF(v);
   59708             :             goto raise_neg_overflow;
   59709             :         } else if (is_negative) {
   59710             :             stepval = PyNumber_Invert(v);
   59711             :             Py_DECREF(v);
   59712             :             if (unlikely(!stepval))
   59713             :                 return (npy_int64) -1;
   59714             :         } else {
   59715             :             stepval = v;
   59716             :         }
   59717             :         v = NULL;
   59718             :         val = (npy_int64) 0;
   59719             :         mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
   59720             :         shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
   59721             :         for (bits = 0; bits < (int) sizeof(npy_int64) * 8 - chunk_size; bits += chunk_size) {
   59722             :             PyObject *tmp, *digit;
   59723             :             long idigit;
   59724             :             digit = PyNumber_And(stepval, mask);
   59725             :             if (unlikely(!digit)) goto done;
   59726             :             idigit = PyLong_AsLong(digit);
   59727             :             Py_DECREF(digit);
   59728             :             if (unlikely(idigit < 0)) goto done;
   59729             :             val |= ((npy_int64) idigit) << bits;
   59730             :             tmp = PyNumber_Rshift(stepval, shift);
   59731             :             if (unlikely(!tmp)) goto done;
   59732             :             Py_DECREF(stepval); stepval = tmp;
   59733             :         }
   59734             :         Py_DECREF(shift); shift = NULL;
   59735             :         Py_DECREF(mask); mask = NULL;
   59736             :         {
   59737             :             long idigit = PyLong_AsLong(stepval);
   59738             :             if (unlikely(idigit < 0)) goto done;
   59739             :             remaining_bits = ((int) sizeof(npy_int64) * 8) - bits - (is_unsigned ? 0 : 1);
   59740             :             if (unlikely(idigit >= (1L << remaining_bits)))
   59741             :                 goto raise_overflow;
   59742             :             val |= ((npy_int64) idigit) << bits;
   59743             :         }
   59744             :         if (!is_unsigned) {
   59745             :             if (unlikely(val & (((npy_int64) 1) << (sizeof(npy_int64) * 8 - 1))))
   59746             :                 goto raise_overflow;
   59747             :             if (is_negative)
   59748             :                 val = ~val;
   59749             :         }
   59750             :         ret = 0;
   59751             :     done:
   59752             :         Py_XDECREF(shift);
   59753             :         Py_XDECREF(mask);
   59754             :         Py_XDECREF(stepval);
   59755             : #endif
   59756             :         if (unlikely(ret))
   59757             :             return (npy_int64) -1;
   59758             :         return val;
   59759             :     }
   59760             : raise_overflow:
   59761             :     PyErr_SetString(PyExc_OverflowError,
   59762             :         "value too large to convert to npy_int64");
   59763             :     return (npy_int64) -1;
   59764             : raise_neg_overflow:
   59765             :     PyErr_SetString(PyExc_OverflowError,
   59766             :         "can't convert negative value to npy_int64");
   59767             :     return (npy_int64) -1;
   59768             : }
   59769             : 
   59770             : /* CIntFromPy */
   59771       20060 :   static CYTHON_INLINE npy_uint64 __Pyx_PyInt_As_npy_uint64(PyObject *x) {
   59772             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   59773             : #pragma GCC diagnostic push
   59774             : #pragma GCC diagnostic ignored "-Wconversion"
   59775             : #endif
   59776       20060 :     const npy_uint64 neg_one = (npy_uint64) -1, const_zero = (npy_uint64) 0;
   59777             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   59778             : #pragma GCC diagnostic pop
   59779             : #endif
   59780       20060 :     const int is_unsigned = neg_one > const_zero;
   59781             : #if PY_MAJOR_VERSION < 3
   59782             :     if (likely(PyInt_Check(x))) {
   59783             :         if ((sizeof(npy_uint64) < sizeof(long))) {
   59784             :             __PYX_VERIFY_RETURN_INT(npy_uint64, long, PyInt_AS_LONG(x))
   59785             :         } else {
   59786             :             long val = PyInt_AS_LONG(x);
   59787             :             if (is_unsigned && unlikely(val < 0)) {
   59788             :                 goto raise_neg_overflow;
   59789             :             }
   59790             :             return (npy_uint64) val;
   59791             :         }
   59792             :     }
   59793             : #endif
   59794       20060 :     if (unlikely(!PyLong_Check(x))) {
   59795          14 :         npy_uint64 val;
   59796          14 :         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
   59797          14 :         if (!tmp) return (npy_uint64) -1;
   59798          14 :         val = __Pyx_PyInt_As_npy_uint64(tmp);
   59799          14 :         Py_DECREF(tmp);
   59800          14 :         return val;
   59801             :     }
   59802       20046 :     if (is_unsigned) {
   59803             : #if CYTHON_USE_PYLONG_INTERNALS
   59804       20046 :         if (unlikely(__Pyx_PyLong_IsNeg(x))) {
   59805           0 :             goto raise_neg_overflow;
   59806       20046 :         } else if (__Pyx_PyLong_IsCompact(x)) {
   59807       15342 :             __PYX_VERIFY_RETURN_INT(npy_uint64, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
   59808             :         } else {
   59809        4704 :             const digit* digits = __Pyx_PyLong_Digits(x);
   59810        4704 :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   59811        4704 :             switch (__Pyx_PyLong_DigitCount(x)) {
   59812             :                 case 2:
   59813           0 :                     if ((8 * sizeof(npy_uint64) > 1 * PyLong_SHIFT)) {
   59814           0 :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   59815           0 :                             __PYX_VERIFY_RETURN_INT(npy_uint64, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59816             :                         } else if ((8 * sizeof(npy_uint64) >= 2 * PyLong_SHIFT)) {
   59817             :                             return (npy_uint64) (((((npy_uint64)digits[1]) << PyLong_SHIFT) | (npy_uint64)digits[0]));
   59818             :                         }
   59819             :                     }
   59820             :                     break;
   59821             :                 case 3:
   59822             :                     if ((8 * sizeof(npy_uint64) > 2 * PyLong_SHIFT)) {
   59823             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   59824             :                             __PYX_VERIFY_RETURN_INT(npy_uint64, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59825             :                         } else if ((8 * sizeof(npy_uint64) >= 3 * PyLong_SHIFT)) {
   59826             :                             return (npy_uint64) (((((((npy_uint64)digits[2]) << PyLong_SHIFT) | (npy_uint64)digits[1]) << PyLong_SHIFT) | (npy_uint64)digits[0]));
   59827             :                         }
   59828             :                     }
   59829             :                     break;
   59830             :                 case 4:
   59831             :                     if ((8 * sizeof(npy_uint64) > 3 * PyLong_SHIFT)) {
   59832             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   59833             :                             __PYX_VERIFY_RETURN_INT(npy_uint64, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59834             :                         } else if ((8 * sizeof(npy_uint64) >= 4 * PyLong_SHIFT)) {
   59835             :                             return (npy_uint64) (((((((((npy_uint64)digits[3]) << PyLong_SHIFT) | (npy_uint64)digits[2]) << PyLong_SHIFT) | (npy_uint64)digits[1]) << PyLong_SHIFT) | (npy_uint64)digits[0]));
   59836             :                         }
   59837             :                     }
   59838             :                     break;
   59839             :             }
   59840             :         }
   59841             : #endif
   59842             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
   59843             :         if (unlikely(Py_SIZE(x) < 0)) {
   59844             :             goto raise_neg_overflow;
   59845             :         }
   59846             : #else
   59847             :         {
   59848        4704 :             int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
   59849        4704 :             if (unlikely(result < 0))
   59850             :                 return (npy_uint64) -1;
   59851        4704 :             if (unlikely(result == 1))
   59852           0 :                 goto raise_neg_overflow;
   59853             :         }
   59854             : #endif
   59855        4704 :         if ((sizeof(npy_uint64) <= sizeof(unsigned long))) {
   59856        4704 :             __PYX_VERIFY_RETURN_INT_EXC(npy_uint64, unsigned long, PyLong_AsUnsignedLong(x))
   59857             : #ifdef HAVE_LONG_LONG
   59858             :         } else if ((sizeof(npy_uint64) <= sizeof(unsigned PY_LONG_LONG))) {
   59859             :             __PYX_VERIFY_RETURN_INT_EXC(npy_uint64, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
   59860             : #endif
   59861             :         }
   59862             :     } else {
   59863             : #if CYTHON_USE_PYLONG_INTERNALS
   59864             :         if (__Pyx_PyLong_IsCompact(x)) {
   59865             :             __PYX_VERIFY_RETURN_INT(npy_uint64, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
   59866             :         } else {
   59867             :             const digit* digits = __Pyx_PyLong_Digits(x);
   59868             :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   59869             :             switch (__Pyx_PyLong_SignedDigitCount(x)) {
   59870             :                 case -2:
   59871             :                     if ((8 * sizeof(npy_uint64) - 1 > 1 * PyLong_SHIFT)) {
   59872             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   59873             :                             __PYX_VERIFY_RETURN_INT(npy_uint64, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59874             :                         } else if ((8 * sizeof(npy_uint64) - 1 > 2 * PyLong_SHIFT)) {
   59875             :                             return (npy_uint64) (((npy_uint64)-1)*(((((npy_uint64)digits[1]) << PyLong_SHIFT) | (npy_uint64)digits[0])));
   59876             :                         }
   59877             :                     }
   59878             :                     break;
   59879             :                 case 2:
   59880             :                     if ((8 * sizeof(npy_uint64) > 1 * PyLong_SHIFT)) {
   59881             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   59882             :                             __PYX_VERIFY_RETURN_INT(npy_uint64, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59883             :                         } else if ((8 * sizeof(npy_uint64) - 1 > 2 * PyLong_SHIFT)) {
   59884             :                             return (npy_uint64) ((((((npy_uint64)digits[1]) << PyLong_SHIFT) | (npy_uint64)digits[0])));
   59885             :                         }
   59886             :                     }
   59887             :                     break;
   59888             :                 case -3:
   59889             :                     if ((8 * sizeof(npy_uint64) - 1 > 2 * PyLong_SHIFT)) {
   59890             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   59891             :                             __PYX_VERIFY_RETURN_INT(npy_uint64, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59892             :                         } else if ((8 * sizeof(npy_uint64) - 1 > 3 * PyLong_SHIFT)) {
   59893             :                             return (npy_uint64) (((npy_uint64)-1)*(((((((npy_uint64)digits[2]) << PyLong_SHIFT) | (npy_uint64)digits[1]) << PyLong_SHIFT) | (npy_uint64)digits[0])));
   59894             :                         }
   59895             :                     }
   59896             :                     break;
   59897             :                 case 3:
   59898             :                     if ((8 * sizeof(npy_uint64) > 2 * PyLong_SHIFT)) {
   59899             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   59900             :                             __PYX_VERIFY_RETURN_INT(npy_uint64, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59901             :                         } else if ((8 * sizeof(npy_uint64) - 1 > 3 * PyLong_SHIFT)) {
   59902             :                             return (npy_uint64) ((((((((npy_uint64)digits[2]) << PyLong_SHIFT) | (npy_uint64)digits[1]) << PyLong_SHIFT) | (npy_uint64)digits[0])));
   59903             :                         }
   59904             :                     }
   59905             :                     break;
   59906             :                 case -4:
   59907             :                     if ((8 * sizeof(npy_uint64) - 1 > 3 * PyLong_SHIFT)) {
   59908             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   59909             :                             __PYX_VERIFY_RETURN_INT(npy_uint64, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59910             :                         } else if ((8 * sizeof(npy_uint64) - 1 > 4 * PyLong_SHIFT)) {
   59911             :                             return (npy_uint64) (((npy_uint64)-1)*(((((((((npy_uint64)digits[3]) << PyLong_SHIFT) | (npy_uint64)digits[2]) << PyLong_SHIFT) | (npy_uint64)digits[1]) << PyLong_SHIFT) | (npy_uint64)digits[0])));
   59912             :                         }
   59913             :                     }
   59914             :                     break;
   59915             :                 case 4:
   59916             :                     if ((8 * sizeof(npy_uint64) > 3 * PyLong_SHIFT)) {
   59917             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   59918             :                             __PYX_VERIFY_RETURN_INT(npy_uint64, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   59919             :                         } else if ((8 * sizeof(npy_uint64) - 1 > 4 * PyLong_SHIFT)) {
   59920             :                             return (npy_uint64) ((((((((((npy_uint64)digits[3]) << PyLong_SHIFT) | (npy_uint64)digits[2]) << PyLong_SHIFT) | (npy_uint64)digits[1]) << PyLong_SHIFT) | (npy_uint64)digits[0])));
   59921             :                         }
   59922             :                     }
   59923             :                     break;
   59924             :             }
   59925             :         }
   59926             : #endif
   59927             :         if ((sizeof(npy_uint64) <= sizeof(long))) {
   59928             :             __PYX_VERIFY_RETURN_INT_EXC(npy_uint64, long, PyLong_AsLong(x))
   59929             : #ifdef HAVE_LONG_LONG
   59930             :         } else if ((sizeof(npy_uint64) <= sizeof(PY_LONG_LONG))) {
   59931             :             __PYX_VERIFY_RETURN_INT_EXC(npy_uint64, PY_LONG_LONG, PyLong_AsLongLong(x))
   59932             : #endif
   59933             :         }
   59934             :     }
   59935             :     {
   59936             :         npy_uint64 val;
   59937             :         int ret = -1;
   59938             : #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
   59939             :         Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
   59940             :             x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
   59941             :         if (unlikely(bytes_copied == -1)) {
   59942             :         } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
   59943             :             goto raise_overflow;
   59944             :         } else {
   59945             :             ret = 0;
   59946             :         }
   59947             : #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
   59948             :         int one = 1; int is_little = (int)*(unsigned char *)&one;
   59949             :         unsigned char *bytes = (unsigned char *)&val;
   59950             :         ret = _PyLong_AsByteArray((PyLongObject *)x,
   59951             :                                     bytes, sizeof(val),
   59952             :                                     is_little, !is_unsigned);
   59953             : #else
   59954             :         PyObject *v;
   59955             :         PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
   59956             :         int bits, remaining_bits, is_negative = 0;
   59957             :         int chunk_size = (sizeof(long) < 8) ? 30 : 62;
   59958             :         if (likely(PyLong_CheckExact(x))) {
   59959             :             v = __Pyx_NewRef(x);
   59960             :         } else {
   59961             :             v = PyNumber_Long(x);
   59962             :             if (unlikely(!v)) return (npy_uint64) -1;
   59963             :             assert(PyLong_CheckExact(v));
   59964             :         }
   59965             :         {
   59966             :             int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
   59967             :             if (unlikely(result < 0)) {
   59968             :                 Py_DECREF(v);
   59969             :                 return (npy_uint64) -1;
   59970             :             }
   59971             :             is_negative = result == 1;
   59972             :         }
   59973             :         if (is_unsigned && unlikely(is_negative)) {
   59974             :             Py_DECREF(v);
   59975             :             goto raise_neg_overflow;
   59976             :         } else if (is_negative) {
   59977             :             stepval = PyNumber_Invert(v);
   59978             :             Py_DECREF(v);
   59979             :             if (unlikely(!stepval))
   59980             :                 return (npy_uint64) -1;
   59981             :         } else {
   59982             :             stepval = v;
   59983             :         }
   59984             :         v = NULL;
   59985             :         val = (npy_uint64) 0;
   59986             :         mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
   59987             :         shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
   59988             :         for (bits = 0; bits < (int) sizeof(npy_uint64) * 8 - chunk_size; bits += chunk_size) {
   59989             :             PyObject *tmp, *digit;
   59990             :             long idigit;
   59991             :             digit = PyNumber_And(stepval, mask);
   59992             :             if (unlikely(!digit)) goto done;
   59993             :             idigit = PyLong_AsLong(digit);
   59994             :             Py_DECREF(digit);
   59995             :             if (unlikely(idigit < 0)) goto done;
   59996             :             val |= ((npy_uint64) idigit) << bits;
   59997             :             tmp = PyNumber_Rshift(stepval, shift);
   59998             :             if (unlikely(!tmp)) goto done;
   59999             :             Py_DECREF(stepval); stepval = tmp;
   60000             :         }
   60001             :         Py_DECREF(shift); shift = NULL;
   60002             :         Py_DECREF(mask); mask = NULL;
   60003             :         {
   60004             :             long idigit = PyLong_AsLong(stepval);
   60005             :             if (unlikely(idigit < 0)) goto done;
   60006             :             remaining_bits = ((int) sizeof(npy_uint64) * 8) - bits - (is_unsigned ? 0 : 1);
   60007             :             if (unlikely(idigit >= (1L << remaining_bits)))
   60008             :                 goto raise_overflow;
   60009             :             val |= ((npy_uint64) idigit) << bits;
   60010             :         }
   60011             :         if (!is_unsigned) {
   60012             :             if (unlikely(val & (((npy_uint64) 1) << (sizeof(npy_uint64) * 8 - 1))))
   60013             :                 goto raise_overflow;
   60014             :             if (is_negative)
   60015             :                 val = ~val;
   60016             :         }
   60017             :         ret = 0;
   60018             :     done:
   60019             :         Py_XDECREF(shift);
   60020             :         Py_XDECREF(mask);
   60021             :         Py_XDECREF(stepval);
   60022             : #endif
   60023             :         if (unlikely(ret))
   60024             :             return (npy_uint64) -1;
   60025             :         return val;
   60026             :     }
   60027             : raise_overflow:
   60028             :     PyErr_SetString(PyExc_OverflowError,
   60029             :         "value too large to convert to npy_uint64");
   60030             :     return (npy_uint64) -1;
   60031           0 : raise_neg_overflow:
   60032           0 :     PyErr_SetString(PyExc_OverflowError,
   60033             :         "can't convert negative value to npy_uint64");
   60034           0 :     return (npy_uint64) -1;
   60035             : }
   60036             : 
   60037             : /* CIntToPy */
   60038           0 :   static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_bool(npy_bool value) {
   60039             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60040             : #pragma GCC diagnostic push
   60041             : #pragma GCC diagnostic ignored "-Wconversion"
   60042             : #endif
   60043           0 :     const npy_bool neg_one = (npy_bool) -1, const_zero = (npy_bool) 0;
   60044             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60045             : #pragma GCC diagnostic pop
   60046             : #endif
   60047           0 :     const int is_unsigned = neg_one > const_zero;
   60048           0 :     if (is_unsigned) {
   60049           0 :         if (sizeof(npy_bool) < sizeof(long)) {
   60050           0 :             return PyInt_FromLong((long) value);
   60051             :         } else if (sizeof(npy_bool) <= sizeof(unsigned long)) {
   60052             :             return PyLong_FromUnsignedLong((unsigned long) value);
   60053             : #ifdef HAVE_LONG_LONG
   60054             :         } else if (sizeof(npy_bool) <= sizeof(unsigned PY_LONG_LONG)) {
   60055             :             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
   60056             : #endif
   60057             :         }
   60058             :     } else {
   60059             :         if (sizeof(npy_bool) <= sizeof(long)) {
   60060             :             return PyInt_FromLong((long) value);
   60061             : #ifdef HAVE_LONG_LONG
   60062             :         } else if (sizeof(npy_bool) <= sizeof(PY_LONG_LONG)) {
   60063             :             return PyLong_FromLongLong((PY_LONG_LONG) value);
   60064             : #endif
   60065             :         }
   60066             :     }
   60067             :     {
   60068             :         unsigned char *bytes = (unsigned char *)&value;
   60069             : #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
   60070             :         if (is_unsigned) {
   60071             :             return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
   60072             :         } else {
   60073             :             return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
   60074             :         }
   60075             : #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
   60076             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60077             :         return _PyLong_FromByteArray(bytes, sizeof(npy_bool),
   60078             :                                      little, !is_unsigned);
   60079             : #else
   60080             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60081             :         PyObject *from_bytes, *result = NULL;
   60082             :         PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
   60083             :         from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
   60084             :         if (!from_bytes) return NULL;
   60085             :         py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(npy_bool));
   60086             :         if (!py_bytes) goto limited_bad;
   60087             :         order_str = PyUnicode_FromString(little ? "little" : "big");
   60088             :         if (!order_str) goto limited_bad;
   60089             :         arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
   60090             :         if (!arg_tuple) goto limited_bad;
   60091             :         if (!is_unsigned) {
   60092             :             kwds = PyDict_New();
   60093             :             if (!kwds) goto limited_bad;
   60094             :             if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
   60095             :         }
   60096             :         result = PyObject_Call(from_bytes, arg_tuple, kwds);
   60097             :         limited_bad:
   60098             :         Py_XDECREF(kwds);
   60099             :         Py_XDECREF(arg_tuple);
   60100             :         Py_XDECREF(order_str);
   60101             :         Py_XDECREF(py_bytes);
   60102             :         Py_XDECREF(from_bytes);
   60103             :         return result;
   60104             : #endif
   60105             :     }
   60106             : }
   60107             : 
   60108             : /* CIntToPy */
   60109          42 :   static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_int8(npy_int8 value) {
   60110             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60111             : #pragma GCC diagnostic push
   60112             : #pragma GCC diagnostic ignored "-Wconversion"
   60113             : #endif
   60114          42 :     const npy_int8 neg_one = (npy_int8) -1, const_zero = (npy_int8) 0;
   60115             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60116             : #pragma GCC diagnostic pop
   60117             : #endif
   60118          42 :     const int is_unsigned = neg_one > const_zero;
   60119          42 :     if (is_unsigned) {
   60120             :         if (sizeof(npy_int8) < sizeof(long)) {
   60121             :             return PyInt_FromLong((long) value);
   60122             :         } else if (sizeof(npy_int8) <= sizeof(unsigned long)) {
   60123             :             return PyLong_FromUnsignedLong((unsigned long) value);
   60124             : #ifdef HAVE_LONG_LONG
   60125             :         } else if (sizeof(npy_int8) <= sizeof(unsigned PY_LONG_LONG)) {
   60126             :             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
   60127             : #endif
   60128             :         }
   60129             :     } else {
   60130          42 :         if (sizeof(npy_int8) <= sizeof(long)) {
   60131          42 :             return PyInt_FromLong((long) value);
   60132             : #ifdef HAVE_LONG_LONG
   60133             :         } else if (sizeof(npy_int8) <= sizeof(PY_LONG_LONG)) {
   60134             :             return PyLong_FromLongLong((PY_LONG_LONG) value);
   60135             : #endif
   60136             :         }
   60137             :     }
   60138             :     {
   60139             :         unsigned char *bytes = (unsigned char *)&value;
   60140             : #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
   60141             :         if (is_unsigned) {
   60142             :             return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
   60143             :         } else {
   60144             :             return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
   60145             :         }
   60146             : #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
   60147             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60148             :         return _PyLong_FromByteArray(bytes, sizeof(npy_int8),
   60149             :                                      little, !is_unsigned);
   60150             : #else
   60151             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60152             :         PyObject *from_bytes, *result = NULL;
   60153             :         PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
   60154             :         from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
   60155             :         if (!from_bytes) return NULL;
   60156             :         py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(npy_int8));
   60157             :         if (!py_bytes) goto limited_bad;
   60158             :         order_str = PyUnicode_FromString(little ? "little" : "big");
   60159             :         if (!order_str) goto limited_bad;
   60160             :         arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
   60161             :         if (!arg_tuple) goto limited_bad;
   60162             :         if (!is_unsigned) {
   60163             :             kwds = PyDict_New();
   60164             :             if (!kwds) goto limited_bad;
   60165             :             if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
   60166             :         }
   60167             :         result = PyObject_Call(from_bytes, arg_tuple, kwds);
   60168             :         limited_bad:
   60169             :         Py_XDECREF(kwds);
   60170             :         Py_XDECREF(arg_tuple);
   60171             :         Py_XDECREF(order_str);
   60172             :         Py_XDECREF(py_bytes);
   60173             :         Py_XDECREF(from_bytes);
   60174             :         return result;
   60175             : #endif
   60176             :     }
   60177             : }
   60178             : 
   60179             : /* CIntToPy */
   60180          84 :   static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_uint8(npy_uint8 value) {
   60181             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60182             : #pragma GCC diagnostic push
   60183             : #pragma GCC diagnostic ignored "-Wconversion"
   60184             : #endif
   60185          84 :     const npy_uint8 neg_one = (npy_uint8) -1, const_zero = (npy_uint8) 0;
   60186             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60187             : #pragma GCC diagnostic pop
   60188             : #endif
   60189          84 :     const int is_unsigned = neg_one > const_zero;
   60190          84 :     if (is_unsigned) {
   60191          84 :         if (sizeof(npy_uint8) < sizeof(long)) {
   60192          84 :             return PyInt_FromLong((long) value);
   60193             :         } else if (sizeof(npy_uint8) <= sizeof(unsigned long)) {
   60194             :             return PyLong_FromUnsignedLong((unsigned long) value);
   60195             : #ifdef HAVE_LONG_LONG
   60196             :         } else if (sizeof(npy_uint8) <= sizeof(unsigned PY_LONG_LONG)) {
   60197             :             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
   60198             : #endif
   60199             :         }
   60200             :     } else {
   60201             :         if (sizeof(npy_uint8) <= sizeof(long)) {
   60202             :             return PyInt_FromLong((long) value);
   60203             : #ifdef HAVE_LONG_LONG
   60204             :         } else if (sizeof(npy_uint8) <= sizeof(PY_LONG_LONG)) {
   60205             :             return PyLong_FromLongLong((PY_LONG_LONG) value);
   60206             : #endif
   60207             :         }
   60208             :     }
   60209             :     {
   60210             :         unsigned char *bytes = (unsigned char *)&value;
   60211             : #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
   60212             :         if (is_unsigned) {
   60213             :             return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
   60214             :         } else {
   60215             :             return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
   60216             :         }
   60217             : #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
   60218             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60219             :         return _PyLong_FromByteArray(bytes, sizeof(npy_uint8),
   60220             :                                      little, !is_unsigned);
   60221             : #else
   60222             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60223             :         PyObject *from_bytes, *result = NULL;
   60224             :         PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
   60225             :         from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
   60226             :         if (!from_bytes) return NULL;
   60227             :         py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(npy_uint8));
   60228             :         if (!py_bytes) goto limited_bad;
   60229             :         order_str = PyUnicode_FromString(little ? "little" : "big");
   60230             :         if (!order_str) goto limited_bad;
   60231             :         arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
   60232             :         if (!arg_tuple) goto limited_bad;
   60233             :         if (!is_unsigned) {
   60234             :             kwds = PyDict_New();
   60235             :             if (!kwds) goto limited_bad;
   60236             :             if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
   60237             :         }
   60238             :         result = PyObject_Call(from_bytes, arg_tuple, kwds);
   60239             :         limited_bad:
   60240             :         Py_XDECREF(kwds);
   60241             :         Py_XDECREF(arg_tuple);
   60242             :         Py_XDECREF(order_str);
   60243             :         Py_XDECREF(py_bytes);
   60244             :         Py_XDECREF(from_bytes);
   60245             :         return result;
   60246             : #endif
   60247             :     }
   60248             : }
   60249             : 
   60250             : /* CIntToPy */
   60251          42 :   static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_int16(npy_int16 value) {
   60252             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60253             : #pragma GCC diagnostic push
   60254             : #pragma GCC diagnostic ignored "-Wconversion"
   60255             : #endif
   60256          42 :     const npy_int16 neg_one = (npy_int16) -1, const_zero = (npy_int16) 0;
   60257             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60258             : #pragma GCC diagnostic pop
   60259             : #endif
   60260          42 :     const int is_unsigned = neg_one > const_zero;
   60261          42 :     if (is_unsigned) {
   60262             :         if (sizeof(npy_int16) < sizeof(long)) {
   60263             :             return PyInt_FromLong((long) value);
   60264             :         } else if (sizeof(npy_int16) <= sizeof(unsigned long)) {
   60265             :             return PyLong_FromUnsignedLong((unsigned long) value);
   60266             : #ifdef HAVE_LONG_LONG
   60267             :         } else if (sizeof(npy_int16) <= sizeof(unsigned PY_LONG_LONG)) {
   60268             :             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
   60269             : #endif
   60270             :         }
   60271             :     } else {
   60272          42 :         if (sizeof(npy_int16) <= sizeof(long)) {
   60273          42 :             return PyInt_FromLong((long) value);
   60274             : #ifdef HAVE_LONG_LONG
   60275             :         } else if (sizeof(npy_int16) <= sizeof(PY_LONG_LONG)) {
   60276             :             return PyLong_FromLongLong((PY_LONG_LONG) value);
   60277             : #endif
   60278             :         }
   60279             :     }
   60280             :     {
   60281             :         unsigned char *bytes = (unsigned char *)&value;
   60282             : #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
   60283             :         if (is_unsigned) {
   60284             :             return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
   60285             :         } else {
   60286             :             return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
   60287             :         }
   60288             : #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
   60289             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60290             :         return _PyLong_FromByteArray(bytes, sizeof(npy_int16),
   60291             :                                      little, !is_unsigned);
   60292             : #else
   60293             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60294             :         PyObject *from_bytes, *result = NULL;
   60295             :         PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
   60296             :         from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
   60297             :         if (!from_bytes) return NULL;
   60298             :         py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(npy_int16));
   60299             :         if (!py_bytes) goto limited_bad;
   60300             :         order_str = PyUnicode_FromString(little ? "little" : "big");
   60301             :         if (!order_str) goto limited_bad;
   60302             :         arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
   60303             :         if (!arg_tuple) goto limited_bad;
   60304             :         if (!is_unsigned) {
   60305             :             kwds = PyDict_New();
   60306             :             if (!kwds) goto limited_bad;
   60307             :             if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
   60308             :         }
   60309             :         result = PyObject_Call(from_bytes, arg_tuple, kwds);
   60310             :         limited_bad:
   60311             :         Py_XDECREF(kwds);
   60312             :         Py_XDECREF(arg_tuple);
   60313             :         Py_XDECREF(order_str);
   60314             :         Py_XDECREF(py_bytes);
   60315             :         Py_XDECREF(from_bytes);
   60316             :         return result;
   60317             : #endif
   60318             :     }
   60319             : }
   60320             : 
   60321             : /* CIntToPy */
   60322          42 :   static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_uint16(npy_uint16 value) {
   60323             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60324             : #pragma GCC diagnostic push
   60325             : #pragma GCC diagnostic ignored "-Wconversion"
   60326             : #endif
   60327          42 :     const npy_uint16 neg_one = (npy_uint16) -1, const_zero = (npy_uint16) 0;
   60328             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60329             : #pragma GCC diagnostic pop
   60330             : #endif
   60331          42 :     const int is_unsigned = neg_one > const_zero;
   60332          42 :     if (is_unsigned) {
   60333          42 :         if (sizeof(npy_uint16) < sizeof(long)) {
   60334          42 :             return PyInt_FromLong((long) value);
   60335             :         } else if (sizeof(npy_uint16) <= sizeof(unsigned long)) {
   60336             :             return PyLong_FromUnsignedLong((unsigned long) value);
   60337             : #ifdef HAVE_LONG_LONG
   60338             :         } else if (sizeof(npy_uint16) <= sizeof(unsigned PY_LONG_LONG)) {
   60339             :             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
   60340             : #endif
   60341             :         }
   60342             :     } else {
   60343             :         if (sizeof(npy_uint16) <= sizeof(long)) {
   60344             :             return PyInt_FromLong((long) value);
   60345             : #ifdef HAVE_LONG_LONG
   60346             :         } else if (sizeof(npy_uint16) <= sizeof(PY_LONG_LONG)) {
   60347             :             return PyLong_FromLongLong((PY_LONG_LONG) value);
   60348             : #endif
   60349             :         }
   60350             :     }
   60351             :     {
   60352             :         unsigned char *bytes = (unsigned char *)&value;
   60353             : #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
   60354             :         if (is_unsigned) {
   60355             :             return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
   60356             :         } else {
   60357             :             return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
   60358             :         }
   60359             : #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
   60360             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60361             :         return _PyLong_FromByteArray(bytes, sizeof(npy_uint16),
   60362             :                                      little, !is_unsigned);
   60363             : #else
   60364             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60365             :         PyObject *from_bytes, *result = NULL;
   60366             :         PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
   60367             :         from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
   60368             :         if (!from_bytes) return NULL;
   60369             :         py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(npy_uint16));
   60370             :         if (!py_bytes) goto limited_bad;
   60371             :         order_str = PyUnicode_FromString(little ? "little" : "big");
   60372             :         if (!order_str) goto limited_bad;
   60373             :         arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
   60374             :         if (!arg_tuple) goto limited_bad;
   60375             :         if (!is_unsigned) {
   60376             :             kwds = PyDict_New();
   60377             :             if (!kwds) goto limited_bad;
   60378             :             if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
   60379             :         }
   60380             :         result = PyObject_Call(from_bytes, arg_tuple, kwds);
   60381             :         limited_bad:
   60382             :         Py_XDECREF(kwds);
   60383             :         Py_XDECREF(arg_tuple);
   60384             :         Py_XDECREF(order_str);
   60385             :         Py_XDECREF(py_bytes);
   60386             :         Py_XDECREF(from_bytes);
   60387             :         return result;
   60388             : #endif
   60389             :     }
   60390             : }
   60391             : 
   60392             : /* CIntToPy */
   60393          42 :   static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_int32(npy_int32 value) {
   60394             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60395             : #pragma GCC diagnostic push
   60396             : #pragma GCC diagnostic ignored "-Wconversion"
   60397             : #endif
   60398          42 :     const npy_int32 neg_one = (npy_int32) -1, const_zero = (npy_int32) 0;
   60399             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60400             : #pragma GCC diagnostic pop
   60401             : #endif
   60402          42 :     const int is_unsigned = neg_one > const_zero;
   60403          42 :     if (is_unsigned) {
   60404             :         if (sizeof(npy_int32) < sizeof(long)) {
   60405             :             return PyInt_FromLong((long) value);
   60406             :         } else if (sizeof(npy_int32) <= sizeof(unsigned long)) {
   60407             :             return PyLong_FromUnsignedLong((unsigned long) value);
   60408             : #ifdef HAVE_LONG_LONG
   60409             :         } else if (sizeof(npy_int32) <= sizeof(unsigned PY_LONG_LONG)) {
   60410             :             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
   60411             : #endif
   60412             :         }
   60413             :     } else {
   60414          42 :         if (sizeof(npy_int32) <= sizeof(long)) {
   60415          42 :             return PyInt_FromLong((long) value);
   60416             : #ifdef HAVE_LONG_LONG
   60417             :         } else if (sizeof(npy_int32) <= sizeof(PY_LONG_LONG)) {
   60418             :             return PyLong_FromLongLong((PY_LONG_LONG) value);
   60419             : #endif
   60420             :         }
   60421             :     }
   60422             :     {
   60423             :         unsigned char *bytes = (unsigned char *)&value;
   60424             : #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
   60425             :         if (is_unsigned) {
   60426             :             return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
   60427             :         } else {
   60428             :             return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
   60429             :         }
   60430             : #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
   60431             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60432             :         return _PyLong_FromByteArray(bytes, sizeof(npy_int32),
   60433             :                                      little, !is_unsigned);
   60434             : #else
   60435             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60436             :         PyObject *from_bytes, *result = NULL;
   60437             :         PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
   60438             :         from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
   60439             :         if (!from_bytes) return NULL;
   60440             :         py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(npy_int32));
   60441             :         if (!py_bytes) goto limited_bad;
   60442             :         order_str = PyUnicode_FromString(little ? "little" : "big");
   60443             :         if (!order_str) goto limited_bad;
   60444             :         arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
   60445             :         if (!arg_tuple) goto limited_bad;
   60446             :         if (!is_unsigned) {
   60447             :             kwds = PyDict_New();
   60448             :             if (!kwds) goto limited_bad;
   60449             :             if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
   60450             :         }
   60451             :         result = PyObject_Call(from_bytes, arg_tuple, kwds);
   60452             :         limited_bad:
   60453             :         Py_XDECREF(kwds);
   60454             :         Py_XDECREF(arg_tuple);
   60455             :         Py_XDECREF(order_str);
   60456             :         Py_XDECREF(py_bytes);
   60457             :         Py_XDECREF(from_bytes);
   60458             :         return result;
   60459             : #endif
   60460             :     }
   60461             : }
   60462             : 
   60463             : /* CIntToPy */
   60464          42 :   static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_uint32(npy_uint32 value) {
   60465             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60466             : #pragma GCC diagnostic push
   60467             : #pragma GCC diagnostic ignored "-Wconversion"
   60468             : #endif
   60469          42 :     const npy_uint32 neg_one = (npy_uint32) -1, const_zero = (npy_uint32) 0;
   60470             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60471             : #pragma GCC diagnostic pop
   60472             : #endif
   60473          42 :     const int is_unsigned = neg_one > const_zero;
   60474          42 :     if (is_unsigned) {
   60475          42 :         if (sizeof(npy_uint32) < sizeof(long)) {
   60476          42 :             return PyInt_FromLong((long) value);
   60477             :         } else if (sizeof(npy_uint32) <= sizeof(unsigned long)) {
   60478             :             return PyLong_FromUnsignedLong((unsigned long) value);
   60479             : #ifdef HAVE_LONG_LONG
   60480             :         } else if (sizeof(npy_uint32) <= sizeof(unsigned PY_LONG_LONG)) {
   60481             :             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
   60482             : #endif
   60483             :         }
   60484             :     } else {
   60485             :         if (sizeof(npy_uint32) <= sizeof(long)) {
   60486             :             return PyInt_FromLong((long) value);
   60487             : #ifdef HAVE_LONG_LONG
   60488             :         } else if (sizeof(npy_uint32) <= sizeof(PY_LONG_LONG)) {
   60489             :             return PyLong_FromLongLong((PY_LONG_LONG) value);
   60490             : #endif
   60491             :         }
   60492             :     }
   60493             :     {
   60494             :         unsigned char *bytes = (unsigned char *)&value;
   60495             : #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
   60496             :         if (is_unsigned) {
   60497             :             return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
   60498             :         } else {
   60499             :             return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
   60500             :         }
   60501             : #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
   60502             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60503             :         return _PyLong_FromByteArray(bytes, sizeof(npy_uint32),
   60504             :                                      little, !is_unsigned);
   60505             : #else
   60506             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60507             :         PyObject *from_bytes, *result = NULL;
   60508             :         PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
   60509             :         from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
   60510             :         if (!from_bytes) return NULL;
   60511             :         py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(npy_uint32));
   60512             :         if (!py_bytes) goto limited_bad;
   60513             :         order_str = PyUnicode_FromString(little ? "little" : "big");
   60514             :         if (!order_str) goto limited_bad;
   60515             :         arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
   60516             :         if (!arg_tuple) goto limited_bad;
   60517             :         if (!is_unsigned) {
   60518             :             kwds = PyDict_New();
   60519             :             if (!kwds) goto limited_bad;
   60520             :             if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
   60521             :         }
   60522             :         result = PyObject_Call(from_bytes, arg_tuple, kwds);
   60523             :         limited_bad:
   60524             :         Py_XDECREF(kwds);
   60525             :         Py_XDECREF(arg_tuple);
   60526             :         Py_XDECREF(order_str);
   60527             :         Py_XDECREF(py_bytes);
   60528             :         Py_XDECREF(from_bytes);
   60529             :         return result;
   60530             : #endif
   60531             :     }
   60532             : }
   60533             : 
   60534             : /* CIntToPy */
   60535        6058 :   static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_int64(npy_int64 value) {
   60536             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60537             : #pragma GCC diagnostic push
   60538             : #pragma GCC diagnostic ignored "-Wconversion"
   60539             : #endif
   60540        6058 :     const npy_int64 neg_one = (npy_int64) -1, const_zero = (npy_int64) 0;
   60541             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60542             : #pragma GCC diagnostic pop
   60543             : #endif
   60544        6058 :     const int is_unsigned = neg_one > const_zero;
   60545        6058 :     if (is_unsigned) {
   60546             :         if (sizeof(npy_int64) < sizeof(long)) {
   60547             :             return PyInt_FromLong((long) value);
   60548             :         } else if (sizeof(npy_int64) <= sizeof(unsigned long)) {
   60549             :             return PyLong_FromUnsignedLong((unsigned long) value);
   60550             : #ifdef HAVE_LONG_LONG
   60551             :         } else if (sizeof(npy_int64) <= sizeof(unsigned PY_LONG_LONG)) {
   60552             :             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
   60553             : #endif
   60554             :         }
   60555             :     } else {
   60556        6058 :         if (sizeof(npy_int64) <= sizeof(long)) {
   60557        6058 :             return PyInt_FromLong((long) value);
   60558             : #ifdef HAVE_LONG_LONG
   60559             :         } else if (sizeof(npy_int64) <= sizeof(PY_LONG_LONG)) {
   60560             :             return PyLong_FromLongLong((PY_LONG_LONG) value);
   60561             : #endif
   60562             :         }
   60563             :     }
   60564             :     {
   60565             :         unsigned char *bytes = (unsigned char *)&value;
   60566             : #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
   60567             :         if (is_unsigned) {
   60568             :             return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
   60569             :         } else {
   60570             :             return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
   60571             :         }
   60572             : #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
   60573             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60574             :         return _PyLong_FromByteArray(bytes, sizeof(npy_int64),
   60575             :                                      little, !is_unsigned);
   60576             : #else
   60577             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60578             :         PyObject *from_bytes, *result = NULL;
   60579             :         PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
   60580             :         from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
   60581             :         if (!from_bytes) return NULL;
   60582             :         py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(npy_int64));
   60583             :         if (!py_bytes) goto limited_bad;
   60584             :         order_str = PyUnicode_FromString(little ? "little" : "big");
   60585             :         if (!order_str) goto limited_bad;
   60586             :         arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
   60587             :         if (!arg_tuple) goto limited_bad;
   60588             :         if (!is_unsigned) {
   60589             :             kwds = PyDict_New();
   60590             :             if (!kwds) goto limited_bad;
   60591             :             if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
   60592             :         }
   60593             :         result = PyObject_Call(from_bytes, arg_tuple, kwds);
   60594             :         limited_bad:
   60595             :         Py_XDECREF(kwds);
   60596             :         Py_XDECREF(arg_tuple);
   60597             :         Py_XDECREF(order_str);
   60598             :         Py_XDECREF(py_bytes);
   60599             :         Py_XDECREF(from_bytes);
   60600             :         return result;
   60601             : #endif
   60602             :     }
   60603             : }
   60604             : 
   60605             : /* CIntToPy */
   60606          84 :   static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_uint64(npy_uint64 value) {
   60607             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60608             : #pragma GCC diagnostic push
   60609             : #pragma GCC diagnostic ignored "-Wconversion"
   60610             : #endif
   60611          84 :     const npy_uint64 neg_one = (npy_uint64) -1, const_zero = (npy_uint64) 0;
   60612             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60613             : #pragma GCC diagnostic pop
   60614             : #endif
   60615          84 :     const int is_unsigned = neg_one > const_zero;
   60616          84 :     if (is_unsigned) {
   60617          84 :         if (sizeof(npy_uint64) < sizeof(long)) {
   60618             :             return PyInt_FromLong((long) value);
   60619          84 :         } else if (sizeof(npy_uint64) <= sizeof(unsigned long)) {
   60620          84 :             return PyLong_FromUnsignedLong((unsigned long) value);
   60621             : #ifdef HAVE_LONG_LONG
   60622             :         } else if (sizeof(npy_uint64) <= sizeof(unsigned PY_LONG_LONG)) {
   60623             :             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
   60624             : #endif
   60625             :         }
   60626             :     } else {
   60627             :         if (sizeof(npy_uint64) <= sizeof(long)) {
   60628             :             return PyInt_FromLong((long) value);
   60629             : #ifdef HAVE_LONG_LONG
   60630             :         } else if (sizeof(npy_uint64) <= sizeof(PY_LONG_LONG)) {
   60631             :             return PyLong_FromLongLong((PY_LONG_LONG) value);
   60632             : #endif
   60633             :         }
   60634             :     }
   60635             :     {
   60636             :         unsigned char *bytes = (unsigned char *)&value;
   60637             : #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
   60638             :         if (is_unsigned) {
   60639             :             return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
   60640             :         } else {
   60641             :             return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
   60642             :         }
   60643             : #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
   60644             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60645             :         return _PyLong_FromByteArray(bytes, sizeof(npy_uint64),
   60646             :                                      little, !is_unsigned);
   60647             : #else
   60648             :         int one = 1; int little = (int)*(unsigned char *)&one;
   60649             :         PyObject *from_bytes, *result = NULL;
   60650             :         PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
   60651             :         from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
   60652             :         if (!from_bytes) return NULL;
   60653             :         py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(npy_uint64));
   60654             :         if (!py_bytes) goto limited_bad;
   60655             :         order_str = PyUnicode_FromString(little ? "little" : "big");
   60656             :         if (!order_str) goto limited_bad;
   60657             :         arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
   60658             :         if (!arg_tuple) goto limited_bad;
   60659             :         if (!is_unsigned) {
   60660             :             kwds = PyDict_New();
   60661             :             if (!kwds) goto limited_bad;
   60662             :             if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
   60663             :         }
   60664             :         result = PyObject_Call(from_bytes, arg_tuple, kwds);
   60665             :         limited_bad:
   60666             :         Py_XDECREF(kwds);
   60667             :         Py_XDECREF(arg_tuple);
   60668             :         Py_XDECREF(order_str);
   60669             :         Py_XDECREF(py_bytes);
   60670             :         Py_XDECREF(from_bytes);
   60671             :         return result;
   60672             : #endif
   60673             :     }
   60674             : }
   60675             : 
   60676             : /* ImportNumPyArray */
   60677           3 :   static PyObject* __Pyx__ImportNumPyArray(void) {
   60678           3 :     PyObject *numpy_module, *ndarray_object = NULL;
   60679           3 :     numpy_module = __Pyx_Import(__pyx_n_s_numpy, NULL, 0);
   60680           3 :     if (likely(numpy_module)) {
   60681           3 :         ndarray_object = PyObject_GetAttrString(numpy_module, "ndarray");
   60682           3 :         Py_DECREF(numpy_module);
   60683             :     }
   60684           3 :     if (unlikely(!ndarray_object)) {
   60685           0 :         PyErr_Clear();
   60686             :     }
   60687           3 :     if (unlikely(!ndarray_object || !PyObject_TypeCheck(ndarray_object, &PyType_Type))) {
   60688           0 :         Py_XDECREF(ndarray_object);
   60689           0 :         Py_INCREF(Py_None);
   60690             :         ndarray_object = Py_None;
   60691             :     }
   60692           3 :     return ndarray_object;
   60693             : }
   60694      112491 : static CYTHON_INLINE PyObject* __Pyx_ImportNumPyArrayTypeIfAvailable(void) {
   60695      112491 :     if (unlikely(!__pyx_numpy_ndarray)) {
   60696           3 :         __pyx_numpy_ndarray = __Pyx__ImportNumPyArray();
   60697             :     }
   60698      112491 :     Py_INCREF(__pyx_numpy_ndarray);
   60699      112491 :     return __pyx_numpy_ndarray;
   60700             : }
   60701             : 
   60702             : /* CIntFromPy */
   60703      536853 :   static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
   60704             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60705             : #pragma GCC diagnostic push
   60706             : #pragma GCC diagnostic ignored "-Wconversion"
   60707             : #endif
   60708      536853 :     const int neg_one = (int) -1, const_zero = (int) 0;
   60709             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60710             : #pragma GCC diagnostic pop
   60711             : #endif
   60712      536853 :     const int is_unsigned = neg_one > const_zero;
   60713             : #if PY_MAJOR_VERSION < 3
   60714             :     if (likely(PyInt_Check(x))) {
   60715             :         if ((sizeof(int) < sizeof(long))) {
   60716             :             __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
   60717             :         } else {
   60718             :             long val = PyInt_AS_LONG(x);
   60719             :             if (is_unsigned && unlikely(val < 0)) {
   60720             :                 goto raise_neg_overflow;
   60721             :             }
   60722             :             return (int) val;
   60723             :         }
   60724             :     }
   60725             : #endif
   60726      536853 :     if (unlikely(!PyLong_Check(x))) {
   60727           0 :         int val;
   60728           0 :         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
   60729           0 :         if (!tmp) return (int) -1;
   60730           0 :         val = __Pyx_PyInt_As_int(tmp);
   60731           0 :         Py_DECREF(tmp);
   60732           0 :         return val;
   60733             :     }
   60734      536853 :     if (is_unsigned) {
   60735             : #if CYTHON_USE_PYLONG_INTERNALS
   60736             :         if (unlikely(__Pyx_PyLong_IsNeg(x))) {
   60737             :             goto raise_neg_overflow;
   60738             :         } else if (__Pyx_PyLong_IsCompact(x)) {
   60739             :             __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
   60740             :         } else {
   60741             :             const digit* digits = __Pyx_PyLong_Digits(x);
   60742             :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   60743             :             switch (__Pyx_PyLong_DigitCount(x)) {
   60744             :                 case 2:
   60745             :                     if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
   60746             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   60747             :                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   60748             :                         } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {
   60749             :                             return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
   60750             :                         }
   60751             :                     }
   60752             :                     break;
   60753             :                 case 3:
   60754             :                     if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
   60755             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   60756             :                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   60757             :                         } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {
   60758             :                             return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
   60759             :                         }
   60760             :                     }
   60761             :                     break;
   60762             :                 case 4:
   60763             :                     if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
   60764             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   60765             :                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   60766             :                         } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {
   60767             :                             return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
   60768             :                         }
   60769             :                     }
   60770             :                     break;
   60771             :             }
   60772             :         }
   60773             : #endif
   60774             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
   60775             :         if (unlikely(Py_SIZE(x) < 0)) {
   60776             :             goto raise_neg_overflow;
   60777             :         }
   60778             : #else
   60779             :         {
   60780             :             int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
   60781             :             if (unlikely(result < 0))
   60782             :                 return (int) -1;
   60783             :             if (unlikely(result == 1))
   60784             :                 goto raise_neg_overflow;
   60785             :         }
   60786             : #endif
   60787             :         if ((sizeof(int) <= sizeof(unsigned long))) {
   60788             :             __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
   60789             : #ifdef HAVE_LONG_LONG
   60790             :         } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {
   60791             :             __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
   60792             : #endif
   60793             :         }
   60794             :     } else {
   60795             : #if CYTHON_USE_PYLONG_INTERNALS
   60796      536853 :         if (__Pyx_PyLong_IsCompact(x)) {
   60797      536853 :             __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
   60798             :         } else {
   60799           0 :             const digit* digits = __Pyx_PyLong_Digits(x);
   60800           0 :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   60801           0 :             switch (__Pyx_PyLong_SignedDigitCount(x)) {
   60802             :                 case -2:
   60803           0 :                     if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) {
   60804           0 :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   60805           0 :                             __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   60806             :                         } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
   60807             :                             return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
   60808             :                         }
   60809             :                     }
   60810             :                     break;
   60811             :                 case 2:
   60812           0 :                     if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
   60813           0 :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   60814           0 :                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   60815             :                         } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
   60816             :                             return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
   60817             :                         }
   60818             :                     }
   60819             :                     break;
   60820             :                 case -3:
   60821             :                     if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
   60822             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   60823             :                             __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   60824             :                         } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
   60825             :                             return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
   60826             :                         }
   60827             :                     }
   60828             :                     break;
   60829             :                 case 3:
   60830             :                     if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
   60831             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   60832             :                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   60833             :                         } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
   60834             :                             return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
   60835             :                         }
   60836             :                     }
   60837             :                     break;
   60838             :                 case -4:
   60839             :                     if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
   60840             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   60841             :                             __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   60842             :                         } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
   60843             :                             return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
   60844             :                         }
   60845             :                     }
   60846             :                     break;
   60847             :                 case 4:
   60848             :                     if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
   60849             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   60850             :                             __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   60851             :                         } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
   60852             :                             return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
   60853             :                         }
   60854             :                     }
   60855             :                     break;
   60856             :             }
   60857             :         }
   60858             : #endif
   60859           0 :         if ((sizeof(int) <= sizeof(long))) {
   60860           0 :             __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
   60861             : #ifdef HAVE_LONG_LONG
   60862             :         } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) {
   60863             :             __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
   60864             : #endif
   60865             :         }
   60866             :     }
   60867             :     {
   60868             :         int val;
   60869             :         int ret = -1;
   60870             : #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
   60871             :         Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
   60872             :             x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
   60873             :         if (unlikely(bytes_copied == -1)) {
   60874             :         } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
   60875             :             goto raise_overflow;
   60876             :         } else {
   60877             :             ret = 0;
   60878             :         }
   60879             : #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
   60880             :         int one = 1; int is_little = (int)*(unsigned char *)&one;
   60881             :         unsigned char *bytes = (unsigned char *)&val;
   60882             :         ret = _PyLong_AsByteArray((PyLongObject *)x,
   60883             :                                     bytes, sizeof(val),
   60884             :                                     is_little, !is_unsigned);
   60885             : #else
   60886             :         PyObject *v;
   60887             :         PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
   60888             :         int bits, remaining_bits, is_negative = 0;
   60889             :         int chunk_size = (sizeof(long) < 8) ? 30 : 62;
   60890             :         if (likely(PyLong_CheckExact(x))) {
   60891             :             v = __Pyx_NewRef(x);
   60892             :         } else {
   60893             :             v = PyNumber_Long(x);
   60894             :             if (unlikely(!v)) return (int) -1;
   60895             :             assert(PyLong_CheckExact(v));
   60896             :         }
   60897             :         {
   60898             :             int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
   60899             :             if (unlikely(result < 0)) {
   60900             :                 Py_DECREF(v);
   60901             :                 return (int) -1;
   60902             :             }
   60903             :             is_negative = result == 1;
   60904             :         }
   60905             :         if (is_unsigned && unlikely(is_negative)) {
   60906             :             Py_DECREF(v);
   60907             :             goto raise_neg_overflow;
   60908             :         } else if (is_negative) {
   60909             :             stepval = PyNumber_Invert(v);
   60910             :             Py_DECREF(v);
   60911             :             if (unlikely(!stepval))
   60912             :                 return (int) -1;
   60913             :         } else {
   60914             :             stepval = v;
   60915             :         }
   60916             :         v = NULL;
   60917             :         val = (int) 0;
   60918             :         mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
   60919             :         shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
   60920             :         for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) {
   60921             :             PyObject *tmp, *digit;
   60922             :             long idigit;
   60923             :             digit = PyNumber_And(stepval, mask);
   60924             :             if (unlikely(!digit)) goto done;
   60925             :             idigit = PyLong_AsLong(digit);
   60926             :             Py_DECREF(digit);
   60927             :             if (unlikely(idigit < 0)) goto done;
   60928             :             val |= ((int) idigit) << bits;
   60929             :             tmp = PyNumber_Rshift(stepval, shift);
   60930             :             if (unlikely(!tmp)) goto done;
   60931             :             Py_DECREF(stepval); stepval = tmp;
   60932             :         }
   60933             :         Py_DECREF(shift); shift = NULL;
   60934             :         Py_DECREF(mask); mask = NULL;
   60935             :         {
   60936             :             long idigit = PyLong_AsLong(stepval);
   60937             :             if (unlikely(idigit < 0)) goto done;
   60938             :             remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1);
   60939             :             if (unlikely(idigit >= (1L << remaining_bits)))
   60940             :                 goto raise_overflow;
   60941             :             val |= ((int) idigit) << bits;
   60942             :         }
   60943             :         if (!is_unsigned) {
   60944             :             if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1))))
   60945             :                 goto raise_overflow;
   60946             :             if (is_negative)
   60947             :                 val = ~val;
   60948             :         }
   60949             :         ret = 0;
   60950             :     done:
   60951             :         Py_XDECREF(shift);
   60952             :         Py_XDECREF(mask);
   60953             :         Py_XDECREF(stepval);
   60954             : #endif
   60955             :         if (unlikely(ret))
   60956             :             return (int) -1;
   60957             :         return val;
   60958             :     }
   60959           0 : raise_overflow:
   60960           0 :     PyErr_SetString(PyExc_OverflowError,
   60961             :         "value too large to convert to int");
   60962           0 :     return (int) -1;
   60963             : raise_neg_overflow:
   60964             :     PyErr_SetString(PyExc_OverflowError,
   60965             :         "can't convert negative value to int");
   60966             :     return (int) -1;
   60967             : }
   60968             : 
   60969             : /* CIntFromPy */
   60970           0 :   static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
   60971             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60972             : #pragma GCC diagnostic push
   60973             : #pragma GCC diagnostic ignored "-Wconversion"
   60974             : #endif
   60975           0 :     const long neg_one = (long) -1, const_zero = (long) 0;
   60976             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   60977             : #pragma GCC diagnostic pop
   60978             : #endif
   60979           0 :     const int is_unsigned = neg_one > const_zero;
   60980             : #if PY_MAJOR_VERSION < 3
   60981             :     if (likely(PyInt_Check(x))) {
   60982             :         if ((sizeof(long) < sizeof(long))) {
   60983             :             __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
   60984             :         } else {
   60985             :             long val = PyInt_AS_LONG(x);
   60986             :             if (is_unsigned && unlikely(val < 0)) {
   60987             :                 goto raise_neg_overflow;
   60988             :             }
   60989             :             return (long) val;
   60990             :         }
   60991             :     }
   60992             : #endif
   60993           0 :     if (unlikely(!PyLong_Check(x))) {
   60994           0 :         long val;
   60995           0 :         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
   60996           0 :         if (!tmp) return (long) -1;
   60997           0 :         val = __Pyx_PyInt_As_long(tmp);
   60998           0 :         Py_DECREF(tmp);
   60999           0 :         return val;
   61000             :     }
   61001           0 :     if (is_unsigned) {
   61002             : #if CYTHON_USE_PYLONG_INTERNALS
   61003             :         if (unlikely(__Pyx_PyLong_IsNeg(x))) {
   61004             :             goto raise_neg_overflow;
   61005             :         } else if (__Pyx_PyLong_IsCompact(x)) {
   61006             :             __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
   61007             :         } else {
   61008             :             const digit* digits = __Pyx_PyLong_Digits(x);
   61009             :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   61010             :             switch (__Pyx_PyLong_DigitCount(x)) {
   61011             :                 case 2:
   61012             :                     if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
   61013             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   61014             :                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61015             :                         } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) {
   61016             :                             return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
   61017             :                         }
   61018             :                     }
   61019             :                     break;
   61020             :                 case 3:
   61021             :                     if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
   61022             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   61023             :                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61024             :                         } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) {
   61025             :                             return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
   61026             :                         }
   61027             :                     }
   61028             :                     break;
   61029             :                 case 4:
   61030             :                     if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
   61031             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   61032             :                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61033             :                         } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) {
   61034             :                             return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
   61035             :                         }
   61036             :                     }
   61037             :                     break;
   61038             :             }
   61039             :         }
   61040             : #endif
   61041             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
   61042             :         if (unlikely(Py_SIZE(x) < 0)) {
   61043             :             goto raise_neg_overflow;
   61044             :         }
   61045             : #else
   61046             :         {
   61047             :             int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
   61048             :             if (unlikely(result < 0))
   61049             :                 return (long) -1;
   61050             :             if (unlikely(result == 1))
   61051             :                 goto raise_neg_overflow;
   61052             :         }
   61053             : #endif
   61054             :         if ((sizeof(long) <= sizeof(unsigned long))) {
   61055             :             __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
   61056             : #ifdef HAVE_LONG_LONG
   61057             :         } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) {
   61058             :             __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
   61059             : #endif
   61060             :         }
   61061             :     } else {
   61062             : #if CYTHON_USE_PYLONG_INTERNALS
   61063           0 :         if (__Pyx_PyLong_IsCompact(x)) {
   61064           0 :             __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
   61065             :         } else {
   61066           0 :             const digit* digits = __Pyx_PyLong_Digits(x);
   61067           0 :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   61068           0 :             switch (__Pyx_PyLong_SignedDigitCount(x)) {
   61069             :                 case -2:
   61070           0 :                     if ((8 * sizeof(long) - 1 > 1 * PyLong_SHIFT)) {
   61071           0 :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   61072           0 :                             __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61073             :                         } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
   61074             :                             return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
   61075             :                         }
   61076             :                     }
   61077             :                     break;
   61078             :                 case 2:
   61079           0 :                     if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
   61080           0 :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   61081           0 :                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61082             :                         } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
   61083             :                             return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
   61084             :                         }
   61085             :                     }
   61086             :                     break;
   61087             :                 case -3:
   61088             :                     if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
   61089             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   61090             :                             __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61091             :                         } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
   61092             :                             return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
   61093             :                         }
   61094             :                     }
   61095             :                     break;
   61096             :                 case 3:
   61097             :                     if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
   61098             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   61099             :                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61100             :                         } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
   61101             :                             return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
   61102             :                         }
   61103             :                     }
   61104             :                     break;
   61105             :                 case -4:
   61106             :                     if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
   61107             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   61108             :                             __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61109             :                         } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
   61110             :                             return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
   61111             :                         }
   61112             :                     }
   61113             :                     break;
   61114             :                 case 4:
   61115             :                     if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
   61116             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   61117             :                             __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61118             :                         } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
   61119             :                             return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
   61120             :                         }
   61121             :                     }
   61122             :                     break;
   61123             :             }
   61124             :         }
   61125             : #endif
   61126           0 :         if ((sizeof(long) <= sizeof(long))) {
   61127           0 :             __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
   61128             : #ifdef HAVE_LONG_LONG
   61129             :         } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) {
   61130             :             __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
   61131             : #endif
   61132             :         }
   61133             :     }
   61134             :     {
   61135             :         long val;
   61136             :         int ret = -1;
   61137             : #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
   61138             :         Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
   61139             :             x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
   61140             :         if (unlikely(bytes_copied == -1)) {
   61141             :         } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
   61142             :             goto raise_overflow;
   61143             :         } else {
   61144             :             ret = 0;
   61145             :         }
   61146             : #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
   61147             :         int one = 1; int is_little = (int)*(unsigned char *)&one;
   61148             :         unsigned char *bytes = (unsigned char *)&val;
   61149             :         ret = _PyLong_AsByteArray((PyLongObject *)x,
   61150             :                                     bytes, sizeof(val),
   61151             :                                     is_little, !is_unsigned);
   61152             : #else
   61153             :         PyObject *v;
   61154             :         PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
   61155             :         int bits, remaining_bits, is_negative = 0;
   61156             :         int chunk_size = (sizeof(long) < 8) ? 30 : 62;
   61157             :         if (likely(PyLong_CheckExact(x))) {
   61158             :             v = __Pyx_NewRef(x);
   61159             :         } else {
   61160             :             v = PyNumber_Long(x);
   61161             :             if (unlikely(!v)) return (long) -1;
   61162             :             assert(PyLong_CheckExact(v));
   61163             :         }
   61164             :         {
   61165             :             int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
   61166             :             if (unlikely(result < 0)) {
   61167             :                 Py_DECREF(v);
   61168             :                 return (long) -1;
   61169             :             }
   61170             :             is_negative = result == 1;
   61171             :         }
   61172             :         if (is_unsigned && unlikely(is_negative)) {
   61173             :             Py_DECREF(v);
   61174             :             goto raise_neg_overflow;
   61175             :         } else if (is_negative) {
   61176             :             stepval = PyNumber_Invert(v);
   61177             :             Py_DECREF(v);
   61178             :             if (unlikely(!stepval))
   61179             :                 return (long) -1;
   61180             :         } else {
   61181             :             stepval = v;
   61182             :         }
   61183             :         v = NULL;
   61184             :         val = (long) 0;
   61185             :         mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
   61186             :         shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
   61187             :         for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) {
   61188             :             PyObject *tmp, *digit;
   61189             :             long idigit;
   61190             :             digit = PyNumber_And(stepval, mask);
   61191             :             if (unlikely(!digit)) goto done;
   61192             :             idigit = PyLong_AsLong(digit);
   61193             :             Py_DECREF(digit);
   61194             :             if (unlikely(idigit < 0)) goto done;
   61195             :             val |= ((long) idigit) << bits;
   61196             :             tmp = PyNumber_Rshift(stepval, shift);
   61197             :             if (unlikely(!tmp)) goto done;
   61198             :             Py_DECREF(stepval); stepval = tmp;
   61199             :         }
   61200             :         Py_DECREF(shift); shift = NULL;
   61201             :         Py_DECREF(mask); mask = NULL;
   61202             :         {
   61203             :             long idigit = PyLong_AsLong(stepval);
   61204             :             if (unlikely(idigit < 0)) goto done;
   61205             :             remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1);
   61206             :             if (unlikely(idigit >= (1L << remaining_bits)))
   61207             :                 goto raise_overflow;
   61208             :             val |= ((long) idigit) << bits;
   61209             :         }
   61210             :         if (!is_unsigned) {
   61211             :             if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1))))
   61212             :                 goto raise_overflow;
   61213             :             if (is_negative)
   61214             :                 val = ~val;
   61215             :         }
   61216             :         ret = 0;
   61217             :     done:
   61218             :         Py_XDECREF(shift);
   61219             :         Py_XDECREF(mask);
   61220             :         Py_XDECREF(stepval);
   61221             : #endif
   61222             :         if (unlikely(ret))
   61223             :             return (long) -1;
   61224             :         return val;
   61225             :     }
   61226             : raise_overflow:
   61227             :     PyErr_SetString(PyExc_OverflowError,
   61228             :         "value too large to convert to long");
   61229             :     return (long) -1;
   61230             : raise_neg_overflow:
   61231             :     PyErr_SetString(PyExc_OverflowError,
   61232             :         "can't convert negative value to long");
   61233             :     return (long) -1;
   61234             : }
   61235             : 
   61236             : /* CIntFromPy */
   61237             :   static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) {
   61238             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   61239             : #pragma GCC diagnostic push
   61240             : #pragma GCC diagnostic ignored "-Wconversion"
   61241             : #endif
   61242             :     const char neg_one = (char) -1, const_zero = (char) 0;
   61243             : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
   61244             : #pragma GCC diagnostic pop
   61245             : #endif
   61246             :     const int is_unsigned = neg_one > const_zero;
   61247             : #if PY_MAJOR_VERSION < 3
   61248             :     if (likely(PyInt_Check(x))) {
   61249             :         if ((sizeof(char) < sizeof(long))) {
   61250             :             __PYX_VERIFY_RETURN_INT(char, long, PyInt_AS_LONG(x))
   61251             :         } else {
   61252             :             long val = PyInt_AS_LONG(x);
   61253             :             if (is_unsigned && unlikely(val < 0)) {
   61254             :                 goto raise_neg_overflow;
   61255             :             }
   61256             :             return (char) val;
   61257             :         }
   61258             :     }
   61259             : #endif
   61260             :     if (unlikely(!PyLong_Check(x))) {
   61261             :         char val;
   61262             :         PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
   61263             :         if (!tmp) return (char) -1;
   61264             :         val = __Pyx_PyInt_As_char(tmp);
   61265             :         Py_DECREF(tmp);
   61266             :         return val;
   61267             :     }
   61268             :     if (is_unsigned) {
   61269             : #if CYTHON_USE_PYLONG_INTERNALS
   61270             :         if (unlikely(__Pyx_PyLong_IsNeg(x))) {
   61271             :             goto raise_neg_overflow;
   61272             :         } else if (__Pyx_PyLong_IsCompact(x)) {
   61273             :             __PYX_VERIFY_RETURN_INT(char, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
   61274             :         } else {
   61275             :             const digit* digits = __Pyx_PyLong_Digits(x);
   61276             :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   61277             :             switch (__Pyx_PyLong_DigitCount(x)) {
   61278             :                 case 2:
   61279             :                     if ((8 * sizeof(char) > 1 * PyLong_SHIFT)) {
   61280             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   61281             :                             __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61282             :                         } else if ((8 * sizeof(char) >= 2 * PyLong_SHIFT)) {
   61283             :                             return (char) (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
   61284             :                         }
   61285             :                     }
   61286             :                     break;
   61287             :                 case 3:
   61288             :                     if ((8 * sizeof(char) > 2 * PyLong_SHIFT)) {
   61289             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   61290             :                             __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61291             :                         } else if ((8 * sizeof(char) >= 3 * PyLong_SHIFT)) {
   61292             :                             return (char) (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
   61293             :                         }
   61294             :                     }
   61295             :                     break;
   61296             :                 case 4:
   61297             :                     if ((8 * sizeof(char) > 3 * PyLong_SHIFT)) {
   61298             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   61299             :                             __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61300             :                         } else if ((8 * sizeof(char) >= 4 * PyLong_SHIFT)) {
   61301             :                             return (char) (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
   61302             :                         }
   61303             :                     }
   61304             :                     break;
   61305             :             }
   61306             :         }
   61307             : #endif
   61308             : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
   61309             :         if (unlikely(Py_SIZE(x) < 0)) {
   61310             :             goto raise_neg_overflow;
   61311             :         }
   61312             : #else
   61313             :         {
   61314             :             int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
   61315             :             if (unlikely(result < 0))
   61316             :                 return (char) -1;
   61317             :             if (unlikely(result == 1))
   61318             :                 goto raise_neg_overflow;
   61319             :         }
   61320             : #endif
   61321             :         if ((sizeof(char) <= sizeof(unsigned long))) {
   61322             :             __PYX_VERIFY_RETURN_INT_EXC(char, unsigned long, PyLong_AsUnsignedLong(x))
   61323             : #ifdef HAVE_LONG_LONG
   61324             :         } else if ((sizeof(char) <= sizeof(unsigned PY_LONG_LONG))) {
   61325             :             __PYX_VERIFY_RETURN_INT_EXC(char, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
   61326             : #endif
   61327             :         }
   61328             :     } else {
   61329             : #if CYTHON_USE_PYLONG_INTERNALS
   61330             :         if (__Pyx_PyLong_IsCompact(x)) {
   61331             :             __PYX_VERIFY_RETURN_INT(char, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
   61332             :         } else {
   61333             :             const digit* digits = __Pyx_PyLong_Digits(x);
   61334             :             assert(__Pyx_PyLong_DigitCount(x) > 1);
   61335             :             switch (__Pyx_PyLong_SignedDigitCount(x)) {
   61336             :                 case -2:
   61337             :                     if ((8 * sizeof(char) - 1 > 1 * PyLong_SHIFT)) {
   61338             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   61339             :                             __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61340             :                         } else if ((8 * sizeof(char) - 1 > 2 * PyLong_SHIFT)) {
   61341             :                             return (char) (((char)-1)*(((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
   61342             :                         }
   61343             :                     }
   61344             :                     break;
   61345             :                 case 2:
   61346             :                     if ((8 * sizeof(char) > 1 * PyLong_SHIFT)) {
   61347             :                         if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
   61348             :                             __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61349             :                         } else if ((8 * sizeof(char) - 1 > 2 * PyLong_SHIFT)) {
   61350             :                             return (char) ((((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
   61351             :                         }
   61352             :                     }
   61353             :                     break;
   61354             :                 case -3:
   61355             :                     if ((8 * sizeof(char) - 1 > 2 * PyLong_SHIFT)) {
   61356             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   61357             :                             __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61358             :                         } else if ((8 * sizeof(char) - 1 > 3 * PyLong_SHIFT)) {
   61359             :                             return (char) (((char)-1)*(((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
   61360             :                         }
   61361             :                     }
   61362             :                     break;
   61363             :                 case 3:
   61364             :                     if ((8 * sizeof(char) > 2 * PyLong_SHIFT)) {
   61365             :                         if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
   61366             :                             __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61367             :                         } else if ((8 * sizeof(char) - 1 > 3 * PyLong_SHIFT)) {
   61368             :                             return (char) ((((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
   61369             :                         }
   61370             :                     }
   61371             :                     break;
   61372             :                 case -4:
   61373             :                     if ((8 * sizeof(char) - 1 > 3 * PyLong_SHIFT)) {
   61374             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   61375             :                             __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61376             :                         } else if ((8 * sizeof(char) - 1 > 4 * PyLong_SHIFT)) {
   61377             :                             return (char) (((char)-1)*(((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
   61378             :                         }
   61379             :                     }
   61380             :                     break;
   61381             :                 case 4:
   61382             :                     if ((8 * sizeof(char) > 3 * PyLong_SHIFT)) {
   61383             :                         if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
   61384             :                             __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
   61385             :                         } else if ((8 * sizeof(char) - 1 > 4 * PyLong_SHIFT)) {
   61386             :                             return (char) ((((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
   61387             :                         }
   61388             :                     }
   61389             :                     break;
   61390             :             }
   61391             :         }
   61392             : #endif
   61393             :         if ((sizeof(char) <= sizeof(long))) {
   61394             :             __PYX_VERIFY_RETURN_INT_EXC(char, long, PyLong_AsLong(x))
   61395             : #ifdef HAVE_LONG_LONG
   61396             :         } else if ((sizeof(char) <= sizeof(PY_LONG_LONG))) {
   61397             :             __PYX_VERIFY_RETURN_INT_EXC(char, PY_LONG_LONG, PyLong_AsLongLong(x))
   61398             : #endif
   61399             :         }
   61400             :     }
   61401             :     {
   61402             :         char val;
   61403             :         int ret = -1;
   61404             : #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
   61405             :         Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
   61406             :             x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
   61407             :         if (unlikely(bytes_copied == -1)) {
   61408             :         } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
   61409             :             goto raise_overflow;
   61410             :         } else {
   61411             :             ret = 0;
   61412             :         }
   61413             : #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
   61414             :         int one = 1; int is_little = (int)*(unsigned char *)&one;
   61415             :         unsigned char *bytes = (unsigned char *)&val;
   61416             :         ret = _PyLong_AsByteArray((PyLongObject *)x,
   61417             :                                     bytes, sizeof(val),
   61418             :                                     is_little, !is_unsigned);
   61419             : #else
   61420             :         PyObject *v;
   61421             :         PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
   61422             :         int bits, remaining_bits, is_negative = 0;
   61423             :         int chunk_size = (sizeof(long) < 8) ? 30 : 62;
   61424             :         if (likely(PyLong_CheckExact(x))) {
   61425             :             v = __Pyx_NewRef(x);
   61426             :         } else {
   61427             :             v = PyNumber_Long(x);
   61428             :             if (unlikely(!v)) return (char) -1;
   61429             :             assert(PyLong_CheckExact(v));
   61430             :         }
   61431             :         {
   61432             :             int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
   61433             :             if (unlikely(result < 0)) {
   61434             :                 Py_DECREF(v);
   61435             :                 return (char) -1;
   61436             :             }
   61437             :             is_negative = result == 1;
   61438             :         }
   61439             :         if (is_unsigned && unlikely(is_negative)) {
   61440             :             Py_DECREF(v);
   61441             :             goto raise_neg_overflow;
   61442             :         } else if (is_negative) {
   61443             :             stepval = PyNumber_Invert(v);
   61444             :             Py_DECREF(v);
   61445             :             if (unlikely(!stepval))
   61446             :                 return (char) -1;
   61447             :         } else {
   61448             :             stepval = v;
   61449             :         }
   61450             :         v = NULL;
   61451             :         val = (char) 0;
   61452             :         mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
   61453             :         shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
   61454             :         for (bits = 0; bits < (int) sizeof(char) * 8 - chunk_size; bits += chunk_size) {
   61455             :             PyObject *tmp, *digit;
   61456             :             long idigit;
   61457             :             digit = PyNumber_And(stepval, mask);
   61458             :             if (unlikely(!digit)) goto done;
   61459             :             idigit = PyLong_AsLong(digit);
   61460             :             Py_DECREF(digit);
   61461             :             if (unlikely(idigit < 0)) goto done;
   61462             :             val |= ((char) idigit) << bits;
   61463             :             tmp = PyNumber_Rshift(stepval, shift);
   61464             :             if (unlikely(!tmp)) goto done;
   61465             :             Py_DECREF(stepval); stepval = tmp;
   61466             :         }
   61467             :         Py_DECREF(shift); shift = NULL;
   61468             :         Py_DECREF(mask); mask = NULL;
   61469             :         {
   61470             :             long idigit = PyLong_AsLong(stepval);
   61471             :             if (unlikely(idigit < 0)) goto done;
   61472             :             remaining_bits = ((int) sizeof(char) * 8) - bits - (is_unsigned ? 0 : 1);
   61473             :             if (unlikely(idigit >= (1L << remaining_bits)))
   61474             :                 goto raise_overflow;
   61475             :             val |= ((char) idigit) << bits;
   61476             :         }
   61477             :         if (!is_unsigned) {
   61478             :             if (unlikely(val & (((char) 1) << (sizeof(char) * 8 - 1))))
   61479             :                 goto raise_overflow;
   61480             :             if (is_negative)
   61481             :                 val = ~val;
   61482             :         }
   61483             :         ret = 0;
   61484             :     done:
   61485             :         Py_XDECREF(shift);
   61486             :         Py_XDECREF(mask);
   61487             :         Py_XDECREF(stepval);
   61488             : #endif
   61489             :         if (unlikely(ret))
   61490             :             return (char) -1;
   61491             :         return val;
   61492             :     }
   61493             : raise_overflow:
   61494             :     PyErr_SetString(PyExc_OverflowError,
   61495             :         "value too large to convert to char");
   61496             :     return (char) -1;
   61497             : raise_neg_overflow:
   61498             :     PyErr_SetString(PyExc_OverflowError,
   61499             :         "can't convert negative value to char");
   61500             :     return (char) -1;
   61501             : }
   61502             : 
   61503             : /* FormatTypeName */
   61504             :   #if CYTHON_COMPILING_IN_LIMITED_API
   61505             : static __Pyx_TypeName
   61506             : __Pyx_PyType_GetName(PyTypeObject* tp)
   61507             : {
   61508             :     PyObject *name = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
   61509             :                                                __pyx_n_s_name_2);
   61510             :     if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) {
   61511             :         PyErr_Clear();
   61512             :         Py_XDECREF(name);
   61513             :         name = __Pyx_NewRef(__pyx_n_s__93);
   61514             :     }
   61515             :     return name;
   61516             : }
   61517             : #endif
   61518             : 
   61519             : /* CheckBinaryVersion */
   61520           3 :   static unsigned long __Pyx_get_runtime_version(void) {
   61521             : #if __PYX_LIMITED_VERSION_HEX >= 0x030B00A4
   61522           3 :     return Py_Version & ~0xFFUL;
   61523             : #else
   61524             :     const char* rt_version = Py_GetVersion();
   61525             :     unsigned long version = 0;
   61526             :     unsigned long factor = 0x01000000UL;
   61527             :     unsigned int digit = 0;
   61528             :     int i = 0;
   61529             :     while (factor) {
   61530             :         while ('0' <= rt_version[i] && rt_version[i] <= '9') {
   61531             :             digit = digit * 10 + (unsigned int) (rt_version[i] - '0');
   61532             :             ++i;
   61533             :         }
   61534             :         version += factor * digit;
   61535             :         if (rt_version[i] != '.')
   61536             :             break;
   61537             :         digit = 0;
   61538             :         factor >>= 8;
   61539             :         ++i;
   61540             :     }
   61541             :     return version;
   61542             : #endif
   61543             : }
   61544           3 : static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer) {
   61545           3 :     const unsigned long MAJOR_MINOR = 0xFFFF0000UL;
   61546           3 :     if ((rt_version & MAJOR_MINOR) == (ct_version & MAJOR_MINOR))
   61547             :         return 0;
   61548           0 :     if (likely(allow_newer && (rt_version & MAJOR_MINOR) > (ct_version & MAJOR_MINOR)))
   61549             :         return 1;
   61550             :     {
   61551           0 :         char message[200];
   61552           0 :         PyOS_snprintf(message, sizeof(message),
   61553             :                       "compile time Python version %d.%d "
   61554             :                       "of module '%.100s' "
   61555             :                       "%s "
   61556             :                       "runtime version %d.%d",
   61557           0 :                        (int) (ct_version >> 24), (int) ((ct_version >> 16) & 0xFF),
   61558             :                        __Pyx_MODULE_NAME,
   61559             :                        (allow_newer) ? "was newer than" : "does not match",
   61560           0 :                        (int) (rt_version >> 24), (int) ((rt_version >> 16) & 0xFF)
   61561             :        );
   61562           0 :         return PyErr_WarnEx(NULL, message, 1);
   61563             :     }
   61564             : }
   61565             : 
   61566             : /* InitStrings */
   61567             :   #if PY_MAJOR_VERSION >= 3
   61568         786 : static int __Pyx_InitString(__Pyx_StringTabEntry t, PyObject **str) {
   61569         786 :     if (t.is_unicode | t.is_str) {
   61570         783 :         if (t.intern) {
   61571         615 :             *str = PyUnicode_InternFromString(t.s);
   61572         168 :         } else if (t.encoding) {
   61573           0 :             *str = PyUnicode_Decode(t.s, t.n - 1, t.encoding, NULL);
   61574             :         } else {
   61575         168 :             *str = PyUnicode_FromStringAndSize(t.s, t.n - 1);
   61576             :         }
   61577             :     } else {
   61578           3 :         *str = PyBytes_FromStringAndSize(t.s, t.n - 1);
   61579             :     }
   61580         786 :     if (!*str)
   61581             :         return -1;
   61582         786 :     if (PyObject_Hash(*str) == -1)
   61583             :         return -1;
   61584             :     return 0;
   61585             : }
   61586             : #endif
   61587           3 : static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
   61588         789 :     while (t->p) {
   61589             :         #if PY_MAJOR_VERSION >= 3
   61590         786 :         __Pyx_InitString(*t, t->p);
   61591             :         #else
   61592             :         if (t->is_unicode) {
   61593             :             *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
   61594             :         } else if (t->intern) {
   61595             :             *t->p = PyString_InternFromString(t->s);
   61596             :         } else {
   61597             :             *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
   61598             :         }
   61599             :         if (!*t->p)
   61600             :             return -1;
   61601             :         if (PyObject_Hash(*t->p) == -1)
   61602             :             return -1;
   61603             :         #endif
   61604         786 :         ++t;
   61605             :     }
   61606           3 :     return 0;
   61607             : }
   61608             : 
   61609             : #include <string.h>
   61610           0 : static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s) {
   61611           0 :     size_t len = strlen(s);
   61612           0 :     if (unlikely(len > (size_t) PY_SSIZE_T_MAX)) {
   61613             :         PyErr_SetString(PyExc_OverflowError, "byte string is too long");
   61614             :         return -1;
   61615             :     }
   61616             :     return (Py_ssize_t) len;
   61617             : }
   61618             : static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
   61619             :     Py_ssize_t len = __Pyx_ssize_strlen(c_str);
   61620             :     if (unlikely(len < 0)) return NULL;
   61621             :     return __Pyx_PyUnicode_FromStringAndSize(c_str, len);
   61622             : }
   61623             : static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char* c_str) {
   61624             :     Py_ssize_t len = __Pyx_ssize_strlen(c_str);
   61625             :     if (unlikely(len < 0)) return NULL;
   61626             :     return PyByteArray_FromStringAndSize(c_str, len);
   61627             : }
   61628             : static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
   61629             :     Py_ssize_t ignore;
   61630             :     return __Pyx_PyObject_AsStringAndSize(o, &ignore);
   61631             : }
   61632             : #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
   61633             : #if !CYTHON_PEP393_ENABLED
   61634             : static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
   61635             :     char* defenc_c;
   61636             :     PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
   61637             :     if (!defenc) return NULL;
   61638             :     defenc_c = PyBytes_AS_STRING(defenc);
   61639             : #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
   61640             :     {
   61641             :         char* end = defenc_c + PyBytes_GET_SIZE(defenc);
   61642             :         char* c;
   61643             :         for (c = defenc_c; c < end; c++) {
   61644             :             if ((unsigned char) (*c) >= 128) {
   61645             :                 PyUnicode_AsASCIIString(o);
   61646             :                 return NULL;
   61647             :             }
   61648             :         }
   61649             :     }
   61650             : #endif
   61651             :     *length = PyBytes_GET_SIZE(defenc);
   61652             :     return defenc_c;
   61653             : }
   61654             : #else
   61655             : static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
   61656             :     if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
   61657             : #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
   61658             :     if (likely(PyUnicode_IS_ASCII(o))) {
   61659             :         *length = PyUnicode_GET_LENGTH(o);
   61660             :         return PyUnicode_AsUTF8(o);
   61661             :     } else {
   61662             :         PyUnicode_AsASCIIString(o);
   61663             :         return NULL;
   61664             :     }
   61665             : #else
   61666             :     return PyUnicode_AsUTF8AndSize(o, length);
   61667             : #endif
   61668             : }
   61669             : #endif
   61670             : #endif
   61671             : static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
   61672             : #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
   61673             :     if (
   61674             : #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
   61675             :             __Pyx_sys_getdefaultencoding_not_ascii &&
   61676             : #endif
   61677             :             PyUnicode_Check(o)) {
   61678             :         return __Pyx_PyUnicode_AsStringAndSize(o, length);
   61679             :     } else
   61680             : #endif
   61681             : #if (!CYTHON_COMPILING_IN_PYPY && !CYTHON_COMPILING_IN_LIMITED_API) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
   61682             :     if (PyByteArray_Check(o)) {
   61683             :         *length = PyByteArray_GET_SIZE(o);
   61684             :         return PyByteArray_AS_STRING(o);
   61685             :     } else
   61686             : #endif
   61687             :     {
   61688             :         char* result;
   61689             :         int r = PyBytes_AsStringAndSize(o, &result, length);
   61690             :         if (unlikely(r < 0)) {
   61691             :             return NULL;
   61692             :         } else {
   61693             :             return result;
   61694             :         }
   61695             :     }
   61696             : }
   61697      716786 : static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
   61698      716786 :    int is_true = x == Py_True;
   61699      716786 :    if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
   61700      122599 :    else return PyObject_IsTrue(x);
   61701             : }
   61702       10231 : static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
   61703       10231 :     int retval;
   61704       10231 :     if (unlikely(!x)) return -1;
   61705       10231 :     retval = __Pyx_PyObject_IsTrue(x);
   61706       10231 :     Py_DECREF(x);
   61707             :     return retval;
   61708             : }
   61709           0 : static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) {
   61710           0 :     __Pyx_TypeName result_type_name = __Pyx_PyType_GetName(Py_TYPE(result));
   61711             : #if PY_MAJOR_VERSION >= 3
   61712           0 :     if (PyLong_Check(result)) {
   61713           0 :         if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
   61714             :                 "__int__ returned non-int (type " __Pyx_FMT_TYPENAME ").  "
   61715             :                 "The ability to return an instance of a strict subclass of int is deprecated, "
   61716             :                 "and may be removed in a future version of Python.",
   61717             :                 result_type_name)) {
   61718           0 :             __Pyx_DECREF_TypeName(result_type_name);
   61719           0 :             Py_DECREF(result);
   61720           0 :             return NULL;
   61721             :         }
   61722             :         __Pyx_DECREF_TypeName(result_type_name);
   61723             :         return result;
   61724             :     }
   61725             : #endif
   61726           0 :     PyErr_Format(PyExc_TypeError,
   61727             :                  "__%.4s__ returned non-%.4s (type " __Pyx_FMT_TYPENAME ")",
   61728             :                  type_name, type_name, result_type_name);
   61729           0 :     __Pyx_DECREF_TypeName(result_type_name);
   61730           0 :     Py_DECREF(result);
   61731             :     return NULL;
   61732             : }
   61733        9452 : static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
   61734             : #if CYTHON_USE_TYPE_SLOTS
   61735        9452 :   PyNumberMethods *m;
   61736             : #endif
   61737        9452 :   const char *name = NULL;
   61738        9452 :   PyObject *res = NULL;
   61739             : #if PY_MAJOR_VERSION < 3
   61740             :   if (likely(PyInt_Check(x) || PyLong_Check(x)))
   61741             : #else
   61742        9452 :   if (likely(PyLong_Check(x)))
   61743             : #endif
   61744        1323 :     return __Pyx_NewRef(x);
   61745             : #if CYTHON_USE_TYPE_SLOTS
   61746        8136 :   m = Py_TYPE(x)->tp_as_number;
   61747             :   #if PY_MAJOR_VERSION < 3
   61748             :   if (m && m->nb_int) {
   61749             :     name = "int";
   61750             :     res = m->nb_int(x);
   61751             :   }
   61752             :   else if (m && m->nb_long) {
   61753             :     name = "long";
   61754             :     res = m->nb_long(x);
   61755             :   }
   61756             :   #else
   61757        8136 :   if (likely(m && m->nb_int)) {
   61758        8136 :     name = "int";
   61759        8136 :     res = m->nb_int(x);
   61760             :   }
   61761             :   #endif
   61762             : #else
   61763             :   if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
   61764             :     res = PyNumber_Int(x);
   61765             :   }
   61766             : #endif
   61767        8136 :   if (likely(res)) {
   61768             : #if PY_MAJOR_VERSION < 3
   61769             :     if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
   61770             : #else
   61771        8136 :     if (unlikely(!PyLong_CheckExact(res))) {
   61772             : #endif
   61773           0 :         return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
   61774             :     }
   61775             :   }
   61776           0 :   else if (!PyErr_Occurred()) {
   61777           0 :     PyErr_SetString(PyExc_TypeError,
   61778             :                     "an integer is required");
   61779             :   }
   61780             :   return res;
   61781             : }
   61782      418198 : static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
   61783      418198 :   Py_ssize_t ival;
   61784      418198 :   PyObject *x;
   61785             : #if PY_MAJOR_VERSION < 3
   61786             :   if (likely(PyInt_CheckExact(b))) {
   61787             :     if (sizeof(Py_ssize_t) >= sizeof(long))
   61788             :         return PyInt_AS_LONG(b);
   61789             :     else
   61790             :         return PyInt_AsSsize_t(b);
   61791             :   }
   61792             : #endif
   61793      418198 :   if (likely(PyLong_CheckExact(b))) {
   61794             :     #if CYTHON_USE_PYLONG_INTERNALS
   61795      418198 :     if (likely(__Pyx_PyLong_IsCompact(b))) {
   61796      418198 :         return __Pyx_PyLong_CompactValue(b);
   61797             :     } else {
   61798           0 :       const digit* digits = __Pyx_PyLong_Digits(b);
   61799           0 :       const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(b);
   61800           0 :       switch (size) {
   61801             :          case 2:
   61802           0 :            if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
   61803           0 :              return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
   61804             :            }
   61805             :            break;
   61806             :          case -2:
   61807           0 :            if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
   61808           0 :              return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
   61809             :            }
   61810             :            break;
   61811             :          case 3:
   61812             :            if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
   61813             :              return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
   61814             :            }
   61815             :            break;
   61816             :          case -3:
   61817             :            if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
   61818             :              return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
   61819             :            }
   61820             :            break;
   61821             :          case 4:
   61822             :            if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
   61823             :              return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
   61824             :            }
   61825             :            break;
   61826             :          case -4:
   61827             :            if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
   61828             :              return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
   61829             :            }
   61830             :            break;
   61831             :       }
   61832             :     }
   61833             :     #endif
   61834           0 :     return PyLong_AsSsize_t(b);
   61835             :   }
   61836           0 :   x = PyNumber_Index(b);
   61837           0 :   if (!x) return -1;
   61838           0 :   ival = PyInt_AsSsize_t(x);
   61839           0 :   Py_DECREF(x);
   61840             :   return ival;
   61841             : }
   61842             : static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
   61843             :   if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
   61844             :     return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
   61845             : #if PY_MAJOR_VERSION < 3
   61846             :   } else if (likely(PyInt_CheckExact(o))) {
   61847             :     return PyInt_AS_LONG(o);
   61848             : #endif
   61849             :   } else {
   61850             :     Py_ssize_t ival;
   61851             :     PyObject *x;
   61852             :     x = PyNumber_Index(o);
   61853             :     if (!x) return -1;
   61854             :     ival = PyInt_AsLong(x);
   61855             :     Py_DECREF(x);
   61856             :     return ival;
   61857             :   }
   61858             : }
   61859      536853 : static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
   61860      536853 :   return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
   61861             : }
   61862             : static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
   61863             :     return PyInt_FromSize_t(ival);
   61864             : }
   61865             : 
   61866             : 
   61867             : /* #### Code section: utility_code_pragmas_end ### */
   61868             : #ifdef _MSC_VER
   61869             : #pragma warning( pop )
   61870             : #endif
   61871             : 
   61872             : 
   61873             : 
   61874             : /* #### Code section: end ### */
   61875             : #endif /* Py_PYTHON_H */

Generated by: LCOV version 1.14